L4Re - L4 Runtime Environment
|
The virtual bus (Vbus) interface. More...
Public Member Functions | |
int | request_resource (l4vbus_resource_t *res, int flags=0) const |
Request the given resource from the bus. More... | |
int | release_resource (l4vbus_resource_t *res) const |
Release the given resource from the bus. More... | |
Device | root () const |
Get the root device of the device tree of this bus. More... | |
int | assign_dma_domain (unsigned domain_id, unsigned flags, L4::Cap< L4Re::Dma_space > dma_space) const |
Assign an L4Re::Dma_space to a DMA domain. More... | |
int | assign_dma_domain (unsigned domain_id, unsigned flags, L4::Cap< L4::Task > dma_space) const |
Assign a kernel DMA space to a DMA domain. More... | |
![]() | |
long | map (l4_addr_t offset, unsigned long flags, l4_addr_t local_addr, l4_addr_t min_addr, l4_addr_t max_addr) const throw () |
Request a flex-page mapping from the dataspace. More... | |
long | map_region (l4_addr_t offset, unsigned long flags, l4_addr_t min_addr, l4_addr_t max_addr) const throw () |
Map a part of a dataspace completely. More... | |
long | clear (l4_addr_t offset, unsigned long size) |
Clear parts of a dataspace. More... | |
long | allocate (l4_addr_t offset, l4_size_t size) |
Allocate a range in the dataspace. More... | |
long | copy_in (l4_addr_t dst_offs, L4::Ipc::Cap< Dataspace > src, l4_addr_t src_offs, unsigned long size) |
Copy contents from another dataspace. More... | |
long | phys (l4_addr_t offset, l4_addr_t &phys_addr, l4_size_t &phys_size) |
Get the physical addresses of a dataspace. More... | |
unsigned long | size () const throw () |
Get size of a dataspace. More... | |
long | flags () const throw () |
Get flags of the dataspace. More... | |
long | info (Stats *stats) |
Get information on the dataspace. More... | |
![]() | |
l4_msgtag_t | dec_refcnt (l4_mword_t diff, l4_utcb_t *utcb=l4_utcb()) |
Decrement the in kernel reference counter for the object. More... | |
![]() | |
long | acquire (l4_umword_t id, L4::Ipc::String<> reason) |
Acquire a specific inhibitor lock. More... | |
long | release (l4_umword_t id) |
Release a specific inhibitor lock. More... | |
long | next_lock_info (char *name, unsigned len, l4_mword_t current_id=-1, l4_utcb_t *utcb=l4_utcb()) |
Get information for the next available inhibitor lock. More... | |
![]() | |
long | get_buffer (L4::Ipc::Out< L4::Cap< Dataspace > > ds) |
Get event signal buffer. More... | |
![]() | |
l4_msgtag_t | bind (unsigned irqnum, L4::Cap< Triggerable > irq, l4_utcb_t *utcb=l4_utcb()) throw () |
Bind an interrupt line of an interrupt controller to an interrupt object. More... | |
l4_msgtag_t | unbind (unsigned irqnum, L4::Cap< Triggerable > irq, l4_utcb_t *utcb=l4_utcb()) throw () |
Remove binding of an interrupt line from the interrupt controller object. More... | |
l4_msgtag_t | info (l4_icu_info_t *info, l4_utcb_t *utcb=l4_utcb()) throw () |
Get information about the capabilities of the ICU. More... | |
l4_msgtag_t | msi_info (l4_umword_t irqnum, l4_uint64_t source, l4_icu_msi_info_t *msi_info) |
Get MSI info about IRQ. More... | |
l4_msgtag_t | mask (unsigned irqnum, l4_umword_t *label=0, l4_timeout_t to=L4_IPC_NEVER, l4_utcb_t *utcb=l4_utcb()) throw () |
Mask an IRQ line. More... | |
l4_msgtag_t | set_mode (unsigned irqnum, l4_umword_t mode, l4_utcb_t *utcb=l4_utcb()) throw () |
Set interrupt mode. More... | |
![]() | |
l4_msgtag_t | unmask (unsigned irqnum, l4_umword_t *label=0, l4_timeout_t to=L4_IPC_NEVER, l4_utcb_t *utcb=l4_utcb()) throw () |
Acknowledge the given interrupt line. More... | |
Additional Inherited Members | |
![]() | |
enum | Map_flags { Map_ro = 0, Map_rw = 1, Map_normal = 0x00, Map_cacheable = Map_normal, Map_bufferable = 0x10, Map_uncacheable = 0x20, Map_caching_mask = 0x30, Map_caching_shift = 4 } |
Flags for map operations. More... | |
![]() | |
enum | { Name_max = 20 } |
![]() | |
typedef Vbus | Class |
The target interface type (inheriting from Kobject_t) More... | |
typedef Typeid::Iface< PROTO_ANY, Vbus > | __Iface |
The interface description for the derived class. More... | |
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, Typeid::Merge_list< typename L4Re::Dataspace ::__Iface_list, Typeid::Merge_list< typename L4Re::Inhibitor ::__Iface_list, typename L4Re::Event ::__Iface_list > > > | __Iface_list |
The list of all RPC interfaces provided directly or through inheritance. More... | |
![]() | |
typedef Dataspace | Class |
The target interface type (inheriting from Kobject_t) | |
typedef Typeid::Iface< PROTO, Dataspace > | __Iface |
The interface description for the derived class. | |
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, typename L4::Kobject ::__Iface_list > | __Iface_list |
The list of all RPC interfaces provided directly or through inheritance. | |
![]() | |
typedef Inhibitor | Class |
The target interface type (inheriting from Kobject_t) | |
typedef Typeid::Iface< PROTO, Inhibitor > | __Iface |
The interface description for the derived class. | |
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, typename L4::Kobject ::__Iface_list > | __Iface_list |
The list of all RPC interfaces provided directly or through inheritance. | |
![]() | |
typedef Event | Class |
The target interface type (inheriting from Kobject_t) | |
typedef Typeid::Iface< PROTO, Event > | __Iface |
The interface description for the derived class. | |
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, typename L4::Icu ::__Iface_list > | __Iface_list |
The list of all RPC interfaces provided directly or through inheritance. | |
![]() | |
typedef Icu | Class |
The target interface type (inheriting from Kobject_t) | |
typedef Typeid::Iface< PROTO, Icu > | __Iface |
The interface description for the derived class. | |
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, typename Irq_eoi ::__Iface_list > | __Iface_list |
The list of all RPC interfaces provided directly or through inheritance. | |
![]() | |
L4::Cap< Class > | c () const |
Get the capability to ourselves. More... | |
![]() | |
L4::Cap< Class > | c () const |
Get the capability to ourselves. | |
![]() | |
l4_cap_idx_t | cap () const throw () |
Return capability selector. More... | |
![]() | |
L4::Cap< Class > | c () const |
Get the capability to ourselves. | |
![]() | |
L4::Cap< Class > | c () const |
Get the capability to ourselves. | |
![]() | |
L4::Cap< Class > | c () const |
Get the capability to ourselves. | |
![]() | |
static void | __check_protocols__ () |
![]() | |
static void | __check_protocols__ () |
Helper to check for protocol conflicts. | |
![]() | |
static void | __check_protocols__ () |
Helper to check for protocol conflicts. | |
![]() | |
static void | __check_protocols__ () |
Helper to check for protocol conflicts. | |
![]() | |
static void | __check_protocols__ () |
Helper to check for protocol conflicts. | |
|
inline |
Assign an L4Re::Dma_space to a DMA domain.
domain_id | DMA domain ID (resource address of DMA domain found on the vBUS). If the value is ~0U the DMA space of the whole vBUS is used. |
flags | A combination of L4vbus_dma_domain_assign_flags. |
dma_space | The DMA space capability to bind or unbind, this must be an L4Re::Dma_space |
0 | Operation completed successfully. |
-L4_ENOENT | The vbus does not support a global DMA domain or no DMA domain could be found. |
-L4_EINVAL | Invalid argument used. |
-L4_EBUSY | DMA domain is already active, this means another DMA space is already assigned. |
Definition at line 303 of file vbus.
References L4::Cap_base::cap(), l4vbus_assign_dma_domain(), L4VBUS_DMAD_KERNEL_DMA_SPACE, and L4VBUS_DMAD_L4RE_DMA_SPACE.
|
inline |
Assign a kernel DMA space to a DMA domain.
domain_id | DMA domain ID (resource address of DMA domain found on the vBUS). If the value is ~0U the DMA space of the whole vBUS is used. |
flags | A combination of L4vbus_dma_domain_assign_flags. |
dma_space | The DMA space capability to bind or unbind, this must be a kernel DMA space (L4::Task created with L4_PROTO_DMA_SPACE) |
0 | Operation completed successfully. |
-L4_ENOENT | The vbus does not support a global DMA domain or no DMA domain could be found. |
-L4_EINVAL | Invalid argument used. |
-L4_EBUSY | DMA domain is already active, this means another DMA space is already assigned. |
Definition at line 328 of file vbus.
References L4::Cap_base::cap(), l4vbus_assign_dma_domain(), L4VBUS_DMAD_KERNEL_DMA_SPACE, and L4VBUS_DMAD_L4RE_DMA_SPACE.
|
inline |
Release the given resource from the bus.
res | The resource that shall be requested from the bus. |
Definition at line 273 of file vbus.
References l4vbus_release_resource().
|
inline |
Request the given resource from the bus.
res | The resource that shall be requested from the bus. |
flags | The flags for the request. |
Definition at line 263 of file vbus.
References l4vbus_request_resource().
|
inline |
Get the root device of the device tree of this bus.
Definition at line 282 of file vbus.
References L4VBUS_ROOT_BUS.