Changes in uspace/drv/infrastructure/rootpc/rootpc.c [e882e3a:56fd7cf] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/infrastructure/rootpc/rootpc.c
re882e3a r56fd7cf 54 54 #define NAME "rootpc" 55 55 56 /** Obtain function soft-state from DDF function node */57 #define ROOTPC_FUN(fnode) ((rootpc_fun_t *) (fnode)->driver_data)58 59 56 typedef struct rootpc_fun { 60 57 hw_resource_list_t hw_resources; … … 75 72 }; 76 73 77 static hw_resource_t pci_conf_regs = { 78 .type = IO_RANGE, 79 .res.io_range = { 80 .address = 0xCF8, 81 .size = 8, 82 .endianness = LITTLE_ENDIAN 74 static hw_resource_t pci_conf_regs[] = { 75 { 76 .type = IO_RANGE, 77 .res.io_range = { 78 .address = 0xCF8, 79 .size = 4, 80 .endianness = LITTLE_ENDIAN 81 } 82 }, 83 { 84 .type = IO_RANGE, 85 .res.io_range = { 86 .address = 0xCFC, 87 .size = 4, 88 .endianness = LITTLE_ENDIAN 89 } 83 90 } 84 91 }; … … 86 93 static rootpc_fun_t pci_data = { 87 94 .hw_resources = { 88 1, 89 &pci_conf_regs 90 } 91 }; 95 sizeof(pci_conf_regs)/sizeof(pci_conf_regs[0]), 96 pci_conf_regs 97 } 98 }; 99 100 /** Obtain function soft-state from DDF function node */ 101 static rootpc_fun_t *rootpc_fun(ddf_fun_t *fnode) 102 { 103 return ddf_fun_data_get(fnode); 104 } 92 105 93 106 static hw_resource_list_t *rootpc_get_resources(ddf_fun_t *fnode) 94 107 { 95 rootpc_fun_t *fun = ROOTPC_FUN(fnode);108 rootpc_fun_t *fun = rootpc_fun(fnode); 96 109 97 110 assert(fun != NULL); … … 116 129 static bool 117 130 rootpc_add_fun(ddf_dev_t *dev, const char *name, const char *str_match_id, 118 rootpc_fun_t *fun )131 rootpc_fun_t *fun_proto) 119 132 { 120 133 ddf_msg(LVL_DEBUG, "Adding new function '%s'.", name); 121 134 122 135 ddf_fun_t *fnode = NULL; 123 match_id_t *match_id = NULL;136 int rc; 124 137 125 138 /* Create new device. */ … … 128 141 goto failure; 129 142 130 fnode->driver_data = fun; 131 132 /* Initialize match id list */ 133 match_id = create_match_id(); 134 if (match_id == NULL) 143 rootpc_fun_t *fun = ddf_fun_data_alloc(fnode, sizeof(rootpc_fun_t)); 144 *fun = *fun_proto; 145 146 /* Add match ID */ 147 rc = ddf_fun_add_match_id(fnode, str_match_id, 100); 148 if (rc != EOK) 135 149 goto failure; 136 150 137 match_id->id = str_match_id;138 match_id->score = 100;139 add_match_id(&fnode->match_ids, match_id);140 141 151 /* Set provided operations to the device. */ 142 fnode->ops = &rootpc_fun_ops;152 ddf_fun_set_ops(fnode, &rootpc_fun_ops); 143 153 144 154 /* Register function. */ … … 151 161 152 162 failure: 153 if (match_id != NULL)154 match_id->id = NULL;155 156 163 if (fnode != NULL) 157 164 ddf_fun_destroy(fnode); … … 176 183 { 177 184 ddf_msg(LVL_DEBUG, "rootpc_dev_add, device handle = %d", 178 (int)d ev->handle);185 (int)ddf_dev_get_handle(dev)); 179 186 180 187 /* Register functions. */
Note:
See TracChangeset
for help on using the changeset viewer.