arch/util/machine-pxshm.C File Reference
pxshm --> posix shared memory based network layer for communication between processes on the same 
node This is not going to be the primary mode of communication but only for messages below a certain size between processes on the same 
node for non-smp version only * contains only pxshm code for
More...
Go to the source code of this file.
 | 
 Data Structures | 
| struct   | sharedBufHeader | 
|   | This struct is used as the first portion of a shared memory region, followed by data.  More...
  | 
| struct   | sharedBufData | 
| struct   | OutgoingMsgRec | 
| struct   | PxshmSendQ | 
| struct   | PxshmContext | 
 Enumerations | 
| enum   | entities { SENDER, 
RECEIVER, 
SENDER, 
RECEIVER
 } | 
 Functions | 
| void  | calculateNodeSizeAndRank (char **) | 
| void  | setupSharedBuffers (void) | 
| void  | initAllSendQs (void) | 
| void  | CmiExitPxshm (void) | 
| static void  | cleanupOnAllSigs (int signo) | 
| void  | CmiInitPxshm (char **argv) | 
| void  | tearDownSharedBuffers (void) | 
| void  | freeSharedBuffers (void) | 
| static int  | CmiValidPxshm (int node, int size) | 
| int  | PxshmRank (int dstnode) | 
| void  | pushSendQ (PxshmSendQ *q, char *msg, int size, int *refcount) | 
| int  | sendMessage (char *msg, int size, int *refcount, sharedBufData *dstBuf, PxshmSendQ *dstSendQ) | 
| int  | flushSendQ (PxshmSendQ *q) | 
| int  | sendMessageRec (OutgoingMsgRec *omg, sharedBufData *dstBuf, PxshmSendQ *dstSendQ) | 
| void  | CmiSendMessagePxshm (char *msg, int size, int dstnode, int *refcount) | 
 Variables | 
| static int  | SHMBUFLEN = (1024 * 1024 * 4) | 
| static int  | SHMMAXSIZE = (1024 * 1024) | 
| static int  | SENDQSTARTSIZE = 256 | 
| static int  | sendQ_head_index = -1 | 
| PxshmContext *  | pxshmContext = NULL | 
| static int  | pxshm_freed = 0 | 
Detailed Description
pxshm --> posix shared memory based network layer for communication between processes on the same 
node This is not going to be the primary mode of communication but only for messages below a certain size between processes on the same 
node for non-smp version only * contains only pxshm code for
There are three options here for synchronization: PXSHM_FENCE is the default. It uses memory fences PXSHM_OSSPINLOCK will cause OSSpinLock's to be used (available on OSX) PXSHM_LOCK will cause POSIX semaphores to be used
created by Sayantan Chakravorty, sayantan@gmail.com ,21st March 2007 
Definition in file machine-pxshm.C.