driver.c File Reference

#include <assert.h>
#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 <str_error.h>
#include <ctype.h>
#include <inttypes.h>
#include <devman.h>
#include <ipc/driver.h>
#include "dev_iface.h"
#include "ddf/driver.h"
#include "ddf/interrupt.h"

Go to the source code of this file.

Functions

void add_interrupt_context (interrupt_context_list_t *list, interrupt_context_t *ctx)
static void add_to_functions_list (ddf_fun_t *fun)
static ddf_dev_tcreate_device (void)
 Create new device structure.
static ddf_fun_tcreate_function (void)
 Create new function structure.
interrupt_context_tcreate_interrupt_context (void)
int ddf_driver_main (driver_t *drv)
int ddf_fun_add_match_id (ddf_fun_t *fun, const char *match_id_str, int match_score)
 Add single match ID to inner function.
int ddf_fun_add_to_class (ddf_fun_t *fun, const char *class_name)
 Add exposed function to class.
int ddf_fun_bind (ddf_fun_t *fun)
 Bind a function node.
ddf_fun_tddf_fun_create (ddf_dev_t *dev, fun_type_t ftype, const char *name)
 Create a DDF function node.
void ddf_fun_destroy (ddf_fun_t *fun)
 Destroy DDF function node.
static void delete_device (ddf_dev_t *dev)
 Delete device structure.
static void delete_function (ddf_fun_t *fun)
 Delete device structure.
void delete_interrupt_context (interrupt_context_t *ctx)
static void driver_add_device (ipc_callid_t iid, ipc_call_t *icall)
static void driver_connection (ipc_callid_t iid, ipc_call_t *icall)
 Function for handling connections to device driver.
static void driver_connection_client (ipc_callid_t iid, ipc_call_t *icall)
static void driver_connection_devman (ipc_callid_t iid, ipc_call_t *icall)
static void driver_connection_driver (ipc_callid_t iid, ipc_call_t *icall)
static void driver_connection_gen (ipc_callid_t iid, ipc_call_t *icall, bool drv)
 Generic client connection handler both for applications and drivers.
static ddf_fun_tdriver_get_function (link_t *functions, devman_handle_t handle)
static void driver_irq_handler (ipc_callid_t iid, ipc_call_t *icall)
interrupt_context_tfind_interrupt_context (interrupt_context_list_t *list, ddf_dev_t *dev, int irq)
interrupt_context_tfind_interrupt_context_by_id (interrupt_context_list_t *list, int id)
static remote_handler_tfunction_get_default_handler (ddf_fun_t *fun)
 Get default handler for client requests.
static void * function_get_ops (ddf_fun_t *, dev_inferface_idx_t)
void init_interrupt_context_list (interrupt_context_list_t *list)
 LIST_INITIALIZE (functions)
 Devices.
int register_interrupt_handler (ddf_dev_t *dev, int irq, interrupt_handler_t *handler, irq_code_t *pseudocode)
static void remove_from_functions_list (ddf_fun_t *fun)
void remove_interrupt_context (interrupt_context_list_t *list, interrupt_context_t *ctx)
int unregister_interrupt_handler (ddf_dev_t *dev, int irq)

Variables

static irq_cmd_t default_cmds []
static irq_code_t default_pseudocode
static driver_tdriver
 Driver structure.
static interrupt_context_list_t interrupt_contexts
 Interrupts.


Detailed Description

Definition in file driver.c.


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