Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_mib.c
Show All 12 Lines | |||||
u_long val, p; | u_long val, p; | ||||
p = SIZE_T_MAX >> PAGE_SHIFT; | p = SIZE_T_MAX >> PAGE_SHIFT; | ||||
if (physmem < p) | if (physmem < p) | ||||
p = physmem; | p = physmem; | ||||
val = ctob(p); | val = ctob(p); | ||||
return (sysctl_handle_long(oidp, &val, 0, req)); | return (sysctl_handle_long(oidp, &val, 0, req)); | ||||
} | } | ||||
SYSCTL_PROC(_hw, HW_PHYSMEM, physmem, CTLTYPE_ULONG | CTLFLAG_RD, | SYSCTL_PROC(_hw, HW_PHYSMEM, physmem, | ||||
CTLTYPE_ULONG | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | |||||
0, 0, sysctl_hw_physmem, "LU", | 0, 0, sysctl_hw_physmem, "LU", | ||||
"Amount of physical memory (in bytes)"); | "Amount of physical memory (in bytes)"); | ||||
static int | static int | ||||
sysctl_hw_realmem(SYSCTL_HANDLER_ARGS) | sysctl_hw_realmem(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
u_long val, p; | u_long val, p; | ||||
p = SIZE_T_MAX >> PAGE_SHIFT; | p = SIZE_T_MAX >> PAGE_SHIFT; | ||||
if (realmem < p) | if (realmem < p) | ||||
p = realmem; | p = realmem; | ||||
val = ctob(p); | val = ctob(p); | ||||
return (sysctl_handle_long(oidp, &val, 0, req)); | return (sysctl_handle_long(oidp, &val, 0, req)); | ||||
} | } | ||||
SYSCTL_PROC(_hw, HW_REALMEM, realmem, CTLTYPE_ULONG | CTLFLAG_RD, | SYSCTL_PROC(_hw, HW_REALMEM, realmem, | ||||
CTLTYPE_ULONG | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | |||||
0, 0, sysctl_hw_realmem, "LU", | 0, 0, sysctl_hw_realmem, "LU", | ||||
"Amount of memory (in bytes) reported by the firmware"); | "Amount of memory (in bytes) reported by the firmware"); | ||||
static int | static int | ||||
sysctl_hw_usermem(SYSCTL_HANDLER_ARGS) | sysctl_hw_usermem(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
u_long val, p, p1; | u_long val, p, p1; | ||||
p1 = physmem - vm_wire_count(); | p1 = physmem - vm_wire_count(); | ||||
p = SIZE_T_MAX >> PAGE_SHIFT; | p = SIZE_T_MAX >> PAGE_SHIFT; | ||||
if (p1 < p) | if (p1 < p) | ||||
p = p1; | p = p1; | ||||
val = ctob(p); | val = ctob(p); | ||||
return (sysctl_handle_long(oidp, &val, 0, req)); | return (sysctl_handle_long(oidp, &val, 0, req)); | ||||
} | } | ||||
SYSCTL_PROC(_hw, HW_USERMEM, usermem, CTLTYPE_ULONG | CTLFLAG_RD, | SYSCTL_PROC(_hw, HW_USERMEM, usermem, | ||||
CTLTYPE_ULONG | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | |||||
0, 0, sysctl_hw_usermem, "LU", | 0, 0, sysctl_hw_usermem, "LU", | ||||
"Amount of memory (in bytes) which is not wired"); | "Amount of memory (in bytes) which is not wired"); | ||||
SYSCTL_LONG(_hw, OID_AUTO, availpages, CTLFLAG_RD, &physmem, 0, | SYSCTL_LONG(_hw, OID_AUTO, availpages, CTLFLAG_RD, &physmem, 0, | ||||
"Amount of physical memory (in pages)"); | "Amount of physical memory (in pages)"); | ||||
u_long pagesizes[MAXPAGESIZES] = { PAGE_SIZE }; | u_long pagesizes[MAXPAGESIZES] = { PAGE_SIZE }; | ||||
Show All 14 Lines | |||||
pagesizes32[i] = (uint32_t)pagesizes[i]; | pagesizes32[i] = (uint32_t)pagesizes[i]; | ||||
error = SYSCTL_OUT(req, pagesizes32, sizeof(pagesizes32)); | error = SYSCTL_OUT(req, pagesizes32, sizeof(pagesizes32)); | ||||
} else | } else | ||||
#endif | #endif | ||||
error = SYSCTL_OUT(req, pagesizes, sizeof(pagesizes)); | error = SYSCTL_OUT(req, pagesizes, sizeof(pagesizes)); | ||||
return (error); | return (error); | ||||
} | } | ||||
SYSCTL_PROC(_hw, OID_AUTO, pagesizes, CTLTYPE_ULONG | CTLFLAG_RD, | SYSCTL_PROC(_hw, OID_AUTO, pagesizes, | ||||
NULL, 0, sysctl_hw_pagesizes, "LU", "Supported page sizes"); | CTLTYPE_ULONG | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | ||||
NULL, 0, sysctl_hw_pagesizes, "LU", | |||||
"Supported page sizes"); | |||||
#ifdef SCTL_MASK32 | #ifdef SCTL_MASK32 | ||||
int adaptive_machine_arch = 1; | int adaptive_machine_arch = 1; | ||||
SYSCTL_INT(_debug, OID_AUTO, adaptive_machine_arch, CTLFLAG_RW, | SYSCTL_INT(_debug, OID_AUTO, adaptive_machine_arch, CTLFLAG_RW, | ||||
&adaptive_machine_arch, 1, | &adaptive_machine_arch, 1, | ||||
"Adapt reported machine architecture to the ABI of the binary"); | "Adapt reported machine architecture to the ABI of the binary"); | ||||
#endif | #endif | ||||
Show All 24 Lines | |||||
cpr->pr_securelevel = level; | cpr->pr_securelevel = level; | ||||
} | } | ||||
mtx_unlock(&pr->pr_mtx); | mtx_unlock(&pr->pr_mtx); | ||||
sx_sunlock(&allprison_lock); | sx_sunlock(&allprison_lock); | ||||
return (error); | return (error); | ||||
} | } | ||||
SYSCTL_PROC(_kern, KERN_SECURELVL, securelevel, | SYSCTL_PROC(_kern, KERN_SECURELVL, securelevel, | ||||
CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_PRISON, 0, 0, sysctl_kern_securelvl, | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_PRISON | CTLFLAG_NEEDGIANT, | ||||
"I", "Current secure level"); | 0, 0, sysctl_kern_securelvl, "I", | ||||
"Current secure level"); | |||||
#ifdef INCLUDE_CONFIG_FILE | #ifdef INCLUDE_CONFIG_FILE | ||||
/* Actual kernel configuration options. */ | /* Actual kernel configuration options. */ | ||||
extern char kernconfstring[]; | extern char kernconfstring[]; | ||||
SYSCTL_STRING(_kern, OID_AUTO, conftxt, CTLFLAG_RD | CTLFLAG_MPSAFE, | SYSCTL_STRING(_kern, OID_AUTO, conftxt, CTLFLAG_RD | CTLFLAG_MPSAFE, | ||||
kernconfstring, 0, "Kernel configuration file"); | kernconfstring, 0, "Kernel configuration file"); | ||||
#endif | #endif | ||||
Show All 12 Lines |