#include <l4_types.h>
Public Types | |
typedef Mword | Raw |
typedef Raw | Cache_type |
enum | { Whole_io_space = 16, Io_port_max = 1L << Whole_io_space } |
I/O port specific constants. More... | |
enum | { Whole_space = 32 } |
Flex page constants. More... | |
Public Member Functions | |
L4_fpage (Mword grant, Mword write, Mword order, Mword page) | |
Create a flexpage with the given parameters. | |
L4_fpage (Mword order, Mword page) | |
Create a flexpage with the given parameters. | |
Mword | grant () const |
Is the grant bit set? | |
void | grant (Mword g) |
Set the grant bit according to g. | |
Mword | write () const |
Is the write bit set? | |
void | write (Mword w) |
Set the write bit according to w. | |
Mword | size () const |
Get the size part of the flex page. | |
void | size (Mword order) |
Set the size part of the flex page. | |
Mword | page () const |
Get the base address of the flex page. | |
void | page (Mword base) |
Set the base address of the flex page. | |
Mword | is_whole_space () const |
Is the flex page the whole address space? | |
Mword | is_valid () const |
Is the flex page valid? | |
Mword | iopage () const |
Get the I/O port address. | |
void | iopage (Mword addr) |
Set the I/O port address. | |
Mword | is_iopage () const |
Is the flex page an I/O flex page? not zero if this flex page is an I/O flex page. | |
Mword | is_whole_io_space () const |
Covers the flex page the whole I/O space. | |
L4_fpage (Raw w=0) | |
Create a flex page from the binary representation. | |
Raw | raw () const |
Get the binary representation of the flex page. | |
L4_fpage::Cache_type | cache_type () const |
Static Public Member Functions | |
static L4_fpage | io (Mword port, Mword order, Mword grant) |
Create the given I/O flex page. | |
Private Types | |
enum | { Iopage_mask = 0x0ffff000, Iopage_shift = 12, Ioid_mask = 0xf0000000, Io_id = 0xf0000000 } |
enum | { Grant_bit = 0, Write_bit = 1, Size_mask = 0x000000fc, Size_shift = 2, Size_size = 6, Cache_type_mask = 0x00000c00, Page_mask = 0xfffff000, Page_shift = 0, Page_size = 32 } |
Private Attributes | |
Raw | _raw |
A flex page represents a size aligned region of an address space.
|
|
|
|
|
I/O port specific constants.
|
|
|
|
Flex page constants.
|
|
|
|
Create a flexpage with the given parameters.
|
|
Create a flexpage with the given parameters. This constructor is ABI-independent, thus it sets the ABI-independent fpage attributes only. The other bits are set to 0.
|
|
Create a flex page from the binary representation.
|
|
|
|
Set the grant bit according to g.
|
|
Is the grant bit set?
|
|
Create the given I/O flex page.
|
|
Set the I/O port address.
|
|
Get the I/O port address.
|
|
Is the flex page an I/O flex page? not zero if this flex page is an I/O flex page.
|
|
Is the flex page valid?
|
|
Covers the flex page the whole I/O space.
|
|
Is the flex page the whole address space?
|
|
Set the base address of the flex page.
|
|
Get the base address of the flex page.
|
|
Get the binary representation of the flex page.
|
|
Set the size part of the flex page.
|
|
Get the size part of the flex page.
|
|
Set the write bit according to w.
|
|
Is the write bit set?
|
|
|