#ifndef MMC_QUEUE_H
#define MMC_QUEUE_H
#include <linux/types.h>
#include <linux/blkdev.h>
#include <linux/blk-mq.h>
#include <linux/mmc/core.h>
#include <linux/mmc/host.h>
enum mmc_issued { … };
enum mmc_issue_type { … };
static inline struct mmc_queue_req *req_to_mmc_queue_req(struct request *rq)
{ … }
struct mmc_queue_req;
static inline struct request *mmc_queue_req_to_req(struct mmc_queue_req *mqr)
{ … }
struct mmc_blk_data;
struct mmc_blk_ioc_data;
struct mmc_blk_request { … };
enum mmc_drv_op { … };
struct mmc_queue_req { … };
struct mmc_queue { … };
struct gendisk *mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card,
unsigned int features);
extern void mmc_cleanup_queue(struct mmc_queue *);
extern void mmc_queue_suspend(struct mmc_queue *);
extern void mmc_queue_resume(struct mmc_queue *);
extern unsigned int mmc_queue_map_sg(struct mmc_queue *,
struct mmc_queue_req *);
void mmc_cqe_check_busy(struct mmc_queue *mq);
void mmc_cqe_recovery_notifier(struct mmc_request *mrq);
enum mmc_issue_type mmc_issue_type(struct mmc_queue *mq, struct request *req);
static inline int mmc_tot_in_flight(struct mmc_queue *mq)
{ … }
static inline int mmc_cqe_qcnt(struct mmc_queue *mq)
{ … }
#endif