Ignore:
Timestamp:
2010-04-09T13:54:06Z (14 years ago)
Author:
Lenka Trochtova <trochtova.lenka@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
892e4e1
Parents:
3a5909f
Message:

device classes as interface sets

File:
1 edited

Legend:

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

    r3a5909f r3843ecb  
    3535#include <libarch/types.h>
    3636
    37 #define DEV_IFACE_FIRST IPC_FIRST_USER_METHOD
    38 
    3937typedef enum { 
    40         HW_RES_DEV_IFACE = DEV_IFACE_FIRST,     
     38        HW_RES_DEV_IFACE = 0,   
    4139        // TODO add more interfaces
    4240        DEV_IFACE_MAX
    43 } dev_inferface_id_t;
     41} dev_inferface_idx_t;
    4442
     43#define DEV_IFACE_ID(idx) ((idx) + IPC_FIRST_USER_METHOD)
     44#define DEV_IFACE_IDX(id) ((id) - IPC_FIRST_USER_METHOD)
    4545
    46 #define DEV_IFACE_COUNT (DEV_IFACE_MAX - DEV_IFACE_FIRST)
     46#define DEV_IFACE_COUNT DEV_IFACE_MAX
    4747
    48 
    49 // data types related to some interface - TODO move this to separate header files
    5048
    5149
     
    6967} endianness_t;
    7068
    71 /** HW resource (e.g. interrupt, memory register, i/o register etc.). */
    72 typedef struct hw_resource {
    73         hw_res_type_t type;
    74         union {
    75                 struct {
    76                         uint64_t address;
    77                         endianness_t endianness;                       
    78                         size_t size;                   
    79                 } mem_range;
    80                 struct {
    81                         uint64_t address;
    82                         endianness_t endianness;                       
    83                         size_t size;                   
    84                 } io_range;
    85                 struct {
    86                         int irq;                       
    87                 } interrupt;           
    88         } res; 
    89 } hw_resource_t;
    90 
    91 typedef struct hw_resource_list {
    92         size_t count;
    93         hw_resource_t *resources;       
    94 } hw_resource_list_t;
    95 
    96 static inline void clean_hw_resource_list(hw_resource_list_t *hw_res)
    97 {
    98         if(NULL != hw_res->resources) {
    99                 free(hw_res->resources);
    100                 hw_res->resources = NULL;
    101         }
    102         hw_res->count = 0;     
    103 }
    104 
    10569#endif
Note: See TracChangeset for help on using the changeset viewer.