Changes in uspace/drv/infrastructure/rootmac/rootmac.c [9d58539:56fd7cf] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/infrastructure/rootmac/rootmac.c
r9d58539 r56fd7cf 44 44 #define NAME "rootmac" 45 45 46 /** Obtain function soft-state from DDF function node */47 #define ROOTMAC_FUN(fnode) \48 ((rootmac_fun_t *) (fnode)->driver_data)49 50 46 typedef struct { 51 47 hw_resource_list_t hw_resources; 52 48 } rootmac_fun_t; 53 49 54 static hw_resource_t pci_conf_regs = { 55 .type = IO_RANGE, 56 .res.io_range = { 57 .address = 0xCF8, 58 .size = 8, 59 .endianness = LITTLE_ENDIAN 50 static hw_resource_t pci_conf_regs[] = { 51 { 52 .type = IO_RANGE, 53 .res.io_range = { 54 .address = 0xfec00000, 55 .size = 4, 56 .endianness = LITTLE_ENDIAN 57 } 58 }, 59 { 60 .type = IO_RANGE, 61 .res.io_range = { 62 .address = 0xfee00000, 63 .size = 4, 64 .endianness = LITTLE_ENDIAN 65 } 60 66 } 61 67 }; … … 63 69 static rootmac_fun_t pci_data = { 64 70 .hw_resources = { 65 1,66 &pci_conf_regs71 2, 72 pci_conf_regs 67 73 } 68 74 }; … … 70 76 static ddf_dev_ops_t rootmac_fun_ops; 71 77 78 /** Obtain function soft-state from DDF function node */ 79 static rootmac_fun_t *rootmac_fun(ddf_fun_t *fnode) 80 { 81 return ddf_fun_data_get(fnode); 82 } 83 72 84 static bool rootmac_add_fun(ddf_dev_t *dev, const char *name, 73 const char *str_match_id, rootmac_fun_t *fun )85 const char *str_match_id, rootmac_fun_t *fun_proto) 74 86 { 75 87 ddf_msg(LVL_DEBUG, "Adding new function '%s'.", name); 76 88 77 89 ddf_fun_t *fnode = NULL; 78 match_id_t *match_id = NULL;90 int rc; 79 91 80 92 /* Create new device. */ … … 83 95 goto failure; 84 96 85 fnode->driver_data = fun; 97 rootmac_fun_t *fun = ddf_fun_data_alloc(fnode, sizeof(rootmac_fun_t)); 98 *fun = *fun_proto; 86 99 87 /* Initialize match id list*/88 match_id = create_match_id();89 if ( match_id == NULL)100 /* Add match ID */ 101 rc = ddf_fun_add_match_id(fnode, str_match_id, 100); 102 if (rc != EOK) 90 103 goto failure; 91 104 92 match_id->id = str_match_id;93 match_id->score = 100;94 add_match_id(&fnode->match_ids, match_id);95 96 105 /* Set provided operations to the device. */ 97 fnode->ops = &rootmac_fun_ops;106 ddf_fun_set_ops(fnode, &rootmac_fun_ops); 98 107 99 108 /* Register function. */ … … 106 115 107 116 failure: 108 if (match_id != NULL)109 match_id->id = NULL;110 111 117 if (fnode != NULL) 112 118 ddf_fun_destroy(fnode); … … 127 133 static int rootmac_dev_add(ddf_dev_t *dev) 128 134 { 135 #if 0 129 136 /* Register functions */ 130 if (!rootmac_add_fun(dev, "pci0", " pangea_pci", &pci_data))137 if (!rootmac_add_fun(dev, "pci0", "intel_pci", &pci_data)) 131 138 ddf_msg(LVL_ERROR, "Failed to add functions for Mac platform."); 139 #else 140 (void)pci_data; 141 (void)rootmac_add_fun; 142 #endif 132 143 133 144 return EOK; … … 147 158 static hw_resource_list_t *rootmac_get_resources(ddf_fun_t *fnode) 148 159 { 149 rootmac_fun_t *fun = ROOTMAC_FUN(fnode);160 rootmac_fun_t *fun = rootmac_fun(fnode); 150 161 assert(fun != NULL); 151 162
Note:
See TracChangeset
for help on using the changeset viewer.