Changeset d6b1359 in mainline for uspace/lib/drv
- Timestamp:
- 2011-01-09T18:00:14Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 80bffdb0
- Parents:
- 0c70f7e (diff), 8871dba (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- uspace/lib/drv
- Files:
-
- 3 edited
- 6 moved
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/drv/Makefile
r0c70f7e rd6b1359 35 35 generic/driver.c \ 36 36 generic/dev_iface.c \ 37 generic/remote_ res.c \38 generic/remote_char .c37 generic/remote_hw_res.c \ 38 generic/remote_char_dev.c 39 39 40 40 include $(USPACE_PREFIX)/Makefile.common -
uspace/lib/drv/generic/dev_iface.c
r0c70f7e rd6b1359 37 37 38 38 #include "dev_iface.h" 39 #include "remote_ res.h"40 #include "remote_char .h"39 #include "remote_hw_res.h" 40 #include "remote_char_dev.h" 41 41 42 42 static iface_dipatch_table_t remote_ifaces = { 43 43 .ifaces = { 44 &remote_ res_iface,45 &remote_char_ iface44 &remote_hw_res_iface, 45 &remote_char_dev_iface 46 46 } 47 47 }; 48 48 49 49 remote_iface_t* get_remote_iface(int idx) 50 { 50 { 51 51 assert(is_valid_iface_idx(idx)); 52 52 return remote_ifaces.ifaces[idx]; -
uspace/lib/drv/generic/remote_char_dev.c
r0c70f7e rd6b1359 37 37 #include <errno.h> 38 38 39 #include " char.h"39 #include "ops/char_dev.h" 40 40 #include "driver.h" 41 41 … … 46 46 47 47 /** Remote character interface operations. */ 48 static remote_iface_func_ptr_t remote_char_ iface_ops[] = {48 static remote_iface_func_ptr_t remote_char_dev_iface_ops[] = { 49 49 &remote_char_read, 50 50 &remote_char_write … … 56 56 * character interface. 57 57 */ 58 remote_iface_t remote_char_ iface = {59 .method_count = sizeof(remote_char_ iface_ops) /58 remote_iface_t remote_char_dev_iface = { 59 .method_count = sizeof(remote_char_dev_iface_ops) / 60 60 sizeof(remote_iface_func_ptr_t), 61 .methods = remote_char_ iface_ops61 .methods = remote_char_dev_iface_ops 62 62 }; 63 63 … … 74 74 remote_char_read(device_t *dev, void *iface, ipc_callid_t callid, 75 75 ipc_call_t *call) 76 { 77 char_ iface_t *char_iface = (char_iface_t *) iface;76 { 77 char_dev_ops_t *char_iface = (char_dev_ops_t *) iface; 78 78 ipc_callid_t cid; 79 79 … … 122 122 ipc_call_t *call) 123 123 { 124 char_ iface_t *char_iface = (char_iface_t *) iface;124 char_dev_ops_t *char_iface = (char_dev_ops_t *) iface; 125 125 ipc_callid_t cid; 126 126 size_t len; … … 136 136 ipc_answer_0(callid, ENOTSUP); 137 137 return; 138 } 138 } 139 139 140 140 if (len > MAX_CHAR_RW_COUNT) -
uspace/lib/drv/generic/remote_hw_res.c
r0c70f7e rd6b1359 37 37 #include <errno.h> 38 38 39 #include "ops/hw_res.h" 39 40 #include "driver.h" 40 #include "resource.h"41 41 42 static void remote_res_get_resource s(device_t *, void *, ipc_callid_t,42 static void remote_res_get_resource_list(device_t *, void *, ipc_callid_t, 43 43 ipc_call_t *); 44 44 static void remote_res_enable_interrupt(device_t *, void *, ipc_callid_t, 45 45 ipc_call_t *); 46 46 47 static remote_iface_func_ptr_t remote_ res_iface_ops [] = {48 &remote_res_get_resource s,47 static remote_iface_func_ptr_t remote_hw_res_iface_ops [] = { 48 &remote_res_get_resource_list, 49 49 &remote_res_enable_interrupt 50 50 }; 51 51 52 remote_iface_t remote_ res_iface = {53 .method_count = sizeof(remote_ res_iface_ops) /52 remote_iface_t remote_hw_res_iface = { 53 .method_count = sizeof(remote_hw_res_iface_ops) / 54 54 sizeof(remote_iface_func_ptr_t), 55 .methods = remote_ res_iface_ops55 .methods = remote_hw_res_iface_ops 56 56 }; 57 57 … … 59 59 ipc_callid_t callid, ipc_call_t *call) 60 60 { 61 resource_iface_t *ires = (resource_iface_t *) iface;61 hw_res_ops_t *ires = (hw_res_ops_t *) iface; 62 62 63 63 if (NULL == ires->enable_interrupt) … … 69 69 } 70 70 71 static void remote_res_get_resource s(device_t *dev, void *iface,71 static void remote_res_get_resource_list(device_t *dev, void *iface, 72 72 ipc_callid_t callid, ipc_call_t *call) 73 73 { 74 resource_iface_t *ires = (resource_iface_t *) iface;75 if (NULL == ires->get_resource s) {74 hw_res_ops_t *ires = (hw_res_ops_t *) iface; 75 if (NULL == ires->get_resource_list) { 76 76 ipc_answer_0(callid, ENOTSUP); 77 77 return; 78 78 } 79 79 80 hw_resource_list_t *hw_resources = ires->get_resource s(dev);80 hw_resource_list_t *hw_resources = ires->get_resource_list(dev); 81 81 if (NULL == hw_resources){ 82 82 ipc_answer_0(callid, ENOENT); -
uspace/lib/drv/include/driver.h
r0c70f7e rd6b1359 41 41 #include <ipc/devman.h> 42 42 #include <ipc/dev_iface.h> 43 #include <device/hw_res.h>44 #include <device/char.h>45 43 #include <assert.h> 46 44 #include <ddi.h> -
uspace/lib/drv/include/ops/char_dev.h
r0c70f7e rd6b1359 33 33 */ 34 34 35 #ifndef LIBDRV_ CHAR_H_36 #define LIBDRV_ CHAR_H_35 #ifndef LIBDRV_OPS_CHAR_DEV_H_ 36 #define LIBDRV_OPS_CHAR_DEV_H_ 37 37 38 #include " driver.h"38 #include "../driver.h" 39 39 40 typedef struct char_iface{40 typedef struct { 41 41 int (*read)(device_t *, char *, size_t); 42 42 int (*write)(device_t *, char *, size_t); 43 } char_ iface_t;43 } char_dev_ops_t; 44 44 45 45 #endif -
uspace/lib/drv/include/ops/hw_res.h
r0c70f7e rd6b1359 33 33 */ 34 34 35 #ifndef LIBDRV_ RESOURCE_H_36 #define LIBDRV_ RESOURCE_H_35 #ifndef LIBDRV_OPS_HW_RES_H_ 36 #define LIBDRV_OPS_HW_RES_H_ 37 37 38 #include "driver.h" 38 #include <device/hw_res.h> 39 #include <sys/types.h> 39 40 40 typedef struct resource_iface { 41 hw_resource_list_t *(* get_resources)(device_t *); 41 #include "../driver.h" 42 43 typedef struct { 44 hw_resource_list_t *(*get_resource_list)(device_t *); 42 45 bool (*enable_interrupt)(device_t *); 43 } resource_iface_t; 44 46 } hw_res_ops_t; 45 47 46 48 #endif -
uspace/lib/drv/include/remote_char_dev.h
r0c70f7e rd6b1359 33 33 */ 34 34 35 #ifndef LIBDRV_REMOTE_ RES_H_36 #define LIBDRV_REMOTE_ RES_H_35 #ifndef LIBDRV_REMOTE_CHAR_DEV_H_ 36 #define LIBDRV_REMOTE_CHAR_DEV_H_ 37 37 38 remote_iface_t remote_res_iface;38 extern remote_iface_t remote_char_dev_iface; 39 39 40 40 #endif -
uspace/lib/drv/include/remote_hw_res.h
r0c70f7e rd6b1359 33 33 */ 34 34 35 #ifndef LIBDRV_REMOTE_ CHAR_H_36 #define LIBDRV_REMOTE_ CHAR_H_35 #ifndef LIBDRV_REMOTE_HW_RES_H_ 36 #define LIBDRV_REMOTE_HW_RES_H_ 37 37 38 remote_iface_t remote_char_iface;38 extern remote_iface_t remote_hw_res_iface; 39 39 40 40 #endif
Note:
See TracChangeset
for help on using the changeset viewer.