⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p4_macros.h

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 H
字号:
#define get_proc_info(id) (&(p4_global->proctable[id]))#ifndef FD_ZERO#    define FD_ZERO(ptr) ((ptr)->fds_bits[0]) = 0;#    define FD_SET(fd,ptr) ((ptr)->fds_bits[0]) |= 1 << fd;#    define FD_ISSET(fd,ptr) (((ptr)->fds_bits[0]) & (1 << fd))#endif#ifdef P4SYSV/* * Select uses bit masks of file descriptors in longs. * These macros manipulate such bit fields (the filesystem macros use chars). * FD_SETSIZE may be defined by the user. */#ifndef FD_SETSIZE#define FD_SETSIZE      256#endif#ifndef howmany#define howmany(x, y)   (((x)+((y)-1))/(y))#endif#ifndef NFDBITStypedef long    fd_mask;#define NFDBITS (sizeof(fd_mask) * 8)           /* bits per mask */typedef struct fd_set {	fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];} fd_set;#endif#endif/* If strings.h is defined, we have index (I hope!) */#if !defined(HAVE_STRINGS_H)#if defined(P4SYSV)#    ifndef index#        define index(S,C)        strchr((S),(C))#    endif#    ifndef rindex#        define rindex(S,C)       strrchr((S),(C))#    endif#endif#endif#if defined(P4SYSV)#    ifndef bcopy#        define bcopy(x,y,len)    memcpy((y),(x),(len))#        define bcmp(x,y,len)     memcmp((y),(x),(len))#        define bzero(x,len)      memset((x),0,(len))#    endif#endif#define SOFTERR (p4_local->soft_errors)#define SYSCALL_P4(RC,SYSCALL)                       \	do {                                         \	    RC = SYSCALL;                            \	} while (RC < 0 && errno == EINTR);/* Signal blocking.  Block and then release the old sig */#if defined(HAVE_SIGPROCMASK)#define P4_BLOCK_SIG_DECL #define P4_BLOCK_SIG(sig) \    { sigset_t set;\    sigemptyset( &set );\    sigaddset( &set, sig );\    sigprocmask( SIG_BLOCK, &set, (sigset_t *)0 );\    }#define P4_RELEASE_SIG(sig) \    { sigset_t set;\    sigemptyset( &set );\    sigaddset( &set, sig );\    sigprocmask( SIG_UNBLOCK, &set, (sigset_t *)0 ); \    }#elif defined(HAVE_SIGHOLD)#define P4_BLOCK_SIG_DECL #define P4_BLOCK_SIG(sig)  sighold(sig)#define P4_RELEASE_SIG(sig) sigrelse(sig)#elif defined(HAVE_SIGBLOCK) && defined(HAVE_SIGSETMASK)#define P4_BLOCK_SIG_DECL     int blockoldmask#define P4_BLOCK_SIG(sig)     blockoldmask = sigblock(sigmask(sig)))#define P4_RELEASE_SIG(sig)   sigsetmask(blockoldmask)#else#error 'Unknown signal handling'#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -