MCPcopy Create free account
hub / github.com/F-Stack/f-stack / device_sysctl_init

Function device_sysctl_init

freebsd/kern/subr_bus.c:293–335  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

291}
292
293static void
294device_sysctl_init(device_t dev)
295{
296 devclass_t dc = dev->devclass;
297 int domain;
298
299 if (dev->sysctl_tree != NULL)
300 return;
301 devclass_sysctl_init(dc);
302 sysctl_ctx_init(&dev->sysctl_ctx);
303 dev->sysctl_tree = SYSCTL_ADD_NODE_WITH_LABEL(&dev->sysctl_ctx,
304 SYSCTL_CHILDREN(dc->sysctl_tree), OID_AUTO,
305 dev->nameunit + strlen(dc->name),
306 CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "", "device_index");
307 SYSCTL_ADD_PROC(&dev->sysctl_ctx, SYSCTL_CHILDREN(dev->sysctl_tree),
308 OID_AUTO, "%desc", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
309 dev, DEVICE_SYSCTL_DESC, device_sysctl_handler, "A",
310 "device description");
311 SYSCTL_ADD_PROC(&dev->sysctl_ctx, SYSCTL_CHILDREN(dev->sysctl_tree),
312 OID_AUTO, "%driver",
313 CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
314 dev, DEVICE_SYSCTL_DRIVER, device_sysctl_handler, "A",
315 "device driver name");
316 SYSCTL_ADD_PROC(&dev->sysctl_ctx, SYSCTL_CHILDREN(dev->sysctl_tree),
317 OID_AUTO, "%location",
318 CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
319 dev, DEVICE_SYSCTL_LOCATION, device_sysctl_handler, "A",
320 "device location relative to parent");
321 SYSCTL_ADD_PROC(&dev->sysctl_ctx, SYSCTL_CHILDREN(dev->sysctl_tree),
322 OID_AUTO, "%pnpinfo",
323 CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
324 dev, DEVICE_SYSCTL_PNPINFO, device_sysctl_handler, "A",
325 "device identification");
326 SYSCTL_ADD_PROC(&dev->sysctl_ctx, SYSCTL_CHILDREN(dev->sysctl_tree),
327 OID_AUTO, "%parent",
328 CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
329 dev, DEVICE_SYSCTL_PARENT, device_sysctl_handler, "A",
330 "parent device");
331 if (bus_get_domain(dev, &domain) == 0)
332 SYSCTL_ADD_INT(&dev->sysctl_ctx,
333 SYSCTL_CHILDREN(dev->sysctl_tree), OID_AUTO, "%domain",
334 CTLFLAG_RD, NULL, domain, "NUMA domain");
335}
336
337static void
338device_sysctl_update(device_t dev)

Callers 1

device_attachFunction · 0.85

Calls 3

devclass_sysctl_initFunction · 0.85
sysctl_ctx_initFunction · 0.85
bus_get_domainFunction · 0.70

Tested by

no test coverage detected