Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #ifndef MMC_QUEUE_H |
2 | #define MMC_QUEUE_H | |
3 | ||
4 | struct request; | |
5 | struct task_struct; | |
6 | ||
7 | struct mmc_queue { | |
8 | struct mmc_card *card; | |
9 | struct completion thread_complete; | |
10 | wait_queue_head_t thread_wq; | |
11 | struct semaphore thread_sem; | |
12 | unsigned int flags; | |
13 | struct request *req; | |
14 | int (*prep_fn)(struct mmc_queue *, struct request *); | |
15 | int (*issue_fn)(struct mmc_queue *, struct request *); | |
16 | void *data; | |
17 | struct request_queue *queue; | |
18 | struct scatterlist *sg; | |
19 | }; | |
20 | ||
21 | struct mmc_io_request { | |
22 | struct request *rq; | |
23 | int num; | |
24 | struct mmc_command selcmd; /* mmc_queue private */ | |
25 | struct mmc_command cmd[4]; /* max 4 commands */ | |
26 | }; | |
27 | ||
28 | extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *); | |
29 | extern void mmc_cleanup_queue(struct mmc_queue *); | |
30 | extern void mmc_queue_suspend(struct mmc_queue *); | |
31 | extern void mmc_queue_resume(struct mmc_queue *); | |
32 | ||
33 | #endif |