Miscellaneous


Classes

struct  l4io_drv
 IO driver types.

One dword encoding driver source and type. More...

struct  l4io_res
 PCI resources (regions). More...
struct  l4io_pci_dev
 PCI device information (struct). More...
struct  l4io_info
 I/O Info Page Structure.

This is the L4Env's I/O server info page. We have 4KB and fill it 0...L4_PAGESIZE-1. More...


Typedefs

typedef struct l4io_drv l4io_drv_t
 IO driver types.

One dword encoding driver source and type.

typedef struct l4io_res l4io_res_t
 PCI resources (regions).
typedef unsigned short l4io_pdev_t
 PCI device handle.
typedef struct l4io_pci_dev l4io_pci_dev_t
 PCI device information (struct).

Functions

EXTERN_C_BEGIN L4_CV int l4io_init (l4io_info_t **io_info_addr, l4io_drv_t drv_type)
L4_CV l4io_info_tl4io_info_page (void)
 Return pointer to L4IO info page.

Variables

struct l4io_info L4_PAGESIZE
 I/O Info Page Structure.

This is the L4Env's I/O server info page. We have 4KB and fill it 0...L4_PAGESIZE-1.


Detailed Description

Library initialization.

Typedef Documentation

typedef struct l4io_drv l4io_drv_t

IO driver types.

One dword encoding driver source and type.

This is a proposal/idea. A final version of driver/server descriptions had to be more extensive and _not_ only for driver servers.

0x00000000 is reserved.

  1. src
    • 00 ... native L4
    • 01 ... Linux
    • 10 ... OSKit
    • 11 ... others
  2. dsi
    • 7:4 ... major version
    • 3:0 ... minor version
  3. blk/class
    • 0xxxxxxx ... character device
      • x0000000 ... serio
      • x0000100 ... snd
    • 1xxxxxxx ... block device


Function Documentation

L4_CV l4io_info_t* l4io_info_page ( void   ) 

Return pointer to L4IO info page.

Returns:
Pointer to info page, 0 if unavailable.

EXTERN_C_BEGIN L4_CV int l4io_init ( l4io_info_t **  io_info_addr,
l4io_drv_t  drv_type 
)

Initialize IO library.

Parameters:
io_info_addr mapping address of io info page:
  • 0: libio queries RM for appropriate region
  • -1: no mapping is done at all
  • otherwise io_info_addr is used; area has to be prereserved at RM
drv_type short driver description
Return values:
io_info_addr actual mapping address (or -1 if no mapping)
Returns:
0 on success, negative error code otherwise
This initializes libio:

  • register driver according to drv_type
  • request and map io info page

Before io info page is mapped into client's address space any potentially mapping at the given address is FLUSHED! io_info_addr has to be pagesize aligned.


Variable Documentation

I/O Info Page Structure.

This is the L4Env's I/O server info page. We have 4KB and fill it 0...L4_PAGESIZE-1.

Test:
krishna: DDE libraries (resp. all io clients) have to do some assembler magic to put their symbols at the right place. (look into package dde_test resp. io (examples/dummy/))


generic_io Reference Manual, written by Christian Helmuth  © 2003 Technische Universitaet Dresden