int _init(void) { int result; msq_svc = ipcs_create("msqids", rc_project_msgmni, rc_zone_msgmni, sizeof (kmsqid_t), msg_dtor, msg_rmid, AT_IPC_MSG, offsetof(ipc_rqty_t, ipcq_msgmni)); zone_key_create(&msg_zone_key, NULL, msg_remove_zone, NULL); if ((result = mod_install(&modlinkage)) == 0) return (0); (void) zone_key_delete(msg_zone_key); ipcs_destroy(msq_svc); return (result); }
int _init(void) { int result; sem_svc = ipcs_create("semids", rc_project_semmni, rc_zone_semmni, sizeof (ksemid_t), sem_dtor, sem_rmid, AT_IPC_SEM, offsetof(ipc_rqty_t, ipcq_semmni)); zone_key_create(&sem_zone_key, NULL, sem_remove_zone, NULL); if ((result = mod_install(&modlinkage)) == 0) return (0); (void) zone_key_delete(sem_zone_key); ipcs_destroy(sem_svc); return (result); }