seminfo
sbuf_printf(sb, "%d %d %d %d\n", seminfo.semmsl, seminfo.semmns,
seminfo.semopm, seminfo.semmni);
bcopy(&seminfo, &linux_seminfo.semmni, sizeof(linux_seminfo) -
td->td_retval[0] = seminfo.semmni;
if (nsems <= 0 || nsems > seminfo.semmsl) {
seminfo.semmsl));
if (nsems > seminfo.semmns - semtot) {
nsems, seminfo.semmns - semtot));
for (semid = 0; semid < seminfo.semmni; semid++) {
if (semid == seminfo.semmni) {
if (semid < 0 || semid >= seminfo.semmni)
else if (nsops > seminfo.semopm) {
DPRINTF(("too many sops (max=%d, nsops=%d)\n", seminfo.semopm,
seminfo.semvmx) {
for (i = 0; i < seminfo.semmni; i++) {
*sz = mi = seminfo.semmni;
for (i = 0; i < seminfo.semmni; i++) {
((struct sem_undo *)(((intptr_t)semu) + (ix) * seminfo.semusz))
struct seminfo seminfo = {
SYSCTL_INT(_kern_ipc, OID_AUTO, semmni, CTLFLAG_RDTUN, &seminfo.semmni, 0,
SYSCTL_INT(_kern_ipc, OID_AUTO, semmns, CTLFLAG_RDTUN, &seminfo.semmns, 0,
SYSCTL_INT(_kern_ipc, OID_AUTO, semmnu, CTLFLAG_RDTUN, &seminfo.semmnu, 0,
SYSCTL_INT(_kern_ipc, OID_AUTO, semmsl, CTLFLAG_RWTUN, &seminfo.semmsl, 0,
SYSCTL_INT(_kern_ipc, OID_AUTO, semopm, CTLFLAG_RDTUN, &seminfo.semopm, 0,
SYSCTL_INT(_kern_ipc, OID_AUTO, semume, CTLFLAG_RDTUN, &seminfo.semume, 0,
SYSCTL_INT(_kern_ipc, OID_AUTO, semusz, CTLFLAG_RD, &seminfo.semusz, 0,
SYSCTL_INT(_kern_ipc, OID_AUTO, semvmx, CTLFLAG_RWTUN, &seminfo.semvmx, 0,
SYSCTL_INT(_kern_ipc, OID_AUTO, semaem, CTLFLAG_RWTUN, &seminfo.semaem, 0,
sem = malloc(sizeof(struct sem) * seminfo.semmns, M_SEM, M_WAITOK);
sema = malloc(sizeof(struct semid_kernel) * seminfo.semmni, M_SEM,
sema_mtx = malloc(sizeof(struct mtx) * seminfo.semmni, M_SEM,
seminfo.semusz = SEMUSZ(seminfo.semume);
semu = malloc(seminfo.semmnu * seminfo.semusz, M_SEM, M_WAITOK);
for (i = 0; i < seminfo.semmni; i++) {
for (i = 0; i < seminfo.semmni; i++)
for (i = 0; i < seminfo.semmnu; i++) {
for (i = 0; i < seminfo.semmni; i++)
for (i = 0; i < seminfo.semmni; i++)
if (adjval > seminfo.semaem || adjval < -seminfo.semaem)
if (adjval > seminfo.semaem || adjval < -seminfo.semaem)
if (suptr->un_cnt != seminfo.semume) {
KASSERT(semidx >= 0 && semidx < seminfo.semmni,
for (i = 0; i < seminfo.semmni; i++) {
for (i = 0; i < seminfo.semmni; i++) {
if (semid < 0 || semid >= seminfo.semmni)
if (semidx < 0 || semidx >= seminfo.semmni)
if (arg->val < 0 || arg->val > seminfo.semvmx) {
if (usval > seminfo.semvmx) {
for (semid = 0; semid < seminfo.semmni; semid++) {
if (semid < seminfo.semmni) {
extern struct seminfo seminfo;
kget(X_SEMINFO, &seminfo, sizeof(seminfo));
kxsema_len = sizeof(struct semid_kernel) * seminfo.semmni;
num = seminfo.semmni;
struct seminfo seminfo;
#define TYPEC struct seminfo
extern struct seminfo seminfo;
kget(X_SEMINFO, &seminfo, sizeof(seminfo));
print_ksemtotal(seminfo);
sizeof(struct semid_kernel) * seminfo.semmni;
for (i = 0; i < seminfo.semmni; i += 1) {
print_ksemtotal(struct seminfo local_seminfo)
void print_ksemtotal(struct seminfo seminfo);