L4Re – L4 Runtime Environment
vbus_types.h
Go to the documentation of this file.
1 /*
2  * (c) 2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>,
3  * Alexander Warg <warg@os.inf.tu-dresden.de>
4  * economic rights: Technische Universität Dresden (Germany)
5  *
6  * This file is part of TUD:OS and distributed under the terms of the
7  * GNU General Public License 2.
8  * Please see the COPYING-GPL-2 file for details.
9  */
15 #pragma once
16 
17 #include <l4/sys/types.h>
18 
19 typedef l4_mword_t l4vbus_device_handle_t;
20 typedef l4_addr_t l4vbus_paddr_t;
21 
23 typedef struct {
29  l4vbus_paddr_t start;
31  l4vbus_paddr_t end;
33  l4vbus_device_handle_t provider;
37 
48 };
49 
61 };
62 
63 enum l4vbus_consts_t {
64  L4VBUS_DEV_NAME_LEN = 64,
65  L4VBUS_MAX_DEPTH = 100,
66 };
67 
69 typedef struct {
73  char name[L4VBUS_DEV_NAME_LEN];
75  unsigned num_resources;
77  unsigned flags;
79 
83 };
unsigned long l4_addr_t
Address type.
Definition: l4int.h:45
signed long l4_mword_t
Signed machine word.
Definition: l4int.h:48
unsigned int l4_uint32_t
Unsigned 32bit value.
Definition: l4int.h:40
unsigned short int l4_uint16_t
Unsigned 16bit value.
Definition: l4int.h:38
Common L4 ABI Data Types.
Detailed information about a vbus device.
Definition: vbus_types.h:69
unsigned flags
Flags, see l4vbus_device_flags_t.
Definition: vbus_types.h:77
l4_uint32_t type
Bitfield of supported sub-interfaces, see l4vbus_iface_type_t.
Definition: vbus_types.h:71
unsigned num_resources
Number of resources for this device.
Definition: vbus_types.h:75
Description of a single vbus resource.
Definition: vbus_types.h:23
l4_uint16_t flags
Flags.
Definition: vbus_types.h:27
l4vbus_device_handle_t provider
Device handle of the provider of the resource.
Definition: vbus_types.h:33
l4_uint16_t type
Resource type, see l4vbus_resource_type_t.
Definition: vbus_types.h:25
l4vbus_paddr_t start
Start of resource range.
Definition: vbus_types.h:29
l4vbus_paddr_t end
End of resource range (inclusive)
Definition: vbus_types.h:31
l4_uint32_t id
Resource ID (4 bytes), usually a 4 letter ASCII name is used.
Definition: vbus_types.h:35
l4vbus_resource_flags_t
Description of vbus resource flags.
Definition: vbus_types.h:56
@ L4VBUS_RESOURCE_F_MEM_MMIO_WRITE
Writing needs to be performed using the MMIO space protocol.
Definition: vbus_types.h:60
@ L4VBUS_RESOURCE_F_MEM_MMIO_READ
Reading needs to be performed using the MMIO space protocol.
Definition: vbus_types.h:58
l4vbus_device_flags_t
Flags describing device properties, see l4vbus_device_t.
Definition: vbus_types.h:81
@ L4VBUS_DEVICE_F_CHILDREN
Device has child devices.
Definition: vbus_types.h:82
l4vbus_resource_type_t
Description of vbus resource types.
Definition: vbus_types.h:39
@ L4VBUS_RESOURCE_IRQ
Interrupt resource.
Definition: vbus_types.h:41
@ L4VBUS_RESOURCE_MAX
Maximum resource id.
Definition: vbus_types.h:47
@ L4VBUS_RESOURCE_PORT
I/O port resource (x86 only)
Definition: vbus_types.h:43
@ L4VBUS_RESOURCE_DMA_DOMAIN
DMA domain.
Definition: vbus_types.h:46
@ L4VBUS_RESOURCE_BUS
Bus resource.
Definition: vbus_types.h:44
@ L4VBUS_RESOURCE_MEM
I/O memory resource.
Definition: vbus_types.h:42
@ L4VBUS_RESOURCE_GPIO
Gpio resource.
Definition: vbus_types.h:45
@ L4VBUS_RESOURCE_INVALID
Invalid type.
Definition: vbus_types.h:40