Lines Matching refs:path

588  * Extract the HCA dev name from the path and remove it from the path.
589 * Given a path extract the HCA dev name of the form <dev-prefix><dev-instance>
594 check_path_for_hca(char *path, char *device_name)
599 while ((path[pos] != '/') || (path[pos] == '\0'))
602 if (path[pos] != '/')
605 strncpy(device_name, path, (pos + 1));
611 while (path[pos] == '/')
614 len = strlen(path);
615 memmove(path, &path[pos], (len - pos) + 1);
620 * Check whether a path starts with prefix, and if it does, remove it
624 check_path(char *path, cp_prefix_t prefix, unsigned int *arg)
630 ret = sscanf(path, "uverbs%d%n/", arg,
634 ret = sscanf(path, "device%n/", &pos);
637 ret = sscanf(path, "%d%n/", arg, &pos);
640 ret = sscanf(path, "gids%n/", &pos);
643 ret = sscanf(path, "pkeys%n/", &pos);
646 ret = sscanf(path, "ports%n/", &pos);
649 ret = sscanf(path, "umad%d%n/", arg, &pos);
652 ret = sscanf(path, "%n/", &pos);
655 ret = sscanf(path, "sys%n/", &pos);
658 ret = sscanf(path, "class%n/", &pos);
661 ret = sscanf(path, "infiniband_verbs%n/", &pos);
664 ret = sscanf(path, "infiniband%n/", &pos);
667 ret = sscanf(path, "infiniband_mad%n/", &pos);
670 ret = sscanf(path, "misc%n/", &pos);
673 ret = sscanf(path, "rdma_cm%n/", &pos);
680 if (path[pos] == '/') {
682 while (path[pos] == '/')
685 memmove(path, &path[pos], strlen(path)-pos+1);
890 infiniband_verbs(char *path, char *buf, size_t size)
916 if (check_path(path, CP_SOL_UVERBS, &device_num)) {
919 fprintf(stderr, "Invalid path%s\n", path);
928 if (check_path(path, CP_DEVICE, NULL)) {
933 if (strcmp(path, "vendor") == 0) {
936 } else if (strcmp(path, "device") == 0) {
940 } else if (strcmp(path, "ibdev") == 0) {
942 } else if (strcmp(path, "abi_version") == 0) {
945 } else if (strcmp(path, "abi_version") == 0) {
955 fprintf(stderr, "Unsupported read: %s\n", path);
962 infiniband_ports(char *path, char *buf, size_t size, char *dev_name)
975 if (!(check_path(path, CP_D, &port_num)))
978 if (check_path(path, CP_GIDS, NULL)) {
982 gid_num = atoi(path);
1004 } else if (check_path(path, CP_PKEYS, NULL)) {
1008 pkey_num = atoi(path);
1019 if (strcmp(path, "lid_mask_count") == 0) {
1021 } else if (strcmp(path, "sm_lid") == 0) {
1023 } else if (strcmp(path, "sm_sl") == 0) {
1025 } else if (strcmp(path, "lid") == 0) {
1027 } else if (strcmp(path, "state") == 0) {
1059 } else if (strcmp(path, "phys_state") == 0) {
1097 } else if (strcmp(path, "rate") == 0) {
1136 } else if (strcmp(path, "cap_mask") == 0) {
1139 } else if (strcmp(path, "link_layer") == 0) {
1159 infiniband(char *path, char *buf, size_t size)
1167 if (!check_path_for_hca(path, dev_name))
1170 if (check_path(path, CP_PORTS, NULL)) {
1171 len = infiniband_ports(path, buf, size, dev_name);
1172 } else if (strcmp(path, "node_type") == 0) {
1178 if (strcmp(path, "node_guid") == 0) {
1180 } else if (strcmp(path, "node_guid_external") == 0) {
1183 } else if (strcmp(path, "sys_image_guid") == 0) {
1185 } else if (strcmp(path, "fw_ver") == 0) {
1187 } else if (strcmp(path, "hw_rev") == 0) {
1189 } else if (strcmp(path, "hca_type") == 0) {
1191 } else if (strcmp(path, "board_id") == 0) {
1200 infiniband_mad(char *path, char *buf, size_t size)
1224 if (check_path(path, CP_UMAD, &dev_num)) {
1226 fprintf(stderr, "Invalid Path: %s\n", path);
1232 if (strcmp(path, "ibdev") == 0) {
1235 } else if (strcmp(path, "port") == 0) {
1239 } else if (strcmp(path, "abi_version") == 0) {
1255 sol_read_sysfs_file(char *path, char *buf, size_t size)
1272 if (!check_path(path, CP_SLASH, NULL))
1275 if (!check_path(path, CP_SYS, NULL))
1278 if (!check_path(path, CP_CLASS, NULL))
1281 if (check_path(path, CP_INFINIBAND_VERBS, NULL)) {
1282 len = infiniband_verbs(path, buf, size);
1283 } else if (check_path(path, CP_INFINIBAND, NULL)) {
1284 len = infiniband(path, buf, size);
1285 } else if (check_path(path, CP_INFINIBAND_MAD, NULL)) {
1286 len = infiniband_mad(path, buf, size);
1287 } else if (check_path(path, CP_MISC, NULL)) {
1288 if (check_path(path, CP_RDMA_CM, NULL)) {
1289 if (strcmp(path, "abi_version") == 0) {