shminfo
kvmsize += shminfo.shmall;
sysmap_size += shminfo.shmall;
kvmsize += shminfo.shmall;
infosize = sizeof(shmsi->shminfo);
nds = shminfo.shmmni;
shmsi->shminfo = shminfo;
lsi64.l_shmmax = shminfo.shmmax;
lsi64.l_shmmin = shminfo.shmmin;
lsi64.l_shmmni = shminfo.shmmni;
lsi64.l_shmseg = shminfo.shmseg;
lsi64.l_shmall = shminfo.shmall;
for (i = shminfo.shmmni - 1; i > 0; i--)
for (i = 0; i < shminfo.shmmni; i++)
for (i = shminfo.shmmni - 1; i > 0; i--)
struct shminfo shminfo;
infosize = sizeof(shmsi->shminfo);
nds = shminfo.shmmni;
shmsi->shminfo = shminfo;
struct shminfo shminfo = {
for (i = 0; i < shminfo.shmmni; i++)
sz = ALIGN(shminfo.shmmni * sizeof(struct shmid_ds)) +
ALIGN(shminfo.shmmni * sizeof(kcondvar_t));
newsize = shminfo.shmmni;
newsize = shminfo.shmall;
shminfo.shmall = newsize;
shminfo.shmmax = (uint64_t)shminfo.shmall * PAGE_SIZE;
newsize = shminfo.shmmax;
shminfo.shmmax = round_page(newsize);
shminfo.shmall = shminfo.shmmax / PAGE_SIZE;
sysctl_ipc_shmmax, 0, &shminfo.shmmax, 0,
sysctl_ipc_shmmni, 0, &shminfo.shmmni, 0,
NULL, 0, &shminfo.shmseg, 0,
sysctl_ipc_shmmaxpgs, 0, &shminfo.shmall, 0,
if (index < 0 || index >= shminfo.shmmni) {
if (segnum < 0 || segnum >= shminfo.shmmni)
if (shmmap_s && shmmap_s->nitems >= shminfo.shmseg) {
for (segnum = 0; segnum < shminfo.shmmni; segnum++)
if (segnum == shminfo.shmmni) {
if (size < shminfo.shmmin || size > shminfo.shmmax) {
if (shm_nused >= shminfo.shmmni) {
if (shm_committed + btoc(size) > shminfo.shmall) {
for (segnum = 0; segnum < shminfo.shmmni; segnum++)
KASSERT(segnum < shminfo.shmmni);
for (i = 0; i < shminfo.shmmni; i++)
oldshmni = shminfo.shmmni;
shminfo.shmmni = newshmni;
sz = ALIGN(shminfo.shmmni * sizeof(struct shmid_ds)) +
ALIGN(shminfo.shmmni * sizeof(kcondvar_t));
ALIGN(shminfo.shmmni * sizeof(struct shmid_ds)));
if (shminfo.shmmax == 0)
shminfo.shmall = uimax(physmem / 4, 1024);
shminfo.shmall = shminfo.shmmax / PAGE_SIZE;
shminfo.shmmax = (uint64_t)shminfo.shmall * PAGE_SIZE;
for (i = 0; i < shminfo.shmmni; i++) {
for (unsigned int id = 0; id < shminfo.shmmni; id++)
struct shminfo shminfo;
extern struct shminfo shminfo;
for (i = 0; i < shmsi->shminfo.shmmni; i++) {
static void show_shmtotal(struct shminfo *);
show_shmtotal(struct shminfo *shminfo)
shminfo->shmmax);
shminfo->shmmin);
shminfo->shmmni);
shminfo->shmseg);
shminfo->shmall);
len = sizeof(struct shminfo);
show_shmtotal(&shmsi->shminfo);
for (i = 0; i < shmsi->shminfo.shmmni; i++) {