kipc_perm_t
kipc_perm_t perm;
if (mdb_vread(&perm, sizeof (kipc_perm_t), addr) == -1) {
kipc_perm_t perm;
if (mdb_vread(&perm, sizeof (kipc_perm_t),
findkey(uintptr_t addr, kipc_perm_t *perm, findkey_data_t *arg)
ipcperm_print(uintptr_t addr, kipc_perm_t *perm)
token_t *au_to_ipc_perm(kipc_perm_t *);
kipc_perm_t *newperm)
kipc_perm_t *perm;
ipc_commit_end(ipc_service_t *service, kipc_perm_t *perm)
ipc_cleanup(ipc_service_t *service, kipc_perm_t *perm)
ipc_remove(ipc_service_t *service, kipc_perm_t *perm)
kipc_perm_t *perm;
kipc_perm_t *perm;
kipc_perm_t *perm, *next;
list_create(&rmlist, sizeof (kipc_perm_t),
offsetof(kipc_perm_t, ipc_list));
ipcperm_access(kipc_perm_t *p, int mode, cred_t *cr)
kipc_perm_t *kperm, struct ipc_perm *perm, model_t model)
ipcperm_stat(struct ipc_perm *perm, kipc_perm_t *kperm, model_t model)
kipc_perm_t *kperm, ipc_perm64_t *perm64)
ipcperm_stat64(ipc_perm64_t *perm64, kipc_perm_t *kperm)
kipc_perm_t *aperm = (kipc_perm_t *)a;
kipc_perm_t *bperm = (kipc_perm_t *)b;
list_create(&result->ipcs_usedids, sizeof (kipc_perm_t),
offsetof(kipc_perm_t, ipc_list));
ipc_lookup(ipc_service_t *service, int id, kipc_perm_t **perm)
kipc_perm_t *result;
ipc_hold(ipc_service_t *s, kipc_perm_t *perm)
ipc_rele(ipc_service_t *s, kipc_perm_t *perm)
ipc_rele_locked(ipc_service_t *s, kipc_perm_t *perm)
ipc_keylookup(ipc_service_t *service, key_t key, int flag, kipc_perm_t **permp)
kipc_perm_t *perm = NULL;
kipc_perm_t template;
ipc_get(ipc_service_t *service, key_t key, int flag, kipc_perm_t **permp,
kipc_perm_t *perm = NULL;
ipc_rele(msq_svc, (kipc_perm_t *)qp);
if ((lock = ipc_lookup(msq_svc, msqid, (kipc_perm_t **)&qp)) == NULL) {
ipc_hold(msq_svc, (kipc_perm_t *)qp);
static void msg_dtor(kipc_perm_t *);
static void msg_rmid(kipc_perm_t *);
ipc_rele(msq_svc, (kipc_perm_t *)qp); /* drops lock */
msg_dtor(kipc_perm_t *perm)
msg_rmid(kipc_perm_t *perm)
if ((lock = ipc_lookup(msq_svc, msgid, (kipc_perm_t **)&qp)) == NULL)
if (error = ipc_get(msq_svc, key, msgflg, (kipc_perm_t **)&qp, &lock))
(kipc_perm_t *)qp)) {
if ((lock = ipc_lookup(msq_svc, msqid, (kipc_perm_t **)&qp)) == NULL) {
ipc_hold(msq_svc, (kipc_perm_t *)qp);
ipc_rele(msq_svc, (kipc_perm_t *)qp);
ipc_rele(msq_svc, (kipc_perm_t *)qp);
if ((lock = ipc_lookup(msq_svc, msqid, (kipc_perm_t **)&qp)) == NULL)
ipc_hold(msq_svc, (kipc_perm_t *)qp);
ipc_hold(shm_svc, (kipc_perm_t *)sp);
static void shm_dtor(kipc_perm_t *);
static void shm_rmid(kipc_perm_t *);
if ((lock = ipc_lookup(shm_svc, shmid, (kipc_perm_t **)&sp)) == NULL)
ipc_hold(shm_svc, (kipc_perm_t *)sp);
shm_dtor(kipc_perm_t *perm)
shm_rmid(kipc_perm_t *perm)
if ((lock = ipc_lookup(shm_svc, shmid, (kipc_perm_t **)&sp)) == NULL)
ipc_rele(shm_svc, (kipc_perm_t *)sp); /* Drops lock */
if (error = ipc_get(shm_svc, key, shmflg, (kipc_perm_t **)&sp, &lock))
ipc_cleanup(shm_svc, (kipc_perm_t *)sp);
ipc_cleanup(shm_svc, (kipc_perm_t *)sp);
(kipc_perm_t *)sp)) {
ipc_cleanup(shm_svc, (kipc_perm_t *)sp);
kipc_perm_t *ipct_data; /* data */
typedef void(ipc_func_t)(kipc_perm_t *);
int ipcperm_access(kipc_perm_t *, int, cred_t *);
int ipcperm_set(ipc_service_t *, struct cred *, kipc_perm_t *,
void ipcperm_stat(struct ipc_perm *, kipc_perm_t *, model_t);
int ipcperm_set64(ipc_service_t *, struct cred *, kipc_perm_t *,
void ipcperm_stat64(ipc_perm64_t *, kipc_perm_t *);
kmutex_t *ipc_lookup(ipc_service_t *, int, kipc_perm_t **);
void ipc_hold(ipc_service_t *, kipc_perm_t *);
void ipc_rele(ipc_service_t *, kipc_perm_t *);
void ipc_rele_locked(ipc_service_t *, kipc_perm_t *);
int ipc_get(ipc_service_t *, key_t, int, kipc_perm_t **, kmutex_t **);
int ipc_commit_begin(ipc_service_t *, key_t, int, kipc_perm_t *);
kmutex_t *ipc_commit_end(ipc_service_t *, kipc_perm_t *);
void ipc_cleanup(ipc_service_t *, kipc_perm_t *);
kipc_perm_t msg_perm; /* operation permission struct */
kipc_perm_t sem_perm; /* operation permission struct */
kipc_perm_t shm_perm; /* operation permission struct */
ipc_hold(sem_svc, (kipc_perm_t *)sp);
ipc_hold(sem_svc, (kipc_perm_t *)sp);
ipc_hold(sem_svc, (kipc_perm_t *)sp);
ipc_rele(sem_svc, (kipc_perm_t *)sp);
ipc_rele(sem_svc, (kipc_perm_t *)sp);
static void sem_dtor(kipc_perm_t *);
static void sem_rmid(kipc_perm_t *);
sem_dtor(kipc_perm_t *perm)
sem_rmid(kipc_perm_t *perm)
ipc_rele_locked(sem_svc, (kipc_perm_t *)sp);
(kipc_perm_t **)&sp)) == NULL)
if ((lock = ipc_lookup(sem_svc, semid, (kipc_perm_t **)&sp)) == NULL) {
ipc_rele(sem_svc, (kipc_perm_t *)sp);
if (error = ipc_get(sem_svc, key, semflg, (kipc_perm_t **)&sp, &lock))
ipc_cleanup(sem_svc, (kipc_perm_t *)sp);
(kipc_perm_t *)sp)) {
ipc_cleanup(sem_svc, (kipc_perm_t *)sp);
ipc_hold(sem_svc, (kipc_perm_t *)sp);
(kipc_perm_t **)&sp)) == NULL)
ipc_hold(sem_svc, (kipc_perm_t *)sp);
(kipc_perm_t **)&sp)) == NULL) {