|
Files |
file | char_dev.h |
file | dev_iface.c |
file | dev_iface.h |
file | driver.c |
file | driver.h |
file | driver.h |
file | hw_res.h |
file | interrupt.h |
file | remote_char_dev.c |
file | remote_char_dev.h |
file | remote_hw_res.c |
file | remote_hw_res.h |
file | remote_pci.c |
file | remote_pci.h |
file | remote_usb.c |
file | remote_usb.h |
file | remote_usbhc.c |
file | remote_usbhc.h |
file | remote_usbhid.c |
file | remote_usbhid.h |
file | usbhid_iface.h |
| USB HID interface definition.
|
Data Structures |
struct | async_transaction_t |
struct | char_dev_ops_t |
struct | ddf_dev |
| Device structure. More...
|
struct | ddf_dev_ops |
| Devices operations. More...
|
struct | ddf_fun |
| Function structure. More...
|
struct | driver |
| Driver structure. More...
|
struct | driver_ops |
| Generic device driver operations. More...
|
struct | hw_res_ops_t |
struct | iface_dipatch_table_t |
struct | interrupt_context |
struct | interrupt_context_list |
struct | remote_iface_t |
struct | usbhid_iface_t |
| USB HID device communication interface. More...
|
Defines |
#define | HACK_MAX_PACKET_SIZE 8 |
#define | HACK_MAX_PACKET_SIZE_INTERRUPT_IN 4 |
#define | MAX_CHAR_RW_COUNT 256 |
#define | USB_MAX_PAYLOAD_SIZE 1020 |
#define | USBHID_IFACE_FLAG_NON_BLOCKING (1 << 0) |
| USB HID interface flag - return immediately if no data are available.
|
Typedefs |
typedef ddf_dev_ops | ddf_dev_ops_t |
| Devices operations.
|
typedef ddf_dev | ddf_dev_t |
typedef ddf_fun | ddf_fun_t |
typedef driver_ops | driver_ops_t |
| Generic device driver operations.
|
typedef driver | driver_t |
| Driver structure.
|
typedef void | interrupt_handler_t (ddf_dev_t *, ipc_callid_t, ipc_call_t *) |
typedef void | remote_handler_t (struct ddf_fun *, ipc_callid_t, ipc_call_t *) |
typedef remote_iface_func_t * | remote_iface_func_ptr_t |
typedef void | remote_iface_func_t (struct ddf_fun *, void *, ipc_callid_t, ipc_call_t *) |
Enumerations |
enum | driver_interface_t |
enum | usbhid_iface_funcs_t { IPC_M_USBHID_GET_EVENT_LENGTH,
IPC_M_USBHID_GET_EVENT,
IPC_M_USBHID_GET_REPORT_DESCRIPTOR_LENGTH,
IPC_M_USBHID_GET_REPORT_DESCRIPTOR
} |
| IPC methods for USB HID device interface. More...
|
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 async_transaction_t * | async_transaction_create (ipc_callid_t caller) |
static void | async_transaction_destroy (async_transaction_t *trans) |
static void | callback_in (ddf_fun_t *fun, int outcome, size_t actual_size, void *arg) |
static void | callback_out (ddf_fun_t *fun, int outcome, void *arg) |
static ddf_dev_t * | create_device (void) |
| Create new device structure.
|
static ddf_fun_t * | create_function (void) |
| Create new function structure.
|
interrupt_context_t * | create_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_t * | ddf_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.
|
int | ddf_log_init (const char *drv_name, log_level_t level) |
| Initialize the logging system.
|
void | ddf_msg (log_level_t level, const char *fmt,...) |
| Log a driver message.
|
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_t * | driver_get_function (link_t *functions, devman_handle_t handle) |
static void | driver_irq_handler (ipc_callid_t iid, ipc_call_t *icall) |
interrupt_context_t * | find_interrupt_context (interrupt_context_list_t *list, ddf_dev_t *dev, int irq) |
interrupt_context_t * | find_interrupt_context_by_id (interrupt_context_list_t *list, int id) |
static remote_handler_t * | function_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) |
remote_iface_t * | get_remote_iface (int idx) |
remote_iface_func_ptr_t | get_remote_method (remote_iface_t *rem_iface, sysarg_t iface_method_idx) |
void | init_interrupt_context_list (interrupt_context_list_t *list) |
bool | is_valid_iface_idx (int idx) |
| LIST_INITIALIZE (functions) |
| Devices.
|
int | register_interrupt_handler (ddf_dev_t *dev, int irq, interrupt_handler_t *handler, irq_code_t *pseudocode) |
static void | remote_char_read (ddf_fun_t *fun, void *ops, ipc_callid_t callid, ipc_call_t *call) |
| Process the read request from the remote client.
|
static void | remote_char_write (ddf_fun_t *fun, void *ops, ipc_callid_t callid, ipc_call_t *call) |
| Process the write request from the remote client.
|
static void | remote_config_space_read_16 (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_config_space_read_32 (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_config_space_read_8 (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_config_space_write_16 (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_config_space_write_32 (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_config_space_write_8 (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_hw_res_enable_interrupt (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_hw_res_get_resource_list (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usb_get_address (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usb_get_hc_handle (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usb_get_interface (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhc_bind_address (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhc_bulk_in (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhc_bulk_out (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhc_control_read (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhc_control_write (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhc_find_by_address (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhc_in_transfer (ddf_fun_t *fun, ipc_callid_t callid, ipc_call_t *call, usbhc_iface_transfer_in_t transfer_func) |
| Process an incoming transfer.
|
static void | remote_usbhc_interrupt_in (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhc_interrupt_out (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhc_out_transfer (ddf_fun_t *fun, ipc_callid_t callid, ipc_call_t *call, usbhc_iface_transfer_out_t transfer_func) |
| Process an outgoing transfer (both OUT and SETUP).
|
static void | remote_usbhc_register_endpoint (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhc_release_address (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhc_request_address (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhc_unregister_endpoint (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhid_get_event (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhid_get_event_length (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhid_get_report_descriptor (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
static void | remote_usbhid_get_report_descriptor_length (ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *) |
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_t * | driver |
| Driver structure.
|
static interrupt_context_list_t | interrupt_contexts |
| Interrupts.
|
remote_iface_t | remote_char_dev_iface |
| Remote character interface structure.
|
remote_iface_t | remote_char_dev_iface |
| Remote character interface structure.
|
static remote_iface_func_ptr_t | remote_char_dev_iface_ops [] |
| Remote character interface operations.
|
remote_iface_t | remote_hw_res_iface |
remote_iface_t | remote_hw_res_iface |
static remote_iface_func_ptr_t | remote_hw_res_iface_ops [] |
static iface_dipatch_table_t | remote_ifaces |
remote_iface_t | remote_pci_iface |
| Remote USB interface structure.
|
remote_iface_t | remote_pci_iface |
| Remote USB interface structure.
|
static remote_iface_func_ptr_t | remote_pci_iface_ops [] |
| Remote USB interface operations.
|
remote_iface_t | remote_usb_iface |
| Remote USB interface structure.
|
remote_iface_t | remote_usb_iface |
| Remote USB interface structure.
|
static remote_iface_func_ptr_t | remote_usb_iface_ops [] |
| Remote USB interface operations.
|
remote_iface_t | remote_usbhc_iface |
| Remote USB host controller interface structure.
|
remote_iface_t | remote_usbhc_iface |
| Remote USB host controller interface structure.
|
static remote_iface_func_ptr_t | remote_usbhc_iface_ops [] |
| Remote USB host controller interface operations.
|
remote_iface_t | remote_usbhid_iface |
| Remote USB HID interface structure.
|
remote_iface_t | remote_usbhid_iface |
| Remote USB HID interface structure.
|
static remote_iface_func_ptr_t | remote_usbhid_iface_ops [] |
| Remote USB HID interface operations.
|