Io serves several resource allocation requests and thereby manages I/O ports, I/O memory, and ISA DMA channels
.
|
Classes |
struct | io_res |
| Arbitrated resources (creating an USED SPACE list). More...
|
struct | io_ares |
| Announced I/O memory resources. More...
|
struct | io_dma_res |
| DMA resources. More...
|
Generic Resource Manipulation |
static int | __request_region (unsigned long start, unsigned long len, unsigned long max, io_res_t **root, io_client_t *c) |
| Generic allocate region.
|
static int | __search_region (unsigned long addr, io_ares_t *p, unsigned long *start, unsigned long *len) |
| Generic search function.
|
static int | __release_region (unsigned long start, unsigned long len, io_res_t **root, io_client_t *c) |
| Generic release region.
|
static int | __release_region_client (io_res_t **root, io_client_t *c) |
| Generic release region for all regions of a specific client.
|
Request/Release Interface Functions (IPC interface) |
Functions for system resource request and release.
|
long | l4_io_request_region_component (CORBA_Object _dice_corba_obj, l4_uint16_t addr, l4_uint16_t len, l4_size_t *num, l4_snd_fpage_t regions[], CORBA_Server_Environment *_dice_corba_env) |
| Request I/O port region.
|
long | l4_io_release_region_component (CORBA_Object _dice_corba_obj, l4_uint16_t addr, l4_uint16_t len, CORBA_Server_Environment *_dice_corba_env) |
| Release I/O port region.
|
long | l4_io_request_mem_region_component (CORBA_Object _dice_corba_obj, unsigned long addr, unsigned long len, unsigned long flags, l4_snd_fpage_t *region, CORBA_Server_Environment *_dice_corba_env) |
| Request I/O memory region.
|
long | l4_io_search_mem_region_component (CORBA_Object _dice_corba_obj, unsigned long addr, unsigned long *start, l4_size_t *len, CORBA_Server_Environment *_dice_corba_env) |
| Search for I/O memory region.
|
long | l4_io_release_mem_region_component (CORBA_Object _dice_corba_obj, unsigned long addr, unsigned long len, CORBA_Server_Environment *_dice_corba_env) |
| Release I/O memory region.
|
long | l4_io_request_dma_component (CORBA_Object _dice_corba_obj, unsigned long channel, CORBA_Server_Environment *_dice_corba_env) |
| Request ISA DMA Channel.
|
long | l4_io_release_dma_component (CORBA_Object _dice_corba_obj, unsigned long channel, CORBA_Server_Environment *_dice_corba_env) |
| Release ISA DMA Channel.
|
long | l4_io_release_client_component (CORBA_Object _dice_corba_obj, const l4_threadid_t *client, CORBA_Server_Environment *_dice_corba_env) |
| Release all regions of a client.
|
Region Specific Interface Functions (internal callbacks) |
Functions for system resource request, release, and announcement.
- Test:
- krishna: We assume single-threading here and above!
- Todo:
- Rethink release() and implement if appropriate.
|
int | callback_request_region (unsigned long addr, unsigned long len) |
| Request I/O port region.
|
int | callback_request_mem_region (unsigned long addr, unsigned long len) |
| Request I/O memory region.
|
void | callback_announce_mem_region (unsigned long addr, unsigned long len) |
| Announce I/O memory region.
|
int | callback_handle_pci_device (unsigned short vendor, unsigned short device) |
| Check if we should handle this specific PCI device
This is checked against the parameters the user provided on startup.
|
Typedefs |
typedef struct io_res | io_res_t |
| Arbitrated resources (creating an USED SPACE list).
|
typedef struct io_ares | io_ares_t |
| Announced I/O memory resources.
|
Functions |
int | io_res_init (io_client_t *c) |
| Resource Module Initialization.
|
Variables |
static io_res_t * | io_port_res = NULL |
| IO ports.
|
static io_res_t * | io_mem_res = NULL |
| IO memory.
|
static io_ares_t * | io_mem_ares = NULL |
| announced IO memory
|
static struct io_dma_res | isa_dma [8] |
| ISA DMA channels.
|
Io serves several resource allocation requests and thereby manages I/O ports, I/O memory, and ISA DMA channels
.