L4Re - L4 Runtime Environment
L4vbus::Vbus Class Reference

The virtual BUS. 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< Classc () 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< Classc () 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< Classc () const
 Get the capability to ourselves.
 
- Protected Member Functions inherited from L4::Kobject_t< Event, L4::Icu, L4RE_PROTO_EVENT >
L4::Cap< Classc () 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< Classc () 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.
 

Detailed Description

The virtual BUS.

Definition at line 242 of file vbus.

Member Function Documentation

◆ assign_dma_domain() [1/2]

int L4vbus::Vbus::assign_dma_domain ( unsigned  domain_id,
unsigned  flags,
L4::Cap< L4Re::Dma_space dma_space 
) const
inline

Assign an L4Re::Dma_space to a DMA domain.

Parameters
domain_idDMA 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.
flagsA combination of L4vbus_dma_domain_assign_flags.
dma_spaceThe DMA space capability to bind or unbind, this must be an L4Re::Dma_space
Return values
0Operation completed successfully.
-L4_ENOENTThe vbus does not support a global DMA domain or no DMA domain could be found.
-L4_EINVALInvalid argument used.
-L4_EBUSYDMA domain is already active, this means another DMA space is already assigned.

Definition at line 292 of file vbus.

◆ assign_dma_domain() [2/2]

int L4vbus::Vbus::assign_dma_domain ( unsigned  domain_id,
unsigned  flags,
L4::Cap< L4::Task dma_space 
) const
inline

Assign a kernel DMA space to a DMA domain.

Parameters
domain_idDMA 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.
flagsA combination of L4vbus_dma_domain_assign_flags.
dma_spaceThe DMA space capability to bind or unbind, this must be a kernel DMA space (L4::Task created with L4_PROTO_DMA_SPACE)
Return values
0Operation completed successfully.
-L4_ENOENTThe vbus does not support a global DMA domain or no DMA domain could be found.
-L4_EINVALInvalid argument used.
-L4_EBUSYDMA domain is already active, this means another DMA space is already assigned.

Definition at line 317 of file vbus.

◆ release_resource()

int L4vbus::Vbus::release_resource ( l4vbus_resource_t res) const
inline

Release the given resource from the bus.

Parameters
resThe resource that shall be requested from the bus.
Returns
>=0 on success, <0 on error.

Definition at line 262 of file vbus.

◆ request_resource()

int L4vbus::Vbus::request_resource ( l4vbus_resource_t res,
int  flags = 0 
) const
inline

Request the given resource from the bus.

Parameters
resThe resource that shall be requested from the bus.
flagsThe flags for the request.
Returns
>=0 on success, <0 on error.

Definition at line 252 of file vbus.

◆ root()

Device L4vbus::Vbus::root ( ) const
inline

Get the root device of the device tree of this bus.

Returns
A V-BUS device representing the root of the device tree.

Definition at line 271 of file vbus.


The documentation for this class was generated from the following file: