Changeset cb41a5e in mainline for uspace/lib/libc/include/ipc/devmap.h
- Timestamp:
- 2009-05-21T07:03:38Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a095d20
- Parents:
- 2246de6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/libc/include/ipc/devmap.h
r2246de6 rcb41a5e 38 38 #include <libadt/list.h> 39 39 40 #define DEVMAP_NAME_MAXLEN 512 40 #define DEVMAP_NAME_MAXLEN 255 41 42 typedef ipcarg_t dev_handle_t; 41 43 42 44 typedef enum { … … 46 48 DEVMAP_DEVICE_UNREGISTER, 47 49 DEVMAP_DEVICE_GET_NAME, 48 DEVMAP_DEVICE_GET_HANDLE 50 DEVMAP_DEVICE_GET_HANDLE, 51 DEVMAP_DEVICE_GET_COUNT, 52 DEVMAP_DEVICE_GET_DEVICES 49 53 } devmap_request_t; 50 54 51 /** Representation of device driver. 52 * Each driver is responsible for a set of devices. 53 */ 54 typedef struct { 55 /** Pointers to previous and next drivers in linked list */ 56 link_t drivers; 57 /** Pointer to the linked list of devices controlled by 58 * this driver */ 59 link_t devices; 60 /** Phone asociated with this driver */ 61 ipcarg_t phone; 62 /** Device driver name */ 63 char *name; 64 /** Futex for list of devices owned by this driver */ 65 atomic_t devices_futex; 66 } devmap_driver_t; 67 68 /** Info about registered device 55 /** Interface provided by devmap. 56 * 57 * Every process that connects to devmap must ask one of following 58 * interfaces otherwise connection will be refused. 69 59 * 70 60 */ 71 typedef struct {72 /** Pointer to the previous and next device in the list of all devices */73 link_t devices;74 /** Pointer to the previous and next device in the list of devices75 owned by one driver */76 link_t driver_devices;77 /** Unique device identifier */78 int handle;79 /** Device name */80 char *name;81 /** Device driver handling this device */82 devmap_driver_t *driver;83 } devmap_device_t;84 85 /** Interface provided by devmap.86 * Every process that connects to devmap must ask one of following87 * interfaces otherwise connection will be refused.88 */89 61 typedef enum { 90 91 DEVMAP_DRIVER = 1, 92 62 /** Connect as device driver */ 63 DEVMAP_DRIVER = 1, 64 /** Connect as client */ 93 65 DEVMAP_CLIENT, 94 95 *is specified by second argument of call. */66 /** Create new connection to instance of device that 67 is specified by second argument of call. */ 96 68 DEVMAP_CONNECT_TO_DEVICE 97 69 } devmap_interface_t; 98 70 71 typedef struct { 72 dev_handle_t handle; 73 char name[DEVMAP_NAME_MAXLEN + 1]; 74 } dev_desc_t; 75 99 76 #endif 100
Note:
See TracChangeset
for help on using the changeset viewer.