Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/ofw/ofw_fdt.c
Show First 20 Lines • Show All 90 Lines • ▼ Show 20 Lines | static ofw_def_t ofw_fdt = { | ||||
ofw_fdt_methods, | ofw_fdt_methods, | ||||
0 | 0 | ||||
}; | }; | ||||
OFW_DEF(ofw_fdt); | OFW_DEF(ofw_fdt); | ||||
static void *fdtp = NULL; | static void *fdtp = NULL; | ||||
static int | static int | ||||
sysctl_handle_dtb(SYSCTL_HANDLER_ARGS) | |||||
{ | |||||
return (sysctl_handle_opaque(oidp, fdtp, fdt_totalsize(fdtp), req)); | |||||
} | |||||
static void | |||||
sysctl_register_fdt_oid(void *arg) | |||||
{ | |||||
/* If there is no FDT registered, skip adding the sysctl */ | |||||
if (fdtp == NULL) | |||||
return; | |||||
SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_fdt), OID_AUTO, "dtb", | |||||
CTLTYPE_OPAQUE | CTLFLAG_RD, NULL, 0, sysctl_handle_dtb, "", | |||||
"Device Tree Blob"); | |||||
} | |||||
SYSINIT(dtb_oid, SI_SUB_KMEM, SI_ORDER_ANY, sysctl_register_fdt_oid, 0); | |||||
static int | |||||
ofw_fdt_init(ofw_t ofw, void *data) | ofw_fdt_init(ofw_t ofw, void *data) | ||||
{ | { | ||||
int err; | int err; | ||||
/* Check FDT blob integrity */ | /* Check FDT blob integrity */ | ||||
if ((err = fdt_check_header(data)) != 0) | if ((err = fdt_check_header(data)) != 0) | ||||
return (err); | return (err); | ||||
▲ Show 20 Lines • Show All 352 Lines • Show Last 20 Lines |