Overview   API Reference  

iospace_manager Struct Reference

Class to manage the x86 architecture's I/O space. More...

#include <iospace_manager.hpp>

Inheritance diagram for iospace_manager:

Inheritance graph
[legend]
Collaboration diagram for iospace_manager:

Collaboration graph
[legend]

List of all members.

Public Types

typedef resource_flags ioport_flags

Public Member Functions

 static_assert (is_unsigned< l4_port_t >::conforms,"l4_port_t must be an unsigned integer")
 static_assert (static_cast< uint32_t >(integer_traits< l4_port_t >::const_max) >=NUM_IOPORTS-1,"l4_port_t's max value is too small")
 iospace_manager (const machine_config &config)
virtual int check_iospace_request (const iospace_handler *handler, l4_port_t base, l4_port_t size=1, bool verbose=VERBOSE_ALLOCATION) const
virtual int register_iospace_handler (iospace_handler *handler, l4_port_t base, l4_port_t size=1, bool verbose=VERBOSE_ALLOCATION)
virtual int unregister_iospace_handler (const iospace_handler *handler, l4_port_t base, l4_port_t size=1, bool verbose=VERBOSE_ALLOCATION)
bool is_ioport_virtual (const l4_port_t port) const
template<typename WordT>
WordT read_virtual_ioport (const l4_port_t port)
template<typename WordT>
int write_virtual_ioport (const l4_port_t port, const WordT data)
virtual int request_iospace_region (iospace_handler *handler, l4_port_t base, l4_port_t size=1, bool verbose=VERBOSE_ALLOCATION)
virtual int release_iospace_region (const iospace_handler *handler, l4_port_t base, l4_port_t size=1, bool verbose=VERBOSE_ALLOCATION)
virtual int release_iospace_regions (const iospace_handler *handler=nullptr, bool verbose=VERBOSE_ALLOCATION)
bool is_ioport_physical (const l4_port_t port) const
virtual int check_iospace_use (ioport_flags use, l4_port_t base, l4_port_t size=1)
virtual int change_iospace_region (iospace_handler *handler, ioport_flags use, l4_port_t base, l4_port_t size=1, bool verbose=VERBOSE_ALLOCATION)
iospace_handlerget_ioport_handler (const l4_port_t port) const
virtual void print_iospace_state (const char *header=nullptr)

Static Public Member Functions

static bool is_valid_ioport (const l4_port_t port)

Static Public Attributes

static const bool VERBOSE_ALLOCATION = false
static const int NUM_IOPORTS = L4_IOPORT_MAX

Protected Member Functions

virtual int init_iospace (void)

Protected Attributes

const machine_configconfig
 The machine's configuration struct.
lock iospace_lock
 Semaphore to lock critical sections in management functions.
ioport_state iospace_state [NUM_IOPORTS]
 Array to store all states and registered handlers/owners.
iospace_default_handler default_handler
 Default virtual handler used for otherwise unassigned ports.

Classes

struct  ioport_state
 Struct to store all states and registered handlers/owners. More...


Detailed Description

Class to manage the x86 architecture's I/O space.

Member Data Documentation

The machine's configuration struct.

Referenced here only.

Reimplemented in machine_base.


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

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