at v2.6.12 33 lines 857 B view raw
1#ifndef MMC_QUEUE_H 2#define MMC_QUEUE_H 3 4struct request; 5struct task_struct; 6 7struct 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 21struct 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 28extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *); 29extern void mmc_cleanup_queue(struct mmc_queue *); 30extern void mmc_queue_suspend(struct mmc_queue *); 31extern void mmc_queue_resume(struct mmc_queue *); 32 33#endif