| #ifndef MMC_QUEUE_H | |
| #define MMC_QUEUE_H | |
| struct request; | |
| struct task_struct; | |
| struct mmc_queue { | |
| struct mmc_card *card; | |
| struct completion thread_complete; | |
| wait_queue_head_t thread_wq; | |
| struct semaphore thread_sem; | |
| unsigned int flags; | |
| struct request *req; | |
| int (*prep_fn)(struct mmc_queue *, struct request *); | |
| int (*issue_fn)(struct mmc_queue *, struct request *); | |
| void *data; | |
| struct request_queue *queue; | |
| struct scatterlist *sg; | |
| }; | |
| struct mmc_io_request { | |
| struct request *rq; | |
| int num; | |
| struct mmc_command selcmd; /* mmc_queue private */ | |
| struct mmc_command cmd[4]; /* max 4 commands */ | |
| }; | |
| extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *); | |
| extern void mmc_cleanup_queue(struct mmc_queue *); | |
| extern void mmc_queue_suspend(struct mmc_queue *); | |
| extern void mmc_queue_resume(struct mmc_queue *); | |
| #endif |