#include <iospace_manager.hpp>


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_handler * | get_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_config & | config |
| 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... | |
const machine_config& iospace_manager::config [protected] |