queue.h 849 B

12345678910111213141516171819202122232425262728293031
  1. #ifndef MMC_QUEUE_H
  2. #define MMC_QUEUE_H
  3. struct request;
  4. struct task_struct;
  5. struct mmc_queue {
  6. struct mmc_card *card;
  7. struct task_struct *thread;
  8. struct semaphore thread_sem;
  9. unsigned int flags;
  10. struct request *req;
  11. int (*issue_fn)(struct mmc_queue *, struct request *);
  12. void *data;
  13. struct request_queue *queue;
  14. struct scatterlist *sg;
  15. char *bounce_buf;
  16. struct scatterlist *bounce_sg;
  17. unsigned int bounce_sg_len;
  18. };
  19. extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *);
  20. extern void mmc_cleanup_queue(struct mmc_queue *);
  21. extern void mmc_queue_suspend(struct mmc_queue *);
  22. extern void mmc_queue_resume(struct mmc_queue *);
  23. extern unsigned int mmc_queue_map_sg(struct mmc_queue *);
  24. extern void mmc_queue_bounce_pre(struct mmc_queue *);
  25. extern void mmc_queue_bounce_post(struct mmc_queue *);
  26. #endif