diff options
author | Pierre Ossman <drzeus@drzeus.cx> | 2006-12-23 20:03:02 +0100 |
---|---|---|
committer | Pierre Ossman <drzeus@drzeus.cx> | 2007-05-01 13:04:16 +0200 |
commit | 98ac2162699f7e9880683cb954891817f20b607c (patch) | |
tree | 27452d428e16edfe6d13d71f297adf5376d07bde /drivers/mmc/queue.h | |
parent | 29041dbe199b0dff392bf1b9d634357da0b3208f (diff) | |
download | op-kernel-dev-98ac2162699f7e9880683cb954891817f20b607c.zip op-kernel-dev-98ac2162699f7e9880683cb954891817f20b607c.tar.gz |
mmc: Move queue functions to mmc_block
The mmc block queue functions are tailored for the mmc_block
driver, so move those functions into that module.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'drivers/mmc/queue.h')
-rw-r--r-- | drivers/mmc/queue.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/drivers/mmc/queue.h b/drivers/mmc/queue.h new file mode 100644 index 0000000..c9f139e --- /dev/null +++ b/drivers/mmc/queue.h @@ -0,0 +1,32 @@ +#ifndef MMC_QUEUE_H +#define MMC_QUEUE_H + +struct request; +struct task_struct; + +struct mmc_queue { + struct mmc_card *card; + struct task_struct *thread; + 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 |