shminfo
sbuf_printf(sb, "%lu\n", shminfo.shmall);
sbuf_printf(sb, "%lu\n", shminfo.shmmax);
sbuf_printf(sb, "%lu\n", shminfo.shmmni);
bsd_to_linux_shminfo( struct shminfo *bpp, struct l_shminfo64 *lpp)
struct shminfo bsd_shminfo;
struct shminfo shminfo;
CP(u.shminfo, u32.shminfo32, shmmax);
CP(u.shminfo, u32.shminfo32, shmmin);
CP(u.shminfo, u32.shminfo32, shmmni);
CP(u.shminfo, u32.shminfo32, shmseg);
CP(u.shminfo, u32.shminfo32, shmall);
struct shminfo shminfo;
CP(u.shminfo, u32.shminfo32, shmmax);
CP(u.shminfo, u32.shminfo32, shmmin);
CP(u.shminfo, u32.shminfo32, shmmni);
CP(u.shminfo, u32.shminfo32, shmseg);
CP(u.shminfo, u32.shminfo32, shmall);
struct shminfo shminfo = {
SYSCTL_ULONG(_kern_ipc, OID_AUTO, shmmax, CTLFLAG_RWTUN, &shminfo.shmmax, 0,
SYSCTL_ULONG(_kern_ipc, OID_AUTO, shmmin, CTLFLAG_RWTUN, &shminfo.shmmin, 0,
SYSCTL_ULONG(_kern_ipc, OID_AUTO, shmmni, CTLFLAG_RDTUN, &shminfo.shmmni, 0,
SYSCTL_ULONG(_kern_ipc, OID_AUTO, shmseg, CTLFLAG_RDTUN, &shminfo.shmseg, 0,
SYSCTL_ULONG(_kern_ipc, OID_AUTO, shmall, CTLFLAG_RWTUN, &shminfo.shmall, 0,
for (i = 0; i < shminfo.shmseg; i++, shmmap_s++) {
if (i == shminfo.shmseg)
shmmap_s = malloc(shminfo.shmseg * sizeof(struct shmmap_state),
for (i = 0; i < shminfo.shmseg; i++)
for (i = 0; i < shminfo.shmseg; i++) {
if (i >= shminfo.shmseg)
memcpy(buf, &shminfo, sizeof(shminfo));
*bufsz = sizeof(shminfo);
if (size < shminfo.shmmin || size > shminfo.shmmax)
if (shm_nused >= shminfo.shmmni) /* Any shmids left? */
if (shm_committed + btoc(size) > shminfo.shmall)
size = shminfo.shmseg * sizeof(struct shmmap_state);
for (i = 0; i < shminfo.shmseg; i++, shmmap_s++) {
for (i = 0, shm = base; i < shminfo.shmseg; i++, shm++) {
if (shmalloced >= shminfo.shmmni)
newsegs = malloc(shminfo.shmmni * sizeof(*newsegs), M_SHM,
for (; i < shminfo.shmmni; i++) {
shmalloced = shminfo.shmmni;
if (TUNABLE_ULONG_FETCH("kern.ipc.shmmaxpgs", &shminfo.shmall) != 0)
if (shminfo.shmmax == SHMMAX) {
shminfo.shmmax = shminfo.shmall * i;
if ((shminfo.shmmax / shminfo.shmall) == (u_long)i)
shmalloced = shminfo.shmmni;
extern struct shminfo shminfo;
kget(X_SHMINFO, &shminfo, sizeof(shminfo));
kxshmids_len = sizeof(struct shmid_kernel) * shminfo.shmmni;
num = shminfo.shmmni;
struct shminfo shminfo;
#define TYPEC struct shminfo
extern struct shminfo shminfo;
kget(X_SHMINFO, &shminfo, sizeof(shminfo));
print_kshmtotal(shminfo);
sizeof(struct shmid_kernel) * shminfo.shmmni;
for (shmidx = 0; shmidx < shminfo.shmmni; shmidx += 1) {
print_kshmtotal(struct shminfo local_shminfo)
void print_kshmtotal(struct shminfo shminfo);