113d88268SGregory Neil Shapiro /* 25dd76dd0SGregory Neil Shapiro * Copyright (c) 2000-2001, 2005, 2008 Proofpoint, Inc. and its suppliers. 313d88268SGregory Neil Shapiro * All rights reserved. 413d88268SGregory Neil Shapiro * 513d88268SGregory Neil Shapiro * By using this file, you agree to the terms and conditions set 613d88268SGregory Neil Shapiro * forth in the LICENSE file which can be found at the top level of 713d88268SGregory Neil Shapiro * the sendmail distribution. 813d88268SGregory Neil Shapiro * 94313cc83SGregory Neil Shapiro * $Id: sem.h,v 1.11 2013-11-22 20:51:31 ca Exp $ 1013d88268SGregory Neil Shapiro */ 1113d88268SGregory Neil Shapiro 1213d88268SGregory Neil Shapiro #ifndef SM_SEM_H 1313d88268SGregory Neil Shapiro # define SM_SEM_H 1 1413d88268SGregory Neil Shapiro 1513d88268SGregory Neil Shapiro #include <sm/gen.h> 1613d88268SGregory Neil Shapiro 1713d88268SGregory Neil Shapiro /* key for semaphores */ 1813d88268SGregory Neil Shapiro # define SM_SEM_KEY (41L) 1913d88268SGregory Neil Shapiro # define SM_SEM_NO_ID (-1) 2013d88268SGregory Neil Shapiro # define SM_NO_SEM(id) ((id) < 0) 2113d88268SGregory Neil Shapiro 2213d88268SGregory Neil Shapiro # if SM_CONF_SEM > 0 2313d88268SGregory Neil Shapiro # include <sys/types.h> 2413d88268SGregory Neil Shapiro # include <sys/ipc.h> 2513d88268SGregory Neil Shapiro # include <sys/sem.h> 2613d88268SGregory Neil Shapiro 2713d88268SGregory Neil Shapiro # if SM_CONF_SEM == 2 2813d88268SGregory Neil Shapiro union semun 2913d88268SGregory Neil Shapiro { 3013d88268SGregory Neil Shapiro int val; 3113d88268SGregory Neil Shapiro struct semid_ds *buf; 3213d88268SGregory Neil Shapiro ushort *array; 3313d88268SGregory Neil Shapiro }; 3413d88268SGregory Neil Shapiro # endif /* SM_CONF_SEM == 2 */ 3513d88268SGregory Neil Shapiro 3613d88268SGregory Neil Shapiro # ifndef SEM_A 3713d88268SGregory Neil Shapiro # define SEM_A 0200 385b0945b5SGregory Neil Shapiro # endif 3913d88268SGregory Neil Shapiro # ifndef SEM_R 4013d88268SGregory Neil Shapiro # define SEM_R 0400 415b0945b5SGregory Neil Shapiro # endif 4213d88268SGregory Neil Shapiro 4313d88268SGregory Neil Shapiro # define SM_NSEM 1 4413d88268SGregory Neil Shapiro 4513d88268SGregory Neil Shapiro extern int sm_sem_start __P((key_t, int, int, bool)); 4613d88268SGregory Neil Shapiro extern int sm_sem_stop __P((int)); 4713d88268SGregory Neil Shapiro extern int sm_sem_acq __P((int, int, int)); 4813d88268SGregory Neil Shapiro extern int sm_sem_rel __P((int, int, int)); 4913d88268SGregory Neil Shapiro extern int sm_sem_get __P((int, int)); 50*2fb4f839SGregory Neil Shapiro extern int sm_semsetowner __P((int, uid_t, gid_t, MODE_T)); 5113d88268SGregory Neil Shapiro 5213d88268SGregory Neil Shapiro # else /* SM_CONF_SEM > 0 */ 5313d88268SGregory Neil Shapiro # define sm_sem_start(key, nsem, semflg, owner) 0 5413d88268SGregory Neil Shapiro # define sm_sem_stop(semid) 0 5513d88268SGregory Neil Shapiro # define sm_sem_acq(semid, semnum, timeout) 0 5613d88268SGregory Neil Shapiro # define sm_sem_rel(semid, semnum, timeout) 0 5713d88268SGregory Neil Shapiro # define sm_sem_get(semid, semnum) 0 5813d88268SGregory Neil Shapiro # endif /* SM_CONF_SEM > 0 */ 5913d88268SGregory Neil Shapiro 6013d88268SGregory Neil Shapiro #endif /* ! SM_SEM_H */ 61