/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* onc720 src/oncplus/usr/include/nsl/rpc_mt.h 1.6.1.1                    */
/*                                                                        */
/*                                                                        */
/*                                                                        */
/* COPYRIGHT International Business Machines Corp. 1996,2014              */
/* All Rights Reserved                                                    */
/*                                                                        */
/* IBM_PROLOG_END_TAG                                                     */

/*
 *	Contains the mt libraries include definitions
 */

/*** #pragma ident	"@(#)rpc_mt.h	1.8	94/10/19 SMI" ***/

#ifndef _RPC_RPC_MT_H
#define _RPC_RPC_MT_H

#ifdef _AIX

#include <pthread.h>
#include <pth_nfs_private.h>

#define DEFAULTMUTEX	PTHREAD_MUTEX_INITIALIZER
#define dgettext(x, s) s	/*** I18N stuff ***/


#include <sys/param.h>
#endif


#define MUTEX_HELD(m) mutex_held(m)

#define	MT_ASSERT_HELD(x)

extern int __libnsl_initialized;

#define MASKVAL (POLLIN | POLLPRI | POLLRDNORM | POLLRDBAND)
#define POLLFD_EXTEND           64
#define POLLFD_SHRINK           (2 * POLLFD_EXTEND)
#define POLLFD_SET(x, y)        { \
                                        (y)[(x)].fd = (x); \
                                        (y)[(x)].events = MASKVAL; \
                                }
#define POLLFD_CLR(x, y)        { \
                                        (y)[(x)].fd = -1; \
                                        (y)[(x)].events = 0; \
                                        (y)[(x)].revents = 0; \
                                }
#define POLLFD_ISSET(x, y)      ((y)[(x)].fd >= 0)

extern int __rpc_max_nofile;
extern int __rpc_use_pollfd_done;
extern int __rpc_rlim_max(void);

#define RPC_MAX_NOFILE  (__rpc_max_nofile ? __rpc_max_nofile : \
                                (__rpc_max_nofile = __rpc_rlim_max()))
#define	RPC_FD_NOTIN_FDSET(x)	(!__rpc_use_pollfd_done && (x) >= FD_SETSIZE)
#define	RPC_MAX_FD	(__rpc_use_pollfd_done ? RPC_MAX_NOFILE : FD_SETSIZE)

#define DELETE_UNMASKABLE_SIGNAL_FROM_SET(s)    { \
                                (void) sigdelset((s), SIGSEGV); \
                                (void) sigdelset((s), SIGBUS); \
                                (void) sigdelset((s), SIGFPE); \
                                (void) sigdelset((s), SIGILL); \
                                }

extern int svc_pollfd_allocd;
extern int svc_npollfds;
extern int svc_npollfds_set;

#include <nsl/thread.h>
#include <nsl/synch.h>

#define _sigfillset sigfillset
#endif /* _RPC_RPC_MT_H */
