Changes in uspace/lib/drv/include/ddf/driver.h [56fd7cf:77ad86c] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/drv/include/ddf/driver.h
r56fd7cf r77ad86c 42 42 #include "../dev_iface.h" 43 43 44 typedef struct ddf_dev ddf_dev_t; 45 typedef struct ddf_fun ddf_fun_t; 44 46 45 47 /* 46 48 * Device 47 49 */ 48 49 typedef struct ddf_dev ddf_dev_t;50 typedef struct ddf_fun ddf_fun_t;51 50 52 51 /** Devices operations */ … … 76 75 77 76 /** Device structure */ 78 struct ddf_dev; 77 struct ddf_dev { 78 /** 79 * Globally unique device identifier (assigned to the device by the 80 * device manager). 81 */ 82 devman_handle_t handle; 83 84 /** Reference count */ 85 atomic_t refcnt; 86 87 /** 88 * Session to the parent device driver (if it is different from this 89 * driver) 90 */ 91 async_sess_t *parent_sess; 92 93 /** Device name */ 94 const char *name; 95 96 /** Driver-specific data associated with this device */ 97 void *driver_data; 98 99 /** Link in the list of devices handled by the driver */ 100 link_t link; 101 }; 79 102 80 103 /** Function structure */ 81 struct ddf_fun; 104 struct ddf_fun { 105 /** True if bound to the device manager */ 106 bool bound; 107 108 /** Function indentifier (asigned by device manager) */ 109 devman_handle_t handle; 110 111 /** Reference count */ 112 atomic_t refcnt; 113 114 /** Device which this function belogs to */ 115 ddf_dev_t *dev; 116 117 /** Function type */ 118 fun_type_t ftype; 119 120 /** Function name */ 121 const char *name; 122 123 /** List of device ids for driver matching */ 124 match_id_list_t match_ids; 125 126 /** Driver-specific data associated with this function */ 127 void *driver_data; 128 129 /** Implementation of operations provided by this function */ 130 ddf_dev_ops_t *ops; 131 132 /** Connection handler or @c NULL to use the DDF default handler. */ 133 async_client_conn_t conn_handler; 134 135 /** Link in the list of functions handled by the driver */ 136 link_t link; 137 }; 82 138 83 139 /* … … 111 167 } driver_t; 112 168 113 /** XXX Only to transition USB */114 #ifdef _DDF_DATA_IMPLANT115 extern void ddf_fun_data_implant(ddf_fun_t *, void *);116 #endif117 118 169 extern int ddf_driver_main(driver_t *); 119 170 120 171 extern void *ddf_dev_data_alloc(ddf_dev_t *, size_t); 121 extern void *ddf_dev_data_get(ddf_dev_t *);122 extern devman_handle_t ddf_dev_get_handle(ddf_dev_t *);123 extern const char *ddf_dev_get_name(ddf_dev_t *);124 extern async_sess_t *ddf_dev_parent_sess_create(ddf_dev_t *, exch_mgmt_t);125 extern async_sess_t *ddf_dev_parent_sess_get(ddf_dev_t *);126 172 extern ddf_fun_t *ddf_fun_create(ddf_dev_t *, fun_type_t, const char *); 127 extern devman_handle_t ddf_fun_get_handle(ddf_fun_t *);128 173 extern void ddf_fun_destroy(ddf_fun_t *); 129 174 extern void *ddf_fun_data_alloc(ddf_fun_t *, size_t); 130 extern void *ddf_fun_data_get(ddf_fun_t *);131 extern const char *ddf_fun_get_name(ddf_fun_t *);132 extern int ddf_fun_set_name(ddf_fun_t *, const char *);133 extern ddf_dev_t *ddf_fun_get_dev(ddf_fun_t *);134 175 extern int ddf_fun_bind(ddf_fun_t *); 135 176 extern int ddf_fun_unbind(ddf_fun_t *); … … 137 178 extern int ddf_fun_offline(ddf_fun_t *); 138 179 extern int ddf_fun_add_match_id(ddf_fun_t *, const char *, int); 139 extern void ddf_fun_set_ops(ddf_fun_t *, ddf_dev_ops_t *); 140 extern void ddf_fun_set_conn_handler(ddf_fun_t *, async_client_conn_t); 180 141 181 extern int ddf_fun_add_to_category(ddf_fun_t *, const char *); 142 182
Note:
See TracChangeset
for help on using the changeset viewer.