at v2.6.24 1.3 kB view raw
1#ifndef _LINUX_VIRTIO_BLK_H 2#define _LINUX_VIRTIO_BLK_H 3#include <linux/virtio_config.h> 4 5/* The ID for virtio_block */ 6#define VIRTIO_ID_BLOCK 2 7 8/* Feature bits */ 9#define VIRTIO_CONFIG_BLK_F 0x40 10#define VIRTIO_BLK_F_BARRIER 1 /* Does host support barriers? */ 11 12/* The capacity (in 512-byte sectors). */ 13#define VIRTIO_CONFIG_BLK_F_CAPACITY 0x41 14/* The maximum segment size. */ 15#define VIRTIO_CONFIG_BLK_F_SIZE_MAX 0x42 16/* The maximum number of segments. */ 17#define VIRTIO_CONFIG_BLK_F_SEG_MAX 0x43 18 19/* These two define direction. */ 20#define VIRTIO_BLK_T_IN 0 21#define VIRTIO_BLK_T_OUT 1 22 23/* This bit says it's a scsi command, not an actual read or write. */ 24#define VIRTIO_BLK_T_SCSI_CMD 2 25 26/* Barrier before this op. */ 27#define VIRTIO_BLK_T_BARRIER 0x80000000 28 29/* This is the first element of the read scatter-gather list. */ 30struct virtio_blk_outhdr 31{ 32 /* VIRTIO_BLK_T* */ 33 __u32 type; 34 /* io priority. */ 35 __u32 ioprio; 36 /* Sector (ie. 512 byte offset) */ 37 __u64 sector; 38 /* Where to put reply. */ 39 __u64 id; 40}; 41 42#define VIRTIO_BLK_S_OK 0 43#define VIRTIO_BLK_S_IOERR 1 44#define VIRTIO_BLK_S_UNSUPP 2 45 46/* This is the first element of the write scatter-gather list */ 47struct virtio_blk_inhdr 48{ 49 unsigned char status; 50}; 51#endif /* _LINUX_VIRTIO_BLK_H */