Merge branches 'release', 'asus', 'sony-laptop' and 'thinkpad' into release
[pandora-kernel.git] / include / linux / blkdev.h
index b71c390..90392a9 100644 (file)
@@ -39,7 +39,6 @@ void exit_io_context(void);
 struct io_context *get_io_context(gfp_t gfp_flags, int node);
 struct io_context *alloc_io_context(gfp_t gfp_flags, int node);
 void copy_io_context(struct io_context **pdst, struct io_context **psrc);
-void swap_io_context(struct io_context **ioc1, struct io_context **ioc2);
 
 struct request;
 typedef void (rq_end_io_fn)(struct request *, int);
@@ -356,6 +355,8 @@ struct request_queue
        unsigned int            max_segment_size;
 
        unsigned long           seg_boundary_mask;
+       void                    *dma_drain_buffer;
+       unsigned int            dma_drain_size;
        unsigned int            dma_alignment;
 
        struct blk_queue_tag    *queue_tags;
@@ -653,15 +654,18 @@ static inline void blk_run_address_space(struct address_space *mapping)
  * blk_end_request() for parts of the original function.
  * This prevents code duplication in drivers.
  */
-extern int blk_end_request(struct request *rq, int error, int nr_bytes);
-extern int __blk_end_request(struct request *rq, int error, int nr_bytes);
-extern int blk_end_bidi_request(struct request *rq, int error, int nr_bytes,
-                               int bidi_bytes);
+extern int blk_end_request(struct request *rq, int error,
+                               unsigned int nr_bytes);
+extern int __blk_end_request(struct request *rq, int error,
+                               unsigned int nr_bytes);
+extern int blk_end_bidi_request(struct request *rq, int error,
+                               unsigned int nr_bytes, unsigned int bidi_bytes);
 extern void end_request(struct request *, int);
 extern void end_queued_request(struct request *, int);
 extern void end_dequeued_request(struct request *, int);
-extern int blk_end_request_callback(struct request *rq, int error, int nr_bytes,
-                                   int (drv_callback)(struct request *));
+extern int blk_end_request_callback(struct request *rq, int error,
+                               unsigned int nr_bytes,
+                               int (drv_callback)(struct request *));
 extern void blk_complete_request(struct request *);
 
 /*
@@ -692,6 +696,8 @@ 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_hardsect_size(struct request_queue *, unsigned short);
 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 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_merge_bvec(struct request_queue *, merge_bvec_fn *);
@@ -768,12 +774,7 @@ static inline int bdev_hardsect_size(struct block_device *bdev)
 
 static inline int queue_dma_alignment(struct request_queue *q)
 {
-       int retval = 511;
-
-       if (q && q->dma_alignment)
-               retval = q->dma_alignment;
-
-       return retval;
+       return q ? q->dma_alignment : 511;
 }
 
 /* assumes size > 256 */
@@ -826,6 +827,7 @@ static inline void exit_io_context(void)
 {
 }
 
+struct io_context;
 static inline int put_io_context(struct io_context *ioc)
 {
        return 1;