|
@@ -259,6 +259,7 @@ struct bio_vec;
|
|
typedef int (merge_bvec_fn) (struct request_queue *, struct bio *, struct bio_vec *);
|
|
typedef int (merge_bvec_fn) (struct request_queue *, struct bio *, struct bio_vec *);
|
|
typedef void (prepare_flush_fn) (struct request_queue *, struct request *);
|
|
typedef void (prepare_flush_fn) (struct request_queue *, struct request *);
|
|
typedef void (softirq_done_fn)(struct request *);
|
|
typedef void (softirq_done_fn)(struct request *);
|
|
|
|
+typedef int (dma_drain_needed_fn)(struct request *);
|
|
|
|
|
|
enum blk_queue_state {
|
|
enum blk_queue_state {
|
|
Queue_down,
|
|
Queue_down,
|
|
@@ -295,6 +296,7 @@ struct request_queue
|
|
merge_bvec_fn *merge_bvec_fn;
|
|
merge_bvec_fn *merge_bvec_fn;
|
|
prepare_flush_fn *prepare_flush_fn;
|
|
prepare_flush_fn *prepare_flush_fn;
|
|
softirq_done_fn *softirq_done_fn;
|
|
softirq_done_fn *softirq_done_fn;
|
|
|
|
+ dma_drain_needed_fn *dma_drain_needed;
|
|
|
|
|
|
/*
|
|
/*
|
|
* Dispatch queue sorting
|
|
* Dispatch queue sorting
|
|
@@ -699,8 +701,9 @@ extern void blk_queue_max_hw_segments(struct request_queue *, unsigned short);
|
|
extern void blk_queue_max_segment_size(struct request_queue *, unsigned int);
|
|
extern void blk_queue_max_segment_size(struct request_queue *, unsigned int);
|
|
extern void blk_queue_hardsect_size(struct request_queue *, unsigned short);
|
|
extern void blk_queue_hardsect_size(struct request_queue *, unsigned short);
|
|
extern void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b);
|
|
extern void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b);
|
|
-extern int blk_queue_dma_drain(struct request_queue *q, void *buf,
|
|
|
|
- unsigned int size);
|
|
|
|
|
|
+extern int blk_queue_dma_drain(struct request_queue *q,
|
|
|
|
+ dma_drain_needed_fn *dma_drain_needed,
|
|
|
|
+ void *buf, unsigned int size);
|
|
extern void blk_queue_segment_boundary(struct request_queue *, unsigned long);
|
|
extern void blk_queue_segment_boundary(struct request_queue *, unsigned long);
|
|
extern void blk_queue_prep_rq(struct request_queue *, prep_rq_fn *pfn);
|
|
extern void blk_queue_prep_rq(struct request_queue *, prep_rq_fn *pfn);
|
|
extern void blk_queue_merge_bvec(struct request_queue *, merge_bvec_fn *);
|
|
extern void blk_queue_merge_bvec(struct request_queue *, merge_bvec_fn *);
|