Block device
In simple terms, a block device can be though of as a device that reads and writes one block at a time as opposed to a character device that reads and writes one byte at a time. A block here being a fixed set of bytes.
A block device is a special file that provides buffered access to a hardware device.
typedef struct block_t {
block_read_t read;
block_write_t write;
void *device;
} block_t;