| 165 | | char *endptr; |
| 166 | | |
| 167 | | if (strncmp(name,"i2c-",4)) { |
| 168 | | return -SENSORS_ERR_BUS_NAME; |
| 169 | | } |
| 170 | | name += 4; |
| 171 | | *res = strtoul(name, &endptr, 10); |
| 172 | | if (*name == '\0' || *endptr != '\0' || *res < 0) |
| 173 | | return -SENSORS_ERR_BUS_NAME; |
| 174 | | return 0; |
| 175 | | } |
| 176 | | |
| 177 | | |
| 178 | | int sensors_substitute_chip(sensors_chip_name *name,int lineno) |
| 179 | | { |
| 180 | | int i,j; |
| 181 | | for (i = 0; i < sensors_config_busses_count; i++) |
| 182 | | if (sensors_config_busses[i].number == name->bus) |
| 183 | | break; |
| 184 | | |
| 185 | | if (i == sensors_config_busses_count) { |
| 186 | | sensors_parse_error("Undeclared i2c bus referenced",lineno); |
| 187 | | name->bus = sensors_proc_bus_count; |
| 188 | | return -SENSORS_ERR_BUS_NAME; |
| 189 | | } |
| 190 | | |
| 191 | | /* Compare the adapter names */ |
| 192 | | for (j = 0; j < sensors_proc_bus_count; j++) { |
| 193 | | if (!strcmp(sensors_config_busses[i].adapter, |
| 194 | | sensors_proc_bus[j].adapter)) { |
| 195 | | name->bus = sensors_proc_bus[j].number; |
| 196 | | return 0; |
| 197 | | } |
| 198 | | } |
| 199 | | |
| 200 | | /* We did not find anything. sensors_proc_bus_count is not a valid |
| 201 | | bus number, so it will never be matched. Good. */ |
| 202 | | name->bus = sensors_proc_bus_count; |
| 203 | | return 0; |
| 204 | | } |
| 205 | | |
| 206 | | |
| | 165 | char *endptr; |
| | 166 | |
| | 167 | if (strncmp(name, "i2c-", 4)) { |
| | 168 | return -SENSORS_ERR_BUS_NAME; |
| | 169 | } |
| | 170 | name += 4; |
| | 171 | *res = strtoul(name, &endptr, 10); |
| | 172 | if (*name == '\0' || *endptr != '\0' || *res < 0) |
| | 173 | return -SENSORS_ERR_BUS_NAME; |
| | 174 | return 0; |
| | 175 | } |
| | 176 | |
| | 177 | int sensors_substitute_chip(sensors_chip_name *name, int lineno) |
| | 178 | { |
| | 179 | int i, j; |
| | 180 | for (i = 0; i < sensors_config_busses_count; i++) |
| | 181 | if (sensors_config_busses[i].number == name->bus) |
| | 182 | break; |
| | 183 | |
| | 184 | if (i == sensors_config_busses_count) { |
| | 185 | sensors_parse_error("Undeclared i2c bus referenced", lineno); |
| | 186 | name->bus = sensors_proc_bus_count; |
| | 187 | return -SENSORS_ERR_BUS_NAME; |
| | 188 | } |
| | 189 | |
| | 190 | /* Compare the adapter names */ |
| | 191 | for (j = 0; j < sensors_proc_bus_count; j++) { |
| | 192 | if (!strcmp(sensors_config_busses[i].adapter, |
| | 193 | sensors_proc_bus[j].adapter)) { |
| | 194 | name->bus = sensors_proc_bus[j].number; |
| | 195 | return 0; |
| | 196 | } |
| | 197 | } |
| | 198 | |
| | 199 | /* We did not find anything. sensors_proc_bus_count is not |
| | 200 | a valid bus number, so it will never be matched. Good. */ |
| | 201 | name->bus = sensors_proc_bus_count; |
| | 202 | return 0; |
| | 203 | } |
| | 204 | |
| 209 | | int err,i,j,lineno; |
| 210 | | sensors_chip_name_list *chips; |
| 211 | | int res=0; |
| 212 | | |
| 213 | | for(i = 0; i < sensors_config_chips_count; i++) { |
| 214 | | lineno = sensors_config_chips[i].lineno; |
| 215 | | chips = &sensors_config_chips[i].chips; |
| 216 | | for(j = 0; j < chips->fits_count; j++) |
| 217 | | if ((chips->fits[j].bus != SENSORS_CHIP_NAME_BUS_ISA) && |
| 218 | | (chips->fits[j].bus != SENSORS_CHIP_NAME_BUS_PCI) && |
| 219 | | (chips->fits[j].bus != SENSORS_CHIP_NAME_BUS_ANY) && |
| 220 | | (chips->fits[j].bus != SENSORS_CHIP_NAME_BUS_ANY_I2C)) |
| 221 | | if ((err = sensors_substitute_chip(chips->fits+j, lineno))) |
| 222 | | res = err; |
| 223 | | } |
| 224 | | return res; |
| 225 | | } |
| | 207 | int err, i, j, lineno; |
| | 208 | sensors_chip_name_list *chips; |
| | 209 | int res = 0; |
| | 210 | |
| | 211 | for (i = 0; i < sensors_config_chips_count; i++) { |
| | 212 | lineno = sensors_config_chips[i].lineno; |
| | 213 | chips = &sensors_config_chips[i].chips; |
| | 214 | for (j = 0; j < chips->fits_count; j++) |
| | 215 | if (chips->fits[j].bus != SENSORS_CHIP_NAME_BUS_ISA && |
| | 216 | chips->fits[j].bus != SENSORS_CHIP_NAME_BUS_PCI && |
| | 217 | chips->fits[j].bus != SENSORS_CHIP_NAME_BUS_ANY && |
| | 218 | chips->fits[j].bus != SENSORS_CHIP_NAME_BUS_ANY_I2C) |
| | 219 | if ((err = sensors_substitute_chip(chips->fits+j, |
| | 220 | lineno))) |
| | 221 | res = err; |
| | 222 | } |
| | 223 | return res; |
| | 224 | } |