Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
 1#ifndef INT_BLK_MQ_H
 2#define INT_BLK_MQ_H
 3
 4struct blk_mq_ctx {
 5	struct {
 6		spinlock_t		lock;
 7		struct list_head	rq_list;
 8	}  ____cacheline_aligned_in_smp;
 9
10	unsigned int		cpu;
11	unsigned int		index_hw;
12	unsigned int		ipi_redirect;
13
14	/* incremented at dispatch time */
15	unsigned long		rq_dispatched[2];
16	unsigned long		rq_merged;
17
18	/* incremented at completion time */
19	unsigned long		____cacheline_aligned_in_smp rq_completed[2];
20
21	struct request_queue	*queue;
22	struct kobject		kobj;
23};
24
25void __blk_mq_complete_request(struct request *rq);
26void blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async);
27void blk_mq_init_flush(struct request_queue *q);
28void blk_mq_drain_queue(struct request_queue *q);
29void blk_mq_free_queue(struct request_queue *q);
30void blk_mq_rq_init(struct blk_mq_hw_ctx *hctx, struct request *rq);
31
32/*
33 * CPU hotplug helpers
34 */
35struct blk_mq_cpu_notifier;
36void blk_mq_init_cpu_notifier(struct blk_mq_cpu_notifier *notifier,
37			      void (*fn)(void *, unsigned long, unsigned int),
38			      void *data);
39void blk_mq_register_cpu_notifier(struct blk_mq_cpu_notifier *notifier);
40void blk_mq_unregister_cpu_notifier(struct blk_mq_cpu_notifier *notifier);
41void blk_mq_cpu_init(void);
42void blk_mq_enable_hotplug(void);
43void blk_mq_disable_hotplug(void);
44
45/*
46 * CPU -> queue mappings
47 */
48struct blk_mq_reg;
49extern unsigned int *blk_mq_make_queue_map(struct blk_mq_reg *reg);
50extern int blk_mq_update_queue_map(unsigned int *map, unsigned int nr_queues);
51
52void blk_mq_add_timer(struct request *rq);
53
54#endif