Changeset cb41a5e in mainline for uspace/lib/libc/include/ipc/devmap.h


Ignore:
Timestamp:
2009-05-21T07:03:38Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a095d20
Parents:
2246de6
Message:

improve devmap interface
remove spared device

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/libc/include/ipc/devmap.h

    r2246de6 rcb41a5e  
    3838#include <libadt/list.h>
    3939
    40 #define DEVMAP_NAME_MAXLEN 512
     40#define DEVMAP_NAME_MAXLEN  255
     41
     42typedef ipcarg_t dev_handle_t;
    4143
    4244typedef enum {
     
    4648        DEVMAP_DEVICE_UNREGISTER,
    4749        DEVMAP_DEVICE_GET_NAME,
    48         DEVMAP_DEVICE_GET_HANDLE
     50        DEVMAP_DEVICE_GET_HANDLE,
     51        DEVMAP_DEVICE_GET_COUNT,
     52        DEVMAP_DEVICE_GET_DEVICES
    4953} devmap_request_t;
    5054
    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.
    6959 *
    7060 */
    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 devices
    75                  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 following
    87  * interfaces otherwise connection will be refused.
    88  */
    8961typedef enum {
    90                 /** Connect as device driver */
    91         DEVMAP_DRIVER = 1,     
    92                 /** Connect as client */
     62        /** Connect as device driver */
     63        DEVMAP_DRIVER = 1,
     64        /** Connect as client */
    9365        DEVMAP_CLIENT,
    94                 /** Create new connection to instance of device that
    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. */
    9668        DEVMAP_CONNECT_TO_DEVICE
    9769} devmap_interface_t;
    9870
     71typedef struct {
     72        dev_handle_t handle;
     73        char name[DEVMAP_NAME_MAXLEN + 1];
     74} dev_desc_t;
     75
    9976#endif
    100 
Note: See TracChangeset for help on using the changeset viewer.