• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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