Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
queue.h
Go to the documentation of this file.
1 #ifndef MMC_QUEUE_H
2 #define MMC_QUEUE_H
3 
4 struct request;
5 struct task_struct;
6 
8  struct mmc_request mrq;
9  struct mmc_command sbc;
10  struct mmc_command cmd;
11  struct mmc_command stop;
12  struct mmc_data data;
13 };
14 
15 struct mmc_queue_req {
16  struct request *req;
18  struct scatterlist *sg;
19  char *bounce_buf;
21  unsigned int bounce_sg_len;
23 };
24 
25 struct mmc_queue {
26  struct mmc_card *card;
29  unsigned int flags;
30  int (*issue_fn)(struct mmc_queue *, struct request *);
31  void *data;
33  struct mmc_queue_req mqrq[2];
36 };
37 
38 extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *,
39  const char *);
40 extern void mmc_cleanup_queue(struct mmc_queue *);
41 extern void mmc_queue_suspend(struct mmc_queue *);
42 extern void mmc_queue_resume(struct mmc_queue *);
43 
44 extern unsigned int mmc_queue_map_sg(struct mmc_queue *,
45  struct mmc_queue_req *);
46 extern void mmc_queue_bounce_pre(struct mmc_queue_req *);
47 extern void mmc_queue_bounce_post(struct mmc_queue_req *);
48 
49 #endif