Overview   API Reference  

detail::resource_region< AddressT > Struct Template Reference

Generic resource region for I/O space or I/O memory regions without constructors to allow static (array) construction. More...

#include <resource_region.hpp>

Inheritance diagram for detail::resource_region< AddressT >:

Inheritance graph
[legend]
Collaboration diagram for detail::resource_region< AddressT >:

Collaboration graph
[legend]

List of all members.

Public Types

typedef AddressT address_type

Public Member Functions

resource_regionoperator() (const AddressT base, const AddressT size=AddressT(1))
bool is_empty (void) const
 Determines whether this I/O region is empty (size == 0).
bool equals (const AddressT base, const AddressT size=AddressT(1)) const
 Determines whether the specified range is exactly this I/O region.
bool contains (const AddressT base, const AddressT size=AddressT(1)) const
 Determines whether the specified range lies inside this I/O region.
bool contains (const resource_region &other) const
 Determines whether the specified region lies inside this I/O region.
bool overlaps (const AddressT base, const AddressT size=AddressT(1)) const
 Determines whether the specified range overlaps this I/O region.
bool overlaps (const resource_region &other) const
 Determines whether the specified region overlaps this I/O region.
const resource_region disjunct (const AddressT base, const AddressT size=AddressT(1)) const
 Returns the disjunction of this I/O region and the specified range.
const resource_region conjunct (const AddressT base, const AddressT size=AddressT(1)) const
 Returns the conjunction of this I/O region and the specified range.
template<typename FormatT>
int print (const char *prefix="", const char *suffix="") const
 Prints this I/O region's base, end, and size.
int print (const char *prefix="", const char *suffix="") const
 Prints this I/O region's base, end, and size.

Public Attributes

AddressT base
 This I/O region's base address/port number.
AddressT size
 This I/O region's size.

Friends

bool operator== (const resource_region &r1, const resource_region &r2)
 Determines whether the specified I/O regions are equal.
const resource_region operator| (const resource_region &r1, const resource_region &r2)
 Returns the disjunction of the specified I/O regions.
const resource_region operator & (const resource_region &r1, const resource_region &r2)
 Returns the conjunction of the specified I/O regions.


Detailed Description

template<typename AddressT>
struct detail::resource_region< AddressT >

Generic resource region for I/O space or I/O memory regions without constructors to allow static (array) construction.

Member Function Documentation

template<typename AddressT>
const resource_region detail::resource_region< AddressT >::disjunct ( const AddressT  base,
const AddressT  size = AddressT(1) 
) const [inline]

Returns the disjunction of this I/O region and the specified range.

Returns the convex hull, if the ranges don't overlap.

template<typename AddressT>
const resource_region detail::resource_region< AddressT >::conjunct ( const AddressT  base,
const AddressT  size = AddressT(1) 
) const [inline]

Returns the conjunction of this I/O region and the specified range.

Returns the empty region (size == 0), if the regions don't overlap.


Friends And Related Function Documentation

template<typename AddressT>
const resource_region operator| ( const resource_region< AddressT > &  r1,
const resource_region< AddressT > &  r2 
) [friend]

Returns the disjunction of the specified I/O regions.

Returns the convex hull, if the regions don't overlap.

template<typename AddressT>
const resource_region operator & ( const resource_region< AddressT > &  r1,
const resource_region< AddressT > &  r2 
) [friend]

Returns the conjunction of the specified I/O regions.

Returns the empty region (size == 0), if the regions don't overlap.


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

L4vmm Reference Manual, written by Mario Schwalbe  © 2006-2008