| 286 | } |
| 287 | |
| 288 | static int |
| 289 | log_register(const char *name, uint32_t level) |
| 290 | { |
| 291 | struct rte_log_dynamic_type *new_dynamic_types; |
| 292 | int id; |
| 293 | |
| 294 | id = log_lookup(name); |
| 295 | if (id >= 0) |
| 296 | return id; |
| 297 | |
| 298 | new_dynamic_types = realloc(rte_logs.dynamic_types, |
| 299 | sizeof(struct rte_log_dynamic_type) * |
| 300 | (rte_logs.dynamic_types_len + 1)); |
| 301 | if (new_dynamic_types == NULL) |
| 302 | return -ENOMEM; |
| 303 | rte_logs.dynamic_types = new_dynamic_types; |
| 304 | |
| 305 | id = rte_logs.dynamic_types_len; |
| 306 | memset(&rte_logs.dynamic_types[id], 0, |
| 307 | sizeof(rte_logs.dynamic_types[id])); |
| 308 | rte_logs.dynamic_types[id].name = strdup(name); |
| 309 | if (rte_logs.dynamic_types[id].name == NULL) |
| 310 | return -ENOMEM; |
| 311 | logtype_set_level(id, level); |
| 312 | |
| 313 | rte_logs.dynamic_types_len++; |
| 314 | |
| 315 | return id; |
| 316 | } |
| 317 | |
| 318 | /* register an extended log type */ |
| 319 | int |
no test coverage detected