seminfo
struct seminfo seminfo = {
infosize = sizeof(semsi->seminfo);
nds = seminfo.semmni;
semsi->seminfo = seminfo;
if (ix < 0 || ix >= seminfo.semmni)
if (arg.val > seminfo.semvmx)
if (semval[i] > seminfo.semvmx) {
if (nsems <= 0 || nsems > seminfo.semmsl) {
seminfo.semmsl));
if (nsems > seminfo.semmns - semtot) {
nsems, seminfo.semmns - semtot));
if (nsems > seminfo.semmns - semtot) {
for (semid = 0, semaptr = NULL; semid < seminfo.semmni; semid++) {
for (semid = 0; semid < seminfo.semmni; semid++) {
if (semid == seminfo.semmni) {
if (semid < 0 || semid >= seminfo.semmni)
} else if (nsops > (size_t)seminfo.semopm) {
DPRINTF(("too many sops (max=%d, nsops=%lu)\n", seminfo.semopm,
sema = mallocarray(seminfo.semmni, sizeof(struct semid_ds *),
semseqs = mallocarray(seminfo.semmni, sizeof(unsigned short),
if (semutot == seminfo.semmnu)
seminfo.semmni * sizeof(struct semid_ds *));
seminfo.semmni * sizeof(unsigned short));
free(sema, M_SEM, seminfo.semmni * sizeof(struct semid_ds *));
free(semseqs, M_SEM, seminfo.semmni * sizeof(unsigned short));
seminfo.semmni = val;
{ KERN_SEMINFO_SEMUME, &seminfo.semume, SYSCTL_INT_READONLY },
{ KERN_SEMINFO_SEMUSZ, &seminfo.semusz, SYSCTL_INT_READONLY },
{ KERN_SEMINFO_SEMVMX, &seminfo.semvmx, SYSCTL_INT_READONLY },
{ KERN_SEMINFO_SEMAEM, &seminfo.semaem, SYSCTL_INT_READONLY },
{ KERN_SEMINFO_SEMOPM, &seminfo.semopm, 1, SEMOP_MAX },
val = seminfo.semmni;
if (error || val == seminfo.semmni)
&seminfo.semmns, seminfo.semmns, 0xffff));
&seminfo.semmnu, seminfo.semmnu, 0xffff));
&seminfo.semmsl, seminfo.semmsl, 0xffff));
struct seminfo seminfo;
extern struct seminfo seminfo;
show_semtotal(struct seminfo *seminfo)
seminfo->semmni);
seminfo->semmns);
seminfo->semmnu);
seminfo->semmsl);
seminfo->semopm);
seminfo->semume);
seminfo->semusz);
seminfo->semvmx);
seminfo->semaem);
len = sizeof(struct seminfo);
show_semtotal(&semsi->seminfo);
for (i = 0; i < semsi->seminfo.semmni; i++) {
struct seminfo seminfo;
(kvm_read(kd, symbols[X_SEMINFO].n_value, &seminfo,
sizeof(seminfo)) == sizeof(seminfo))) {
show_semtotal(&seminfo);
seminfo.semmni);
sizeof(struct semid_ds *) * seminfo.semmni) !=
sizeof(struct semid_ds *) * seminfo.semmni)
for (i = 0; i < seminfo.semmni; i++) {
void show_semtotal(struct seminfo *);