ipc_service_t
OFFSETOF(ipc_service_t, ipcs_usedids);
ipc_service_t service;
if (mdb_vread(&service, sizeof (ipc_service_t), svcptr) == -1) {
ipc_service_t service;
if (mdb_vread(&service, sizeof (ipc_service_t), svcptr) == -1) {
svcptr + OFFSETOF(ipc_service_t, ipcs_keys)) == -1) ||
ipc_commit_begin(ipc_service_t *service, key_t key, int flag,
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)
ipc_rmid(ipc_service_t *service, int id, cred_t *cr)
ipc_ids(ipc_service_t *service, int *buf, uint_t nids, uint_t *pnids)
ipc_remove_zone(ipc_service_t *service, zoneid_t zoneid)
ipcperm_set(ipc_service_t *service, struct cred *cr,
ipcperm_set64(ipc_service_t *service, struct cred *cr,
ipc_service_t *
ipc_service_t *result;
result = kmem_alloc(sizeof (ipc_service_t), KM_SLEEP);
ipcs_destroy(ipc_service_t *service)
kmem_free(service, sizeof (ipc_service_t));
ipcs_lock(ipc_service_t *service)
ipcs_unlock(ipc_service_t *service)
ipc_lock_internal(ipc_service_t *service, uint_t id)
ipc_lock(ipc_service_t *service, int id)
ipc_relock(ipc_service_t *service, int id, kmutex_t *lock)
ipc_lookup(ipc_service_t *service, int id, kipc_perm_t **perm)
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_grow(ipc_service_t *service)
ipc_keylookup(ipc_service_t *service, key_t key, int flag, kipc_perm_t **permp)
ipc_alloc_test(ipc_service_t *service, proc_t *pp)
ipc_get(ipc_service_t *service, key_t key, int flag, kipc_perm_t **permp,
static ipc_service_t *msq_svc;
static ipc_service_t *shm_svc;
int ipcperm_set(ipc_service_t *, struct cred *, kipc_perm_t *,
int ipcperm_set64(ipc_service_t *, struct cred *, kipc_perm_t *,
ipc_service_t *ipcs_create(const char *, rctl_hndl_t, rctl_hndl_t, size_t,
void ipcs_destroy(ipc_service_t *);
void ipcs_lock(ipc_service_t *);
void ipcs_unlock(ipc_service_t *);
kmutex_t *ipc_lock(ipc_service_t *, int);
kmutex_t *ipc_relock(ipc_service_t *, int, kmutex_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 *);
int ipc_rmid(ipc_service_t *, int, cred_t *);
int ipc_ids(ipc_service_t *, int *, uint_t, uint_t *);
void ipc_remove_zone(ipc_service_t *, zoneid_t);
static ipc_service_t *sem_svc;