L4Re - L4 Runtime Environment
1 /*
2  * (c) 2014 Sarah Hoffmann <sarah.hoffmann@kernkonzept.com>
3  *
4  * This file is part of TUD:OS and distributed under the terms of the
5  * GNU General Public License 2.
6  * Please see the COPYING-GPL-2 file for details.
7  *
8  * As a special exception, you may use this file as part of a free software
9  * library without restriction. Specifically, if other files instantiate
10  * templates or use macros or inline functions from this file, or you compile
11  * this file and link it with other files to produce an executable, this
12  * file does not by itself cause the resulting executable to be covered by
13  * the GNU General Public License. This exception does not however
14  * invalidate any other reasons why the executable file might be covered by
15  * the GNU General Public License.
16  */
18 #pragma once
26 #include <l4/sys/types.h>
32 {
37 };
43 {
47 };
53 {
64 {
68  struct l4virtio_block_config_geometry_t
69  {
70  l4_uint16_t cylinders;
71  l4_uint8_t heads;
72  l4_uint8_t sectors;
73  } geometry;
75  struct l4virtio_block_config_topology_t
76  {
78  l4_uint8_t physical_block_exp;
80  l4_uint8_t alignment_offset;
82  l4_uint16_t min_io_size;
84  l4_uint32_t opt_io_size;
85  } topology;
l4_uint64_t capacity
Capacity of device in 512-byte sectors.
Definition: virtio_block.h:65
l4_uint32_t blk_size
Block size of underlying disk.
Definition: virtio_block.h:74
l4_uint32_t ioprio
Priority (unused)
Definition: virtio_block.h:55
Kinds of operation over a block device.
Definition: virtio_block.h:31
Request finished successfully.
Definition: virtio_block.h:44
unsigned short int l4_uint16_t
Unsigned 16bit value.
Definition: l4int.h:38
Common L4 ABI Data Types.
Header structure of a request for a block device.
Definition: virtio_block.h:52
Device configuration for block devices.
Definition: virtio_block.h:63
Status of a finished block request.
Definition: virtio_block.h:42
struct l4virtio_block_config_t l4virtio_block_config_t
Device configuration for block devices.
Read from device.
Definition: virtio_block.h:33
Flush data to disk.
Definition: virtio_block.h:35
Write to device.
Definition: virtio_block.h:34
l4_uint32_t type
Kind of request, see L4virtio_block_operations.
Definition: virtio_block.h:54
l4_uint32_t size_max
Maximum size of a single segment.
Definition: virtio_block.h:66
unsigned char l4_uint8_t
Unsigned 8bit value.
Definition: l4int.h:36
Operation is not supported.
Definition: virtio_block.h:46
unsigned long long l4_uint64_t
Unsigned 64bit value.
Definition: l4int.h:42
l4_uint64_t sector
First sector to read/write.
Definition: virtio_block.h:56
IO error on device.
Definition: virtio_block.h:45
Get device ID.
Definition: virtio_block.h:36
struct l4virtio_block_header_t l4virtio_block_header_t
Header structure of a request for a block device.
unsigned int l4_uint32_t
Unsigned 32bit value.
Definition: l4int.h:40
l4_uint32_t seg_max
Maximum number of segments per request.
Definition: virtio_block.h:67