|
Lines 730-735
mps_get_iocfacts(int fd)
Link Here
|
| 730 |
MPI2_IOC_FACTS_REQUEST req; |
730 |
MPI2_IOC_FACTS_REQUEST req; |
| 731 |
char msgver[8], sysctlname[128]; |
731 |
char msgver[8], sysctlname[128]; |
| 732 |
size_t len, factslen; |
732 |
size_t len, factslen; |
|
|
733 |
unsigned int major, minor; |
| 733 |
int error; |
734 |
int error; |
| 734 |
|
735 |
|
| 735 |
snprintf(sysctlname, sizeof(sysctlname), "dev.%s.%d.msg_version", |
736 |
snprintf(sysctlname, sizeof(sysctlname), "dev.%s.%d.msg_version", |
|
Lines 739-745
mps_get_iocfacts(int fd)
Link Here
|
| 739 |
len = sizeof(msgver); |
740 |
len = sizeof(msgver); |
| 740 |
error = sysctlbyname(sysctlname, msgver, &len, NULL, 0); |
741 |
error = sysctlbyname(sysctlname, msgver, &len, NULL, 0); |
| 741 |
if (error == 0) { |
742 |
if (error == 0) { |
| 742 |
if (strncmp(msgver, "2.6", sizeof(msgver)) == 0) |
743 |
if (sscanf(msgver, "%u.%u", &major, &minor) != 2) { |
|
|
744 |
warnx("Invalid message version '%s'", msgver); |
| 745 |
errno = EINVAL; |
| 746 |
return (NULL); |
| 747 |
} |
| 748 |
if (major > 2 || (major == 2 && minor >= 6)) |
| 743 |
factslen += 4; |
749 |
factslen += 4; |
| 744 |
} |
750 |
} |
| 745 |
|
751 |
|