L4Re - L4 Runtime Environment
|
Interface for memory-like address space accessible via IPC. More...
Public Types | |
enum | Access_width { Wd_8bit = 0, Wd_16bit = 1, Wd_32bit = 2, Wd_64bit = 3 } |
Actual size of the value to read or write. More... | |
typedef l4_uint64_t | Addr |
Device address. | |
Public Member Functions | |
long | mmio_read (Addr addr, char width, l4_uint64_t *value) |
Read a value from the given address. More... | |
long | mmio_write (Addr addr, char width, l4_uint64_t value) |
Write a value to the given address. 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... | |
Additional Inherited Members | |
![]() | |
typedef Mmio_space | Class |
The target interface type (inheriting from Kobject_t) | |
typedef Typeid::Iface< PROTO, Mmio_space > | __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. | |
![]() | |
L4::Cap< Class > | c () const |
Get the capability to ourselves. | |
![]() | |
l4_cap_idx_t | cap () const throw () |
Return capability selector. More... | |
![]() | |
static void | __check_protocols__ () |
Helper to check for protocol conflicts. | |
Interface for memory-like address space accessible via IPC.
Definition at line 25 of file mmio_space.
Actual size of the value to read or write.
Enumerator | |
---|---|
Wd_8bit | Value is a byte. |
Wd_16bit | Value is a 2-byte word. |
Wd_32bit | Value is a 4-byte word. |
Wd_64bit | Value is a 8-byte word. |
Definition at line 29 of file mmio_space.
long L4Re::Mmio_space::mmio_read | ( | Addr | addr, |
char | width, | ||
l4_uint64_t * | value | ||
) |
Read a value from the given address.
addr | Device virtual address to read from. The address must be aligned relative to the access width. | |
width | Access width of value to be read, see Access_width. | |
[out] | value | Return value. If width is smaller than 64 bit,the upper bits are guaranteed to be 0. |
L4_OK | Success. |
-L4_EPERM | Insufficient read rights. |
-L4_EINVAL | Address does not exist or cannot be accessed with the given width. |
long L4Re::Mmio_space::mmio_write | ( | Addr | addr, |
char | width, | ||
l4_uint64_t | value | ||
) |
Write a value to the given address.
addr | Device virtual address to write to. The address must be aligned relative to the access width. |
width | Access width of value to write, see Access_width. |
value | Value to write. If width is smaller than 64 bit, the upper bits are ignored. |
L4_OK | Success. |
-L4_EPERM | Insufficient write rights. |
-L4_EINVAL | Address does not exist or cannot be accessed with the given width. |