Files
Arquivotheca.Solaris-2.5/lib/libsocket/socket/sockmt.h
seta75D 7c4988eac0 Init
2021-10-11 19:38:01 -03:00

64 lines
1.6 KiB
C
Executable File

/*
* Copyright (c) 1992 by Sun Microsystems, Inc
*/
#pragma ident "@(#)sockmt.h 1.9 94/06/03 SMI"
#include <synch.h>
#include <thread.h>
#ifdef _REENTRANT
#define MUTEX_LOCK_SIGMASK(lock, oldmask) \
{ sigset_t newmask; \
(void) _sigfillset(&newmask); \
_thr_sigsetmask(SIG_SETMASK, &newmask, &(oldmask)); \
_mutex_lock(lock); \
}
#define MUTEX_UNLOCK_SIGMASK(lock, oldmask) \
{ sigset_t tmpmask; \
_mutex_unlock(lock); \
_thr_sigsetmask(SIG_SETMASK, &(oldmask), &tmpmask); \
}
#define MUTEX_LOCK_PROCMASK(lock, oldmask) \
{ sigset_t newmask; \
(void) _sigfillset(&newmask); \
(void) _sigprocmask(SIG_SETMASK, &newmask, &(oldmask)); \
_mutex_lock(lock); \
}
#define MUTEX_UNLOCK_PROCMASK(lock, oldmask) \
{ sigset_t tmpmask; \
_mutex_unlock(lock); \
(void) _sigprocmask(SIG_SETMASK, &(oldmask), &tmpmask); \
}
#else /* _REENTRANT */
#define MUTEX_LOCK_SIGMASK(lock, oldmask)
#define MUTEX_UNLOCK_SIGMASK(lock, oldmask)
#define MUTEX_LOCK_PROCMASK(lock, oldmask) \
{ sigset_t newmask; \
(void) _sigfillset(&newmask); \
(void) _sigprocmask(SIG_SETMASK, &newmask, &(oldmask)); \
}
#define MUTEX_UNLOCK_PROCMASK(lock, oldmask) \
{ sigset_t tmpmask; \
(void) _sigprocmask(SIG_SETMASK, &(oldmask), &tmpmask); \
}
#endif /* _REENTRANT */
#ifdef lint
#define _thr_sigsetmask(how, set, oset) thr_sigsetmask(how, set, oset)
#define _mutex_lock(m) mutex_lock(m)
#define _mutex_unlock(m) mutex_unlock(m)
#define _ioctl(fd, req, arg) ioctl(fd, req, arg)
#define _mknod(path, mode, dev) mknod(path, mode, dev)
#define _stat(path, buf) stat(path, buf)
#define _fcntl(fd, cmd, arg) fcntl(fd, cmd, arg)
#define _listen(fd, count) listen(fd, count)
#endif /* lint */