#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_t * | devmap_device_find_handle (devmap_handle_t handle) |
Find device with given handle. | |
static devmap_device_t * | devmap_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_t * | devmap_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_t * | devmap_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_t * | devmap_namespace_find_handle (devmap_handle_t handle) |
Find namespace with given handle. | |
static devmap_namespace_t * | devmap_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_t * | null_devices [NULL_DEVICES] |
Definition in file devmap.c.