Changeset 3843ecb in mainline for uspace/lib/libc/include/ipc/dev_iface.h
- Timestamp:
- 2010-04-09T13:54:06Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 892e4e1
- Parents:
- 3a5909f
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/libc/include/ipc/dev_iface.h
r3a5909f r3843ecb 35 35 #include <libarch/types.h> 36 36 37 #define DEV_IFACE_FIRST IPC_FIRST_USER_METHOD38 39 37 typedef enum { 40 HW_RES_DEV_IFACE = DEV_IFACE_FIRST,38 HW_RES_DEV_IFACE = 0, 41 39 // TODO add more interfaces 42 40 DEV_IFACE_MAX 43 } dev_inferface_id _t;41 } dev_inferface_idx_t; 44 42 43 #define DEV_IFACE_ID(idx) ((idx) + IPC_FIRST_USER_METHOD) 44 #define DEV_IFACE_IDX(id) ((id) - IPC_FIRST_USER_METHOD) 45 45 46 #define DEV_IFACE_COUNT (DEV_IFACE_MAX - DEV_IFACE_FIRST)46 #define DEV_IFACE_COUNT DEV_IFACE_MAX 47 47 48 49 // data types related to some interface - TODO move this to separate header files50 48 51 49 … … 69 67 } endianness_t; 70 68 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 105 69 #endif
Note:
See TracChangeset
for help on using the changeset viewer.