Changes in uspace/lib/drv/include/ddf/driver.h [2a770a35:609243f4] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/drv/include/ddf/driver.h
r2a770a35 r609243f4 37 37 #define DDF_DRIVER_H_ 38 38 39 #include <async.h> 39 40 #include <ipc/devman.h> 40 41 #include <ipc/dev_iface.h> 41 42 42 #include "../dev_iface.h" 43 43 … … 81 81 */ 82 82 devman_handle_t handle; 83 /** Reference count */ 84 atomic_t refcnt; 83 85 84 86 /** 85 * Phoneto the parent device driver (if it is different from this87 * Session to the parent device driver (if it is different from this 86 88 * driver) 87 89 */ 88 int parent_phone;90 async_sess_t *parent_sess; 89 91 90 92 /** Device name */ … … 104 106 /** Function indentifier (asigned by device manager) */ 105 107 devman_handle_t handle; 108 /** Reference count */ 109 atomic_t refcnt; 106 110 107 111 /** Device which this function belogs to */ … … 118 122 /** Implementation of operations provided by this function */ 119 123 ddf_dev_ops_t *ops; 124 /** Connection handler or @c NULL to use the DDF default handler. */ 125 async_client_conn_t conn_handler; 120 126 121 127 /** Link in the list of functions handled by the driver */ … … 130 136 typedef struct driver_ops { 131 137 /** Callback method for passing a new device to the device driver */ 132 int (*add_device)(ddf_dev_t *dev); 133 /* TODO: add other generic driver operations */ 138 int (*add_device)(ddf_dev_t *); 139 /** 140 * Notification that the device was succesfully added. 141 * The driver can do any blocking operation without 142 * blocking the device manager. 143 */ 144 void (*device_added)(ddf_dev_t *dev); 145 /** Ask driver to remove a device */ 146 int (*dev_remove)(ddf_dev_t *); 147 /** Inform driver a device disappeared */ 148 int (*dev_gone)(ddf_dev_t *); 149 /** Ask driver to online a specific function */ 150 int (*fun_online)(ddf_fun_t *); 151 /** Ask driver to offline a specific function */ 152 int (*fun_offline)(ddf_fun_t *); 134 153 } driver_ops_t; 135 154 … … 144 163 extern int ddf_driver_main(driver_t *); 145 164 165 extern void *ddf_dev_data_alloc(ddf_dev_t *, size_t); 146 166 extern ddf_fun_t *ddf_fun_create(ddf_dev_t *, fun_type_t, const char *); 147 167 extern void ddf_fun_destroy(ddf_fun_t *); 168 extern void *ddf_fun_data_alloc(ddf_fun_t *, size_t); 148 169 extern int ddf_fun_bind(ddf_fun_t *); 170 extern int ddf_fun_unbind(ddf_fun_t *); 171 extern int ddf_fun_online(ddf_fun_t *); 172 extern int ddf_fun_offline(ddf_fun_t *); 149 173 extern int ddf_fun_add_match_id(ddf_fun_t *, const char *, int); 150 174 151 extern int ddf_fun_add_to_c lass(ddf_fun_t *, const char *);175 extern int ddf_fun_add_to_category(ddf_fun_t *, const char *); 152 176 153 177 #endif
Note:
See TracChangeset
for help on using the changeset viewer.