| 1022 | |
| 1023 | #ifndef RTE_EXEC_ENV_WINDOWS |
| 1024 | static int |
| 1025 | dmadev_handle_dev_dump(const char *cmd __rte_unused, |
| 1026 | const char *params, |
| 1027 | struct rte_tel_data *d) |
| 1028 | { |
| 1029 | char *buf, *end_param; |
| 1030 | int dev_id, ret; |
| 1031 | FILE *f; |
| 1032 | |
| 1033 | if (params == NULL || strlen(params) == 0 || !isdigit(*params)) |
| 1034 | return -EINVAL; |
| 1035 | |
| 1036 | dev_id = strtoul(params, &end_param, 0); |
| 1037 | if (*end_param != '\0') |
| 1038 | RTE_DMA_LOG(WARNING, "Extra parameters passed to dmadev telemetry command, ignoring"); |
| 1039 | |
| 1040 | buf = calloc(RTE_TEL_MAX_SINGLE_STRING_LEN, sizeof(char)); |
| 1041 | if (buf == NULL) |
| 1042 | return -ENOMEM; |
| 1043 | |
| 1044 | f = fmemopen(buf, RTE_TEL_MAX_SINGLE_STRING_LEN - 1, "w+"); |
| 1045 | if (f == NULL) { |
| 1046 | free(buf); |
| 1047 | return -EINVAL; |
| 1048 | } |
| 1049 | |
| 1050 | ret = rte_dma_dump(dev_id, f); |
| 1051 | fclose(f); |
| 1052 | if (ret == 0) { |
| 1053 | rte_tel_data_start_dict(d); |
| 1054 | rte_tel_data_string(d, buf); |
| 1055 | } |
| 1056 | |
| 1057 | free(buf); |
| 1058 | return ret; |
| 1059 | } |
| 1060 | #endif /* !RTE_EXEC_ENV_WINDOWS */ |
| 1061 | |
| 1062 | RTE_INIT(dmadev_init_telemetry) |
nothing calls this directly
no test coverage detected