|
Files |
| file | machine-dgram.c |
| | Datagram implementation of Converse NET version.
|
| file | machine-eth.c |
| | UDP implementation of Converse NET version.
|
| file | machine-gm.c |
| | Myrinet API GM implementation of Converse NET version.
|
| file | machine-ibverbs.c |
| | size = CmiMsgHeaderGetLength(msg); Ibverbs (infiniband) implementation of Converse NET version
|
| file | machine-mx.c |
| | Myrinet API GM implementation of Converse NET version.
|
| file | machine-pxshm.c |
| | size = CmiMsgHeaderGetLength(msg); 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 *
|
| file | machine-sysvshm.c |
| | size = CmiMsgHeaderGetLength(msg); sysvshm --> sysv 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 *
|
| file | machine-tcp.c |
| | TCP implementation of Converse NET version.
|
| file | machine.c |
| | Basic NET implementation of Converse machine layer.
|
Data Structures |
| struct | DgramHeader |
| struct | DgramAck |
| struct | OutgoingMsgStruct |
| struct | ExplicitDgramStruct |
| struct | ImplicitDgramStruct |
| struct | FutureMessageStruct |
| struct | OtherNodeStruct |
| struct | CmiIdleState |
| struct | PendingMsgStruct |
| struct | CmiIdleState |
| struct | CmiCb |
| struct | CmiRMA |
| struct | CmiRMAMsg |
| struct | RMAPutMsg |
| struct | infiIncTokenAckPacket |
| struct | CmiIdleState |
| struct | infiPacketHeader |
| struct | infiRdmaPacket |
| struct | infiBuffer |
| struct | infiBufferPool |
| | At the moment it is a simple pool with just a list of buffers TODO; extend it to make it an element in a linklist of pools. More...
|
| struct | infiPacketStruct |
| struct | infiBufferedBcastStruct |
| struct | infiBufferedBcastPoolStruct |
| struct | infiContext |
| struct | infiAddr |
| | Represents a qp used to send messages to another node There is one for each remote node. More...
|
| struct | infiOtherNodeData |
| struct | infiCmiChunkMetaDataStruct |
| struct | infiCmiChunkPool |
| struct | infiDirectRequestPacket |
| struct | directPollingQNodeStruct |
| struct | infiDirectHandleStruct |
| struct | infiDirectHandleTableStruct |
| struct | PendingSentMsgStruct |
| struct | CmiIdleState |
| struct | sharedBufHeader |
| | This struct is used as the first portion of a shared memory region, followed by data. More...
|
| struct | sharedBufData |
| struct | PxshmSendQ |
| struct | PxshmContext |
| struct | sharedBufHeader |
| | This struct is used as the first portion of a shared memory region, followed by data. More...
|
| struct | sharedBufData |
| struct | SysvshmSendQ |
| struct | SysvshmContext |
| struct | CmiIdleState |
Typedefs |
| typedef OutgoingMsgStruct * | OutgoingMsg |
| typedef ExplicitDgramStruct * | ExplicitDgram |
| typedef ImplicitDgramStruct * | ImplicitDgram |
| typedef enum __qp_connection_state | qp_connection_state_t |
| typedef FutureMessageStruct * | FutureMessage |
| typedef OtherNodeStruct * | OtherNode |
| typedef PendingMsgStruct * | PendingMsg |
| typedef CmiCb | CmiCb |
| typedef CmiRMA | CmiRMA |
| typedef CmiRMAMsg | CmiRMAMsg |
| typedef RMAPutMsg | RMAPutMsg |
| typedef infiPacketStruct * | infiPacket |
| typedef infiBufferedBcastPoolStruct * | infiBufferedBcastPool |
| typedef infiCmiChunkMetaDataStruct | infiCmiChunkMetaData |
| typedef directPollingQNodeStruct | directPollingQNode |
| typedef infiDirectHandleStruct | infiDirectHandle |
| typedef infiDirectHandleTableStruct | infiDirectHandleTable |
| typedef PendingSentMsgStruct * | PendingSentMsg |
Enumerations |
| enum | __qp_connection_state { QP_CONN_STATE_PRE_CONNECT = 1,
QP_CONN_STATE_CONNECTED,
QP_CONN_STATE_CONNECTION_LOST,
QP_CONN_STATE_CONNECTION_CLOSED
} |
| enum | { INFI_HEADER_DATA = 21,
INFI_DATA
} |
| | Stored in the OtherNode structure in machine-dgram.c Store the per node data for ibverbs layer. More...
|
| enum | entities { SENDER,
RECEIVER
} |
Functions |
| unsigned char | computeCheckSum (unsigned char *data, int len) |
| static void | randomCorrupt (char *data, int len) |
| static void | setspeed_atm () |
| static void | setspeed_eth () |
| static void | setspeed_gigabit () |
| static void | extract_args (char **argv) |
| infiOtherNodeData * | initInfiOtherNodeData (int node, int addr[3]) |
| void | infiPostInitialRecvs () |
| void | CommunicationServerSysvshm () |
| void | CommunicationServerPxshm () |
| static void | OtherNode_init (OtherNode node) |
| int | CmiLongSendQueue (int forNode, int longerThan) |
| | Return 1 if our outgoing message queue for this node is longer than this many bytes.
|
| void | CmiGmConvertMachineID (unsigned int *mach_id) |
| void | CmiAmmassoNodeAddressesStoreHandler (int pe, struct sockaddr_in *addr, int port) |
| static void | node_addresses_store (ChMessage *msg) |
| void | printNetStatistics (void) |
| void | GarbageCollectMsg (OutgoingMsg ogm) |
| void | DiscardImplicitDgram (ImplicitDgram dg) |
| static void | CommunicationsClock (void) |
| static void | CommunicationsClockCaller (void *ignored) |
| static void | CommunicationPeriodic (void) |
| static void | CommunicationPeriodicCaller (void *ignored) |
| void | DeliverViaNetwork (OutgoingMsg ogm, OtherNode node, int rank, unsigned int broot, int copy) |
| void | SendSpanningChildren (OutgoingMsg ogm, int root, int size, char *msg, unsigned int startpe, int nodesend) |
| void | SendHypercube (OutgoingMsg ogm, int root, int size, char *msg, unsigned int curcycle, int nodesend) |
| int | CmiBarrier () |
| int | CmiBarrierZero () |
| static CmiIdleState * | CmiNotifyGetState (void) |
| static void | CmiNotifyBeginIdle (CmiIdleState *s) |
| static void | CmiNotifyStillIdle (CmiIdleState *s) |
| void | CmiNotifyIdle (void) |
| int | CheckSocketsReady (int withDelayMs) |
| void | TransmitAckDatagram (OtherNode node) |
| void | TransmitImplicitDgram (ImplicitDgram dg) |
| void | TransmitImplicitDgram1 (ImplicitDgram dg) |
| int | TransmitAcknowledgement () |
| int | TransmitDatagram () |
| void | EnqueueOutgoingDgram (OutgoingMsg ogm, char *ptr, int len, OtherNode node, int rank, int broot) |
| void | AssembleDatagram (OtherNode node, ExplicitDgram dg) |
| void | AssembleReceivedDatagrams (OtherNode node) |
| void | IntegrateMessageDatagram (ExplicitDgram dg) |
| void | IntegrateAckDatagram (ExplicitDgram dg) |
| void | ReceiveDatagram () |
| void | CmiHandleImmediate () |
| static void | CommunicationServer (int sleepTime, int where) |
| void | CmiMachineInit (char **argv) |
| void | CmiCommunicationInit (char **argv) |
| void | CmiMachineExit () |
| static void | sendBarrierMessage (int pe) |
| static void | recvBarrierMessage () |
| void | handleGetSrc (void *msg) |
| void | handleGetDest (void *msg) |
| void | enqueue_sending (char *msg, int length, OtherNode node, int size) |
| static void | alarmcallback (void *context) |
| static int | processEvent (gm_recv_event_t *e) |
| static void | send_progress () |
| static void | alarmInterrupt (int arg) |
| static int | gmExit (int code, const char *msg) |
| static char * | getErrorMsg (gm_status_t status) |
| static void | ServiceCharmrun_nolock () |
| static void | CommunicationServer_nolock (int withDelayMs) |
| static void | processMessage (char *msg, int len) |
| void | drop_send_callback (struct gm_port *p, void *context, gm_status_t status) |
| void | send_callback (struct gm_port *p, void *context, gm_status_t status) |
| static void | send_callback_nothing (struct gm_port *p, void *context, gm_status_t status) |
| void | CmiCheckGmStatus () |
| void * | CmiDMAAlloc (int size) |
| int | CmiRegisterMemory (void *addr, unsigned int size) |
| int | CmiUnRegisterMemory (void *addr, unsigned int size) |
| void | put_callback (struct gm_port *p, void *context, gm_status_t status) |
| void * | CmiPut (unsigned int sourceId, unsigned int targetId, void *Saddr, void *Taddr, unsigned int size) |
| void | CmiPutCb (unsigned int sourceId, unsigned int targetId, void *Saddr, void *Taddr, unsigned int size, CmiRdmaCallbackFn fn, void *param) |
| void | get_callback_dest (struct gm_port *p, void *context, gm_status_t status) |
| void * | CmiGet (unsigned int sourceId, unsigned int targetId, void *Saddr, void *Taddr, unsigned int size) |
| void | CmiGetCb (unsigned int sourceId, unsigned int targetId, void *Saddr, void *Taddr, unsigned int size, CmiRdmaCallbackFn fn, void *param) |
| int | CmiWaitTest (void *obj) |
| static void | initInfiCmiChunkPools () |
| | There are INFINUMPOOLS of memory.
|
| static infiPacket | newPacket () |
| static int | pollSendCq (const int toBuffer) |
| void | createLocalQps (struct ibv_device *dev, int ibPort, int myNode, int numNodes, struct infiAddr *localAddr) |
| static uint16_t | getLocalLid (struct ibv_context *context, int port) |
| static int | checkQp (struct ibv_qp *qp) |
| static void | checkAllQps () |
| static void | send_partial_init () |
| void | copyInfiAddr (ChInfiAddr *qpList) |
| infiBufferPool * | allocateInfiBufferPool (int numRecvs, int sizePerBuffer) |
| void | postInitialRecvs (struct infiBufferPool *recvBufferPool, int numRecvs, int sizePerBuffer) |
| | Post the buffers as recv work requests.
|
| static void | increaseTokens (OtherNode node) |
| static int | pollRecvCq (const int toBuffer) |
| static void | getFreeTokens (struct infiOtherNodeData *infiData) |
| static void | EnqueuePacket (OtherNode node, infiPacket packet, int size, struct ibv_mr *dataKey) |
| | Packetize this data and send it.
|
| static void | EnqueueDummyPacket (OtherNode node, int size) |
| static void | EnqueueDataPacket (OutgoingMsg ogm, OtherNode node, int rank, char *data, int size, int broot, int copy) |
| static void | EnqueueRdmaPacket (OutgoingMsg ogm, OtherNode node) |
| static void | processAllBufferedMsgs () |
| static void | processRecvWC (struct ibv_wc *recvWC, const int toBuffer) |
| static void | processSendWC (struct ibv_wc *sendWC) |
| static void | processAsyncEvents () |
| static void | pollCmiDirectQ () |
| static void | processRdmaWC (struct ibv_wc *rdmaWC, const int toBuffer) |
| static void | insertBufferedBcast (char *msg, int size, int broot, int asm_rank) |
| static void | handoverMessage (char *newmsg, int total_size, int rank, int broot, int toBuffer) |
| static void | processMessage (int nodeNo, int len, char *msg, const int toBuffer) |
| static void | increasePostedRecvs (int nodeNo) |
| static void | processRdmaRequest (struct infiRdmaPacket *rdmaPacket, int fromNodeNo, int isBuffered) |
| static void | processRdmaAck (struct infiRdmaPacket *rdmaPacket) |
| static void | EnqueueRdmaAck (struct infiRdmaPacket *rdmaPacket) |
| static void | processDirectWC (struct infiRdmaPacket *rdmaPacket) |
| static infiBufferedBcastPool | createBcastPool () |
| static void | processBufferedBcast () |
| static void | processBufferedRdmaAcks () |
| static void | processBufferedRdmaRequests () |
| infiCmiChunkMetaData * | registerMultiSendMesg (char *msg, int size) |
| static void * | getInfiCmiChunkThread (int dataSize) |
| static void * | getInfiCmiChunk (int dataSize) |
| void * | infi_CmiAlloc (int size) |
| void | infi_CmiFreeDirect (void *ptr) |
| void | infi_CmiFree (void *ptr) |
| void | addHandleToPollingQ (infiDirectHandle *handle) |
| static infiDirectHandleTable ** | createHandleTable () |
| static void | calcHandleTableIdx (int handle, int *tableIdx, int *idx) |
| static void | initializeLastDouble (void *recvBuf, int recvBufSize, double initialValue) |
| infiDirectUserHandle | CmiDirect_createHandle (int senderNode, void *recvBuf, int recvBufSize, void(*callbackFnPtr)(void *), void *callbackData, double initialValue) |
| | To be called on the receiver to create a handle and return its number.
|
| void | CmiDirect_assocLocalBuffer (struct infiDirectUserHandle *userHandle, void *sendBuf, int sendBufSize) |
| void | CmiDirect_put (struct infiDirectUserHandle *userHandle) |
| void | CmiDirect_readyMark (struct infiDirectUserHandle *userHandle) |
| void | CmiDirect_readyPollQ (struct infiDirectUserHandle *userHandle) |
| void | CmiDirect_ready (struct infiDirectUserHandle *userHandle) |
| static int | receivedDirectMessage (infiDirectHandle *handle) |
| static const char * | getErrorMsg (mx_return_t rc) |
| static void | processStatusCode (mx_status_t status) |
| static void | PumpMsgs (int getone) |
| static void | ReleaseSentMsgs (void) |
| static void | PumpEvents (int getone) |
| void | recv_callback (void *context, uint64_t match_info, int length) |
| void | processFutureMessages (OtherNode node) |
| void | EnqueueOutgoingDgram (OutgoingMsg ogm, char *ptr, int dlen, OtherNode node, int rank, int broot, int copy) |
| void | CmiMXMakeConnection () |
| void | calculateNodeSizeAndRank (char **) |
| void | setupSharedBuffers () |
| void | initAllSendQs () |
| void | CmiInitPxshm (char **argv) |
| void | tearDownSharedBuffers () |
| void | CmiExitPxshm () |
| int | CmiValidPxshm (OutgoingMsg ogm, OtherNode node) |
| int | PxshmRank (int dst) |
| void | pushSendQ (PxshmSendQ *q, OutgoingMsg msg) |
| int | sendMessage (OutgoingMsg ogm, sharedBufData *dstBuf, PxshmSendQ *dstSendQ) |
| int | flushSendQ (int dstRank) |
| void | CmiSendMessagePxshm (OutgoingMsg ogm, OtherNode node, int rank, unsigned int broot) |
| void | CmiInitSysvshm (char **argv) |
| void | CmiExitSysvshm () |
| int | CmiValidSysvshm (OutgoingMsg ogm, OtherNode node) |
| int | SysvshmRank (int dst) |
| void | pushSendQ (SysvshmSendQ *q, OutgoingMsg msg) |
| int | sendMessage (OutgoingMsg ogm, sharedBufData *dstBuf, SysvshmSendQ *dstSendQ) |
| void | CmiSendMessageSysvshm (OutgoingMsg ogm, OtherNode node, int rank, unsigned int broot) |
| void | emptyAllRecvBufs () |
| void | flushAllSendQs () |
| static void | CmiNotifyStillIdleSysvshm (CmiIdleState *s) |
| static void | CmiNotifyBeginIdleSysvshm (CmiIdleState *s) |
| void | createShmObjectsAndSems (sharedBufData **bufs, int *bufnames, int issend) |
| void | initSendQ (SysvshmSendQ *q, int size) |
| OutgoingMsg | popSendQ (SysvshmSendQ *q) |
| void | emptyRecvBuf (sharedBufData *recvBuf) |
| static void | handoverSysvshmMessage (char *newmsg, int total_size, int rank, int broot) |
| void | ReceiveDatagram (int node) |
| int | TransmitDatagram (int pe) |
| static void | CmiCheckSocks () |
| int | CheckSocketsReady (int withDelayMs, int output) |
| static char * | getMaxBuf () |
| static void | freeMaxBuf (char *buf) |
| static void | IntegrateMessageDatagram (char **msg, int len) |
| static void | open_tcp_sockets () |
| static void | InternalPrintf (const char *f, va_list l) |
| int | printf (const char *fmt,...) |
| int | CmemInsideMem () |
| void | CmemCallWhenMemAvail () |
| static void | ConverseRunPE (int everReturn) |
| void | CmiYield (void) |
| void | ConverseCommonExit (void) |
| void | TokenUpdatePeriodic () |
| void | getAvailSysMem () |
| static void | CmiDestoryLocks () |
| static void | machine_exit (int status) |
| static void | charmrun_abort (const char *) |
| static void | KillEveryone (const char *msg) |
| static void | KillEveryoneCode (int n) |
| static void | KillOnAllSigs (int sigNo) |
Variables |
| static int | Cmi_max_dgram_size |
| static int | Cmi_os_buffer_size |
| static int | Cmi_window_size |
| static int | Cmi_half_window |
| static double | Cmi_delay_retransmit |
| static double | Cmi_ack_delay |
| static int | Cmi_dgram_max_data |
| static int | Cmi_comm_periodic_delay |
| static int | Cmi_comm_clock_delay |
| static int | writeableAcks |
| static int | writeableDgrams |
| static OtherNode * | nodes_by_pe |
| static OtherNode | nodes |
| static char | statstr [10000] |
| | Printing Net Statistics -- milind.
|
| static ExplicitDgram | Cmi_freelist_explicit |
| static ImplicitDgram | Cmi_freelist_implicit |
| static int | ctrlskt_ready_read |
| static int | dataskt_ready_read |
| static int | dataskt_ready_write |
| static double | Cmi_ack_last |
| static double | Cmi_check_last |
| int | CmiIdleState::nIdles |
| CmiState | CmiIdleState::cs |
| int | getSrcHandler |
| int | getDestHandler |
| static gm_alarm_t | gmalarm |
| static FILE * | gmf |
| static int * | gm_stats |
| static int | possible_streamed = 0 |
| static int | defrag = 0 |
| static int | maxQueueLength = 0 |
| static int | pendinglen = 0 |
| static PendingMsg | pend_freelist = NULL |
| static char * | msgpool [MAXMSGLEN] |
| static int | msgNums = 0 |
| static int | maxMsgSize = 0 |
| static int | maxsize |
| enum ibv_mtu | mtu = IBV_MTU_2048 |
| static int | page_size |
| static int | mtu_size |
| static int | packetSize |
| static int | dataSize |
| static int | rdma |
| static int | rdmaThreshold |
| static int | firstBinSize |
| static int | blockAllocRatio |
| static int | blockThreshold |
| static int | maxRecvBuffers |
| static int | maxTokens |
| static int | sendPacketPoolSize |
| static double | _startTime = 0 |
| static int | regCount |
| static int | pktCount |
| static int | msgCount |
| static int | minTokensLeft |
| static double | regTime |
| static double | processBufferedTime |
| static int | processBufferedCount |
| PCQueue ** | queuePool |
| static int | TESTneighbor |
| static int | TESTfrees |
| int | infiPacketHeader::nodeNo |
| int | infiPacketHeader::psn |
| int | infiRdmaPacket::type |
| ibv_mr | infiRdmaPacket::key |
| ibv_mr * | infiRdmaPacket::keyPtr |
| int | infiRdmaPacket::remoteSize |
| char * | infiRdmaPacket::remoteBuf |
| void * | infiRdmaPacket::localBuffer |
| OutgoingMsg | infiRdmaPacket::ogm |
| infiRdmaPacket * | infiRdmaPacket::next |
| infiRdmaPacket * | infiRdmaPacket::prev |
| char * | infiBuffer::buf |
| int | infiBuffer::size |
| ibv_mr * | infiBuffer::key |
| infiBuffer * | infiBufferPool::buffers |
| infiBufferPool * | infiBufferPool::next |
| int | infiPacketStruct::size |
| infiPacketHeader | infiPacketStruct::header |
| ibv_mr * | infiPacketStruct::keyHeader |
| OtherNodeStruct * | infiPacketStruct::destNode |
| infiPacketStruct * | infiPacketStruct::next |
| OutgoingMsg | infiPacketStruct::ogm |
| ibv_sge | infiPacketStruct::elemList [2] |
| ibv_send_wr | infiPacketStruct::wr |
| int | infiBufferedBcastStruct::size |
| int | infiBufferedBcastStruct::broot |
| int | infiBufferedBcastStruct::asm_rank |
| int | infiBufferedBcastStruct::valid |
| infiBufferedBcastStruct | infiBufferedBcastPoolStruct::bcastList [BCASTLIST_SIZE] |
| int | infiBufferedBcastPoolStruct::count |
| fd_set | infiContext::asyncFds |
| timeval | infiContext::tmo |
| int | infiContext::ibPort |
| ibv_pd * | infiContext::pd |
| ibv_cq * | infiContext::sendCq |
| ibv_cq * | infiContext::recvCq |
| ibv_srq * | infiContext::srq |
| ibv_qp ** | infiContext::qp |
| infiAddr * | infiContext::localAddr |
| infiPacket | infiContext::infiPacketFreeList |
| infiBufferPool * | infiContext::recvBufferPool |
| infiPacketHeader | infiContext::header |
| int | infiContext::srqSize |
| int | infiContext::sendCqSize |
| int | infiContext::recvCqSize |
| int | infiContext::tokensLeft |
| infiBufferedBcastPool | infiContext::bufferedBcastList |
| infiRdmaPacket * | infiContext::bufferedRdmaAcks |
| infiRdmaPacket * | infiContext::bufferedRdmaRequests |
| int | infiContext::insideProcessBufferedBcasts |
| static struct infiContext * | context |
| int | infiOtherNodeData::state |
| int | infiOtherNodeData::totalTokens |
| int | infiOtherNodeData::tokensLeft |
| int | infiOtherNodeData::nodeNo |
| int | infiOtherNodeData::postedRecvs |
| int | infiOtherNodeData::broot |
| int | infiOtherNodeData::psn |
| int | infiOtherNodeData::recvPsn |
| int | infiCmiChunkMetaDataStruct::poolIdx |
| void * | infiCmiChunkMetaDataStruct::nextBuf |
| infiCmiChunkHeaderStruct * | infiCmiChunkMetaDataStruct::owner |
| int | infiCmiChunkMetaDataStruct::count |
| int | infiCmiChunkMetaDataStruct::parentPe |
| void * | infiCmiChunkPool::startBuf |
| int | infiCmiChunkPool::count |
| infiCmiChunkPool ** | infiCmiChunkPools |
| static unsigned int | _count = 0 |
| int | errno |
| static int | _countAsync = 0 |
| int | infiDirectRequestPacket::handle |
| ibv_mr | infiDirectRequestPacket::senderKey |
| void * | infiDirectRequestPacket::senderBuf |
| int | infiDirectRequestPacket::senderBufSize |
| directPollingQNodeStruct * | directPollingQNodeStruct::next |
| double * | directPollingQNodeStruct::lastDouble |
| void * | infiDirectHandleStruct::buf |
| int | infiDirectHandleStruct::size |
| ibv_mr * | infiDirectHandleStruct::key |
| void(* | infiDirectHandleStruct::callbackFnPtr )(void *) |
| void * | infiDirectHandleStruct::callbackData |
| infiDirectUserHandle | infiDirectHandleStruct::userHandle |
| infiRdmaPacket * | infiDirectHandleStruct::rdmaPacket |
| directPollingQNode | infiDirectHandleStruct::pollingQNode |
| infiDirectHandleTableStruct * | infiDirectHandleTableStruct::next |
| directPollingQNode * | headDirectPollingQ = NULL |
| directPollingQNode * | tailDirectPollingQ = NULL |
| static infiDirectHandleTable ** | sendHandleTable = NULL |
| static infiDirectHandleTable ** | recvHandleTable = NULL |
| static int * | recvHandleCount = NULL |
| static PendingSentMsg | pmpool [MAXPMS] |
| static int | pmNums = 0 |
| static PendingSentMsg | sent_handles = NULL |
| static PendingSentMsg | sent_handles_end = NULL |
| CmiUInt8 | MATCH_FILTER = 0x11111111FFFFFFFFL |
| CmiUInt8 | MATCH_MASK = 0xffffffffffffffffL |
| static int | maxsize |
| int | sharedBufHeader::bytes |
| OSSpinLock | sharedBufHeader::lock |
| volatile int | sharedBufHeader::flagSender |
| volatile int | sharedBufHeader::flagReceiver |
| volatile int | sharedBufHeader::turn |
| sharedBufHeader * | |