devmap.c File Reference

#include <ipc/services.h>
#include <ipc/ns.h>
#include <async.h>
#include <stdio.h>
#include <errno.h>
#include <bool.h>
#include <fibril_synch.h>
#include <stdlib.h>
#include <str.h>
#include <ipc/devmap.h>
#include <assert.h>

Go to the source code of this file.

Data Structures

struct  devmap_device_t
 Info about registered device. More...
struct  devmap_driver_t
 Representation of device driver. More...
struct  devmap_namespace_t
 Info about registered namespaces. More...

Defines

#define NAME   "devmap"
#define NULL_DEVICES   256

Functions

static void devmap_connection (ipc_callid_t iid, ipc_call_t *icall)
 Function for handling connections to devmap.
static void devmap_connection_client (ipc_callid_t iid, ipc_call_t *icall)
 Handle connection with device client.
static void devmap_connection_driver (ipc_callid_t iid, ipc_call_t *icall)
 Handle connection with device driver.
static devmap_handle_t devmap_create_handle (void)
static devmap_device_tdevmap_device_find_handle (devmap_handle_t handle)
 Find device with given handle.
static devmap_device_tdevmap_device_find_name (const char *ns_name, const char *name)
 Find device with given name.
static void devmap_device_get_handle (ipc_callid_t iid, ipc_call_t *icall)
 Find handle for device instance identified by name.
static void devmap_device_register (ipc_callid_t iid, ipc_call_t *icall, devmap_driver_t *driver)
 Register instance of device.
static int devmap_device_unregister (ipc_callid_t iid, ipc_call_t *icall, devmap_driver_t *driver)
static void devmap_device_unregister_core (devmap_device_t *device)
 Unregister device and free it.
static devmap_driver_tdevmap_driver_register (void)
 Read info about new driver and add it into linked list of registered drivers.
static int devmap_driver_unregister (devmap_driver_t *driver)
 Unregister device driver, unregister all its devices and free driver structure.
static void devmap_forward (ipc_callid_t callid, ipc_call_t *call)
 Connect client to the device.
static bool devmap_fqdn_split (const char *fqdn, char **ns_name, char **name)
 Convert fully qualified device name to namespace and device name.
static void devmap_get_device_count (ipc_callid_t iid, ipc_call_t *icall)
static void devmap_get_devices (ipc_callid_t iid, ipc_call_t *icall)
static void devmap_get_namespace_count (ipc_callid_t iid, ipc_call_t *icall)
static void devmap_get_namespaces (ipc_callid_t iid, ipc_call_t *icall)
static void devmap_handle_probe (ipc_callid_t iid, ipc_call_t *icall)
static bool devmap_init (void)
 Initialize device mapper.
static void devmap_namespace_addref (devmap_namespace_t *namespace, devmap_device_t *device)
 Increase namespace reference count by including device.
static devmap_namespace_tdevmap_namespace_create (const char *ns_name)
 Create a namespace (if not already present).
static void devmap_namespace_delref (devmap_namespace_t *namespace)
 Decrease namespace reference count.
static void devmap_namespace_destroy (devmap_namespace_t *namespace)
 Destroy a namespace (if it is no longer needed).
static devmap_namespace_tdevmap_namespace_find_handle (devmap_handle_t handle)
 Find namespace with given handle.
static devmap_namespace_tdevmap_namespace_find_name (const char *name)
 Find namespace with given name.
static void devmap_namespace_get_handle (ipc_callid_t iid, ipc_call_t *icall)
 Find handle for namespace identified by name.
static void devmap_null_create (ipc_callid_t iid, ipc_call_t *icall)
static void devmap_null_destroy (ipc_callid_t iid, ipc_call_t *icall)
int main (int argc, char *argv[])
 Main entry point.

Variables

static devmap_handle_t last_handle = 0
static devmap_device_tnull_devices [NULL_DEVICES]


Detailed Description

Definition in file devmap.c.


Generated on Thu Jun 2 07:45:52 2011 for HelenOS/USB by  doxygen 1.4.7