MCPcopy Index your code
hub / github.com/F-Stack/f-stack / sysctl_all

Function sysctl_all

tools/sysctl/sysctl.c:1396–1439  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1394}
1395
1396static int
1397sysctl_all(int *oid, int len)
1398{
1399 int name1[22], name2[22];
1400 int i, j;
1401 size_t l1, l2;
1402
1403 name1[0] = CTL_SYSCTL;
1404 name1[1] = (oid != NULL || Nflag || dflag || tflag) ?
1405 CTL_SYSCTL_NEXTNOSKIP : CTL_SYSCTL_NEXT;
1406 l1 = 2;
1407 if (len) {
1408 memcpy(name1 + 2, oid, len * sizeof(int));
1409 l1 += len;
1410 } else {
1411 name1[2] = CTL_KERN;
1412 l1++;
1413 }
1414 for (;;) {
1415 l2 = sizeof(name2);
1416 j = sysctl(name1, l1, name2, &l2, 0, 0);
1417 if (j < 0) {
1418 if (errno == ENOENT)
1419 return (0);
1420 else
1421 err(1, "sysctl(getnext) %d %zu", j, l2);
1422 }
1423
1424 l2 /= sizeof(int);
1425
1426 if (len < 0 || l2 < (unsigned int)len)
1427 return (0);
1428
1429 if (memcmp(name2, oid, len * sizeof(int)) != 0)
1430 return (0);
1431
1432 i = show_var(name2, l2, true);
1433 if (!i && !bflag)
1434 putchar('\n');
1435
1436 memcpy(name1 + 2, name2, l2 * sizeof(int));
1437 l1 = 2 + l2;
1438 }
1439}

Callers 2

sysctl.cFile · 0.85
parseFunction · 0.85

Calls 4

sysctlFunction · 0.85
show_varFunction · 0.85
putcharFunction · 0.85
memcpyFunction · 0.50

Tested by

no test coverage detected