| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |