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 task_struct *thread; 10 struct semaphore thread_sem; 11 unsigned int flags; 12 struct request *req; 13 int (*issue_fn)(struct mmc_queue *, struct request *); 14 void *data; 15 struct request_queue *queue; 16 struct scatterlist *sg; 17 char *bounce_buf; 18 struct scatterlist *bounce_sg; 19 unsigned int bounce_sg_len; 20 }; 21 22 extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *); 23 extern void mmc_cleanup_queue(struct mmc_queue *); 24 extern void mmc_queue_suspend(struct mmc_queue *); 25 extern void mmc_queue_resume(struct mmc_queue *); 26 27 extern unsigned int mmc_queue_map_sg(struct mmc_queue *); 28 extern void mmc_queue_bounce_pre(struct mmc_queue *); 29 extern void mmc_queue_bounce_post(struct mmc_queue *); 30 31 #endif 32