Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

L4_fpage Class Reference

A L4 flex page. More...

#include <l4_types.h>

List of all members.

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


Detailed Description

A L4 flex page.

A flex page represents a size aligned region of an address space.


Member Typedef Documentation

typedef Raw L4_fpage::Cache_type
 

typedef Mword L4_fpage::Raw
 


Member Enumeration Documentation

anonymous enum
 

I/O port specific constants.

Enumeration values:
Whole_io_space  The order used to cover the whole I/O space.
Io_port_max  Number of available I/O ports.

anonymous enum [private]
 

Enumeration values:
Iopage_mask 
Iopage_shift 
Ioid_mask 
Io_id 

anonymous enum
 

Flex page constants.

Enumeration values:
Whole_space  Size of the whole address space.

anonymous enum [private]
 

Enumeration values:
Grant_bit  G (Grant).
Write_bit  W (Write).
Size_mask 
Size_shift 
Size_size 
Cache_type_mask  C (Cache type [extension]).
Page_mask 
Page_shift 
Page_size 


Constructor & Destructor Documentation

L4_fpage::L4_fpage Mword  grant,
Mword  write,
Mword  order,
Mword  page
[inline]
 

Create a flexpage with the given parameters.

Parameters:
grant if not zero the grant bit is to be set.
write if not zero the write bit is to be set.
order the size of the flex page is 2^order.
page the base address of the flex page.

L4_fpage::L4_fpage Mword  order,
Mword  page
[inline]
 

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.

Parameters:
order the size of the flex page is 2^order.
page the base address of the flex page.

L4_fpage::L4_fpage Raw  w = 0  )  [inline]
 

Create a flex page from the binary representation.

Parameters:
w the binary representation.


Member Function Documentation

L4_fpage::Cache_type L4_fpage::cache_type  )  const [inline]
 

void L4_fpage::grant Mword  g  )  [inline]
 

Set the grant bit according to g.

Parameters:
g if not zero the grant bit is to be set.

Mword L4_fpage::grant  )  const [inline]
 

Is the grant bit set?

Returns:
the state of the grant bit.

L4_fpage L4_fpage::io Mword  port,
Mword  order,
Mword  grant
[inline, static]
 

Create the given I/O flex page.

Parameters:
port the port address.
order the size of the flex page is 2^order.
grant if not zero the grant bit is to be set.

void L4_fpage::iopage Mword  addr  )  [inline]
 

Set the I/O port address.

Parameters:
addr the port address.

Mword L4_fpage::iopage  )  const [inline]
 

Get the I/O port address.

Returns:
The I/O port address.

Mword L4_fpage::is_iopage  )  const [inline]
 

Is the flex page an I/O flex page? not zero if this flex page is an I/O flex page.

Mword L4_fpage::is_valid  )  const [inline]
 

Is the flex page valid?

Returns:
not zero if the flex page contains a value other than 0.

Mword L4_fpage::is_whole_io_space  )  const [inline]
 

Covers the flex page the whole I/O space.

Precondition:
The is_iopage() method must return true or the behavior is undefined.
Returns:
not zero, if the flex page covers the whole I/O space.

Mword L4_fpage::is_whole_space  )  const [inline]
 

Is the flex page the whole address space?

Returns:
not zero, if the flex page covers the whole address space.

void L4_fpage::page Mword  base  )  [inline]
 

Set the base address of the flex page.

Parameters:
base the flex page's base address.

Mword L4_fpage::page  )  const [inline]
 

Get the base address of the flex page.

Returns:
the base address.

L4_fpage::Raw L4_fpage::raw  )  const [inline]
 

Get the binary representation of the flex page.

Returns:
this flex page in binary representation.

void L4_fpage::size Mword  order  )  [inline]
 

Set the size part of the flex page.

Parameters:
order the size is 2^order.

Mword L4_fpage::size  )  const [inline]
 

Get the size part of the flex page.

Returns:
the order of the flex page (size part).

void L4_fpage::write Mword  w  )  [inline]
 

Set the write bit according to w.

Parameters:
w if not zero the write bit is to be set.

Mword L4_fpage::write  )  const [inline]
 

Is the write bit set?

Returns:
the state of the write bit.


Member Data Documentation

Raw L4_fpage::_raw [private]
 


The documentation for this class was generated from the following file:
Generated on Mon Sep 26 14:20:16 2005 for Fiasco by  doxygen 1.4.2