|
L4Re - L4 Runtime Environment
|
The virtual bus (Vbus) interface. More...
Inheritance diagram for L4vbus::Vbus:
Collaboration diagram for L4vbus::Vbus: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... | |
Public Member Functions inherited from L4Re::Dataspace | |
| 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... | |
Public Member Functions inherited from L4::Kobject | |
| 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... | |
Public Member Functions inherited from L4Re::Inhibitor | |
| 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... | |
Public Member Functions inherited from L4Re::Event | |
| long | get_buffer (L4::Ipc::Out< L4::Cap< Dataspace > > ds) |
| Get event signal buffer. More... | |
Public Member Functions inherited from L4::Icu | |
| 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... | |
Public Member Functions inherited from L4::Irq_eoi | |
| 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 | |
Public Types inherited from L4Re::Dataspace | |
| 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... | |
Public Types inherited from L4Re::Inhibitor | |
| enum | { Name_max = 20 } |
Protected Types inherited from L4::Kobject_3t< Vbus, L4Re::Dataspace, L4Re::Inhibitor, L4Re::Event > | |
| 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... | |
Protected Types inherited from L4::Kobject_t< Dataspace, L4::Kobject, L4RE_PROTO_DATASPACE, L4::Type_info::Demand_t< 1 > > | |
| 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. | |
Protected Types inherited from L4::Kobject_t< Inhibitor, L4::Kobject, L4RE_PROTO_INHIBITOR > | |
| 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. | |
Protected Types inherited from L4::Kobject_t< Event, L4::Icu, L4RE_PROTO_EVENT > | |
| 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. | |
Protected Types inherited from L4::Kobject_t< Icu, Irq_eoi, L4_PROTO_IRQ, Type_info::Demand_t< 1 > > | |
| 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. | |
Protected Member Functions inherited from L4::Kobject_3t< Vbus, L4Re::Dataspace, L4Re::Inhibitor, L4Re::Event > | |
| L4::Cap< Class > | c () const |
| Get the capability to ourselves. More... | |
Protected Member Functions inherited from L4::Kobject_t< Dataspace, L4::Kobject, L4RE_PROTO_DATASPACE, L4::Type_info::Demand_t< 1 > > | |
| L4::Cap< Class > | c () const |
| Get the capability to ourselves. | |
Protected Member Functions inherited from L4::Kobject | |
| l4_cap_idx_t | cap () const throw () |
| Return capability selector. More... | |
Protected Member Functions inherited from L4::Kobject_t< Inhibitor, L4::Kobject, L4RE_PROTO_INHIBITOR > | |
| L4::Cap< Class > | c () const |
| Get the capability to ourselves. | |
Protected Member Functions inherited from L4::Kobject_t< Event, L4::Icu, L4RE_PROTO_EVENT > | |
| L4::Cap< Class > | c () const |
| Get the capability to ourselves. | |
Protected Member Functions inherited from L4::Kobject_t< Icu, Irq_eoi, L4_PROTO_IRQ, Type_info::Demand_t< 1 > > | |
| L4::Cap< Class > | c () const |
| Get the capability to ourselves. | |
Static Protected Member Functions inherited from L4::Kobject_3t< Vbus, L4Re::Dataspace, L4Re::Inhibitor, L4Re::Event > | |
| static void | __check_protocols__ () |
Static Protected Member Functions inherited from L4::Kobject_t< Dataspace, L4::Kobject, L4RE_PROTO_DATASPACE, L4::Type_info::Demand_t< 1 > > | |
| static void | __check_protocols__ () |
| Helper to check for protocol conflicts. | |
Static Protected Member Functions inherited from L4::Kobject_t< Inhibitor, L4::Kobject, L4RE_PROTO_INHIBITOR > | |
| static void | __check_protocols__ () |
| Helper to check for protocol conflicts. | |
Static Protected Member Functions inherited from L4::Kobject_t< Event, L4::Icu, L4RE_PROTO_EVENT > | |
| static void | __check_protocols__ () |
| Helper to check for protocol conflicts. | |
Static Protected Member Functions inherited from L4::Kobject_t< Icu, Irq_eoi, L4_PROTO_IRQ, Type_info::Demand_t< 1 > > | |
| 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.
Here is the call graph for this function:
|
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.
Here is the call graph for this function:
|
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().
Here is the call graph for this function:
|
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().
Here is the call graph for this function:
|
inline |
Get the root device of the device tree of this bus.
Definition at line 282 of file vbus.
References L4VBUS_ROOT_BUS.