]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - c_src/include/linux/blk_types.h
Move c_src dirs back to toplevel
[bcachefs-tools-debian] / c_src / include / linux / blk_types.h
diff --git a/c_src/include/linux/blk_types.h b/c_src/include/linux/blk_types.h
deleted file mode 100644 (file)
index 80560ab..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * Block data types and constants.  Directly include this file only to
- * break include dependency loop.
- */
-#ifndef __LINUX_BLK_TYPES_H
-#define __LINUX_BLK_TYPES_H
-
-#include <linux/atomic.h>
-#include <linux/types.h>
-#include <linux/bvec.h>
-#include <linux/kobject.h>
-
-struct bio_set;
-struct bio;
-typedef void (bio_end_io_t) (struct bio *);
-
-#define BDEVNAME_SIZE  32
-
-struct request_queue {
-       struct backing_dev_info *backing_dev_info;
-};
-
-struct gendisk {
-       struct backing_dev_info *bdi;
-       struct backing_dev_info __bdi;
-};
-
-struct hd_struct {
-       struct kobject          kobj;
-};
-
-struct block_device {
-       struct kobject          kobj;
-       dev_t                   bd_dev;
-       char                    name[BDEVNAME_SIZE];
-       struct inode            *bd_inode;
-       struct request_queue    queue;
-       void                    *bd_holder;
-       struct gendisk *        bd_disk;
-       struct gendisk          __bd_disk;
-       int                     bd_fd;
-};
-
-#define bdev_kobj(_bdev) (&((_bdev)->kobj))
-
-/*
- * Block error status values.  See block/blk-core:blk_errors for the details.
- */
-typedef u8 __bitwise blk_status_t;
-#define        BLK_STS_OK 0
-#define BLK_STS_NOTSUPP                ((__force blk_status_t)1)
-#define BLK_STS_TIMEOUT                ((__force blk_status_t)2)
-#define BLK_STS_NOSPC          ((__force blk_status_t)3)
-#define BLK_STS_TRANSPORT      ((__force blk_status_t)4)
-#define BLK_STS_TARGET         ((__force blk_status_t)5)
-#define BLK_STS_NEXUS          ((__force blk_status_t)6)
-#define BLK_STS_MEDIUM         ((__force blk_status_t)7)
-#define BLK_STS_PROTECTION     ((__force blk_status_t)8)
-#define BLK_STS_RESOURCE       ((__force blk_status_t)9)
-#define BLK_STS_IOERR          ((__force blk_status_t)10)
-
-/* hack for device mapper, don't use elsewhere: */
-#define BLK_STS_DM_REQUEUE    ((__force blk_status_t)11)
-
-#define BLK_STS_AGAIN          ((__force blk_status_t)12)
-
-#define BIO_INLINE_VECS 4
-
-/*
- * main unit of I/O for the block layer and lower layers (ie drivers and
- * stacking drivers)
- */
-struct bio {
-       struct bio              *bi_next;       /* request queue link */
-       struct block_device     *bi_bdev;
-       blk_status_t            bi_status;
-       unsigned int            bi_opf;         /* bottom bits req flags,
-                                                * top bits REQ_OP. Use
-                                                * accessors.
-                                                */
-       unsigned short          bi_flags;       /* status, command, etc */
-       unsigned short          bi_ioprio;
-
-       struct bvec_iter        bi_iter;
-
-       atomic_t                __bi_remaining;
-
-       bio_end_io_t            *bi_end_io;
-       void                    *bi_private;
-
-       unsigned short          bi_vcnt;        /* how many bio_vec's */
-
-       /*
-        * Everything starting with bi_max_vecs will be preserved by bio_reset()
-        */
-
-       unsigned short          bi_max_vecs;    /* max bvl_vecs we can hold */
-
-       atomic_t                __bi_cnt;       /* pin count */
-
-       struct bio_vec          *bi_io_vec;     /* the actual vec list */
-
-       struct bio_set          *bi_pool;
-
-       /*
-        * We can inline a number of vecs at the end of the bio, to avoid
-        * double allocations for a small number of bio_vecs. This member
-        * MUST obviously be kept at the very end of the bio.
-        */
-       struct bio_vec          bi_inline_vecs[0];
-};
-
-#define BIO_RESET_BYTES                offsetof(struct bio, bi_max_vecs)
-
-/*
- * bio flags
- */
-#define BIO_SEG_VALID  1       /* bi_phys_segments valid */
-#define BIO_CLONED     2       /* doesn't own data */
-#define BIO_BOUNCED    3       /* bio is a bounce bio */
-#define BIO_USER_MAPPED 4      /* contains user pages */
-#define BIO_NULL_MAPPED 5      /* contains invalid user pages */
-#define BIO_QUIET      6       /* Make BIO Quiet */
-#define BIO_CHAIN      7       /* chained bio, ->bi_remaining in effect */
-#define BIO_REFFED     8       /* bio has elevated ->bi_cnt */
-
-/*
- * Flags starting here get preserved by bio_reset() - this includes
- * BVEC_POOL_IDX()
- */
-#define BIO_RESET_BITS 10
-
-/*
- * We support 6 different bvec pools, the last one is magic in that it
- * is backed by a mempool.
- */
-#define BVEC_POOL_NR           6
-#define BVEC_POOL_MAX          (BVEC_POOL_NR - 1)
-
-/*
- * Top 4 bits of bio flags indicate the pool the bvecs came from.  We add
- * 1 to the actual index so that 0 indicates that there are no bvecs to be
- * freed.
- */
-#define BVEC_POOL_BITS         (4)
-#define BVEC_POOL_OFFSET       (16 - BVEC_POOL_BITS)
-#define BVEC_POOL_IDX(bio)     ((bio)->bi_flags >> BVEC_POOL_OFFSET)
-
-/*
- * Operations and flags common to the bio and request structures.
- * We use 8 bits for encoding the operation, and the remaining 24 for flags.
- *
- * The least significant bit of the operation number indicates the data
- * transfer direction:
- *
- *   - if the least significant bit is set transfers are TO the device
- *   - if the least significant bit is not set transfers are FROM the device
- *
- * If a operation does not transfer data the least significant bit has no
- * meaning.
- */
-#define REQ_OP_BITS    8
-#define REQ_OP_MASK    ((1 << REQ_OP_BITS) - 1)
-#define REQ_FLAG_BITS  24
-
-enum req_opf {
-       /* read sectors from the device */
-       REQ_OP_READ             = 0,
-       /* write sectors to the device */
-       REQ_OP_WRITE            = 1,
-       /* flush the volatile write cache */
-       REQ_OP_FLUSH            = 2,
-       /* discard sectors */
-       REQ_OP_DISCARD          = 3,
-       /* get zone information */
-       REQ_OP_ZONE_REPORT      = 4,
-       /* securely erase sectors */
-       REQ_OP_SECURE_ERASE     = 5,
-       /* seset a zone write pointer */
-       REQ_OP_ZONE_RESET       = 6,
-       /* write the same sector many times */
-       REQ_OP_WRITE_SAME       = 7,
-       /* write the zero filled sector many times */
-       REQ_OP_WRITE_ZEROES     = 8,
-
-       /* SCSI passthrough using struct scsi_request */
-       REQ_OP_SCSI_IN          = 32,
-       REQ_OP_SCSI_OUT         = 33,
-       /* Driver private requests */
-       REQ_OP_DRV_IN           = 34,
-       REQ_OP_DRV_OUT          = 35,
-
-       REQ_OP_LAST,
-};
-
-enum req_flag_bits {
-       __REQ_FAILFAST_DEV =    /* no driver retries of device errors */
-               REQ_OP_BITS,
-       __REQ_FAILFAST_TRANSPORT, /* no driver retries of transport errors */
-       __REQ_FAILFAST_DRIVER,  /* no driver retries of driver errors */
-       __REQ_SYNC,             /* request is sync (sync write or read) */
-       __REQ_META,             /* metadata io request */
-       __REQ_PRIO,             /* boost priority in cfq */
-       __REQ_NOMERGE,          /* don't touch this for merging */
-       __REQ_IDLE,             /* anticipate more IO after this one */
-       __REQ_INTEGRITY,        /* I/O includes block integrity payload */
-       __REQ_FUA,              /* forced unit access */
-       __REQ_PREFLUSH,         /* request for cache flush */
-       __REQ_RAHEAD,           /* read ahead, can fail anytime */
-       __REQ_BACKGROUND,       /* background IO */
-       __REQ_NR_BITS,          /* stops here */
-};
-
-#define REQ_SYNC               (1ULL << __REQ_SYNC)
-#define REQ_META               (1ULL << __REQ_META)
-#define REQ_PRIO               (1ULL << __REQ_PRIO)
-
-#define REQ_NOMERGE_FLAGS      (REQ_PREFLUSH | REQ_FUA)
-
-#define bio_op(bio) \
-       ((bio)->bi_opf & REQ_OP_MASK)
-
-static inline void bio_set_op_attrs(struct bio *bio, unsigned op,
-               unsigned op_flags)
-{
-       bio->bi_opf = op | op_flags;
-}
-
-#define REQ_RAHEAD             (1ULL << __REQ_RAHEAD)
-#define REQ_THROTTLED          (1ULL << __REQ_THROTTLED)
-
-#define REQ_FUA                        (1ULL << __REQ_FUA)
-#define REQ_PREFLUSH           (1ULL << __REQ_PREFLUSH)
-
-#define RW_MASK                        REQ_OP_WRITE
-
-#define READ                   REQ_OP_READ
-#define WRITE                  REQ_OP_WRITE
-
-#define READ_SYNC              REQ_SYNC
-#define WRITE_SYNC             (REQ_SYNC)
-#define WRITE_ODIRECT          REQ_SYNC
-#define WRITE_FLUSH            (REQ_SYNC | REQ_PREFLUSH)
-#define WRITE_FUA              (REQ_SYNC | REQ_FUA)
-#define WRITE_FLUSH_FUA                (REQ_SYNC | REQ_PREFLUSH | REQ_FUA)
-
-#endif /* __LINUX_BLK_TYPES_H */