envelope Class Reference

The "envelope" sits at the start of every Charm++ message. More...

#include <envelope.h>

Collaboration diagram for envelope:

Collaboration graph
[legend]

Public Member Functions

void pup (PUP::er &p)
UInt getEvent (void) const
void setEvent (const UInt e)
UInt getRef (void) const
void setRef (const UShort r)
UChar getQueueing (void) const
void setQueueing (const UChar q)
UChar getMsgtype (void) const
void setMsgtype (const UChar m)
UChar isUsed (void)
void setUsed (const UChar u)
void setUsed (const UChar u)
UChar getMsgIdx (void) const
void setMsgIdx (const UChar idx)
UInt getTotalsize (void) const
void setTotalsize (const UInt s)
UChar isPacked (void) const
void setPacked (const UChar p)
UShort getPriobits (void) const
void setPriobits (const UShort p)
UShort getPrioWords (void) const
UShort getPrioBytes (void) const
void * getPrioPtr (void) const
UShort getEpIdx (void) const
void setEpIdx (const UShort idx)
UInt getSrcPe (void) const
void setSrcPe (const UInt s)
UInt getCount (void) const
void setCount (const UInt c)
UInt getRoIdx (void) const
void setRoIdx (const UInt r)
UInt isForAnyPE (void)
void setForAnyPE (UInt f)
void * getVidPtr (void) const
void setVidPtr (void *p)
void * getObjPtr (void) const
void setObjPtr (void *p)
CkGroupID getGroupNum (void) const
void setGroupNum (const CkGroupID g)
void setGroupEpoch (int epoch)
int getGroupEpoch (void)
void setRednMgr (CkNodeGroupID r)
CkNodeGroupID getRednMgr ()
CkGroupIDgetsetArrayMgr (void)
UShortgetsetArrayEp (void)
UShortgetsetArrayBcastEp (void)
UIntgetsetArraySrcPe (void)
UChargetsetArrayHops (void)
int getArrayIfNotThere (void)
void setArrayIfNotThere (int nt)
intgetsetArrayListenerData (void)
CkArrayIndexMaxgetsetArrayIndex (void)

Static Public Member Functions

static envelopealloc (const UChar type, const UInt size=0, const UShort prio=0)
static void setSrcPe (char *env, const UInt s)

Private Attributes

char core [CmiReservedHeaderSize]
 Converse message envelope.
u_type type
 Depends on message type (attribs.mtype).
UShort ref
 Used by futures.
s_attribs attribs
UChar align [CkMsgAlignOffset(CmiReservedHeaderSize+sizeof(u_type)+sizeof(UShort)+sizeof(s_attribs))]
UShort priobits
 Number of bits of priority data after user data.
UShort epIdx
 Entry point to call.
UInt pe
 source processor
UInt event
 used by projections
UInt totalsize
 Byte count from envelope start to end of priobits.

Data Structures

struct  s_attribs
union  u_type
 This union stores the type-specific message information. More...

Detailed Description

The "envelope" sits at the start of every Charm++ message.

It stores information about the handler and destination of the charm++ message that follows, and what to do with it on the receiving side.

A Charm++ message's memory layout has the Charm envelope ("envelope" class) first, which includes a Converse envelope as its first field. After the Charm envelope is a variable-length amount of user data, and finally the priority data stored as ints.

 Envelope pointer        \
 Converse message pointer -> [ [ Converse envelope ]       ]
                             [       Charm envelope        ] 
 User message pointer     -> [ User data ... ]
 Priority pointer         -> [ Priority ints ... ]

The "message pointers" passed to and from users bypass the envelope and point *directly* to the user data--the routine "EnvToUsr" below adjusts an envelope (or converse message) pointer into this direct-to-user pointer. There is a corresponding routine "UsrToEnv" which takes the user data pointer and returns a pointer to the envelope/converse message.

Unfortunately, in the guts of Charm++ it's not always clear whether you've been given a converse or user message pointer, as both tend to be passed as void *. Confusing the two will invariably result in data corruption and bizarre crashes.

FIXME: Make CkMessage inherit from envelope, which would unify converse, envelope, and user message pointers.

Definition at line 107 of file envelope.h.


Member Function Documentation

void envelope::pup ( PUP::er p  ) 

Definition at line 91 of file debug-message.C.

References envelope::u_type::array, ArrayEltInitMsg, attribs, BocInitMsg, envelope::u_type::chare, core, epIdx, event, FillVidMsg, ForArrayEltMsg, ForBocMsg, ForChareMsg, ForNodeBocMsg, ForVidMsg, getMsgtype(), getPrioBytes(), getPrioPtr(), envelope::u_type::group, NewChareMsg, NewVChareMsg, p, pe, ref, envelope::u_type::roData, RODataMsg, envelope::u_type::roMsg, ROMsgMsg, and type.

Referenced by CkPupMessage().

UInt envelope::getEvent ( void   )  const [inline]

Definition at line 165 of file envelope.h.

References event.

Referenced by TraceProjections::beginExecute(), charm_beginExecute(), charm_dequeueMsg(), charm_enqueueMsg(), ComlibSectionInfo::getNewMulticastMessage(), CkLocRec_local::invokeEntry(), CkMessageReplay::isNext(), CkMessageReplay::processMessage(), CkMessageRecorder::processMessage(), and TraceProjections::traceAddThreadListeners().

void envelope::setEvent ( const UInt  e  )  [inline]

Definition at line 166 of file envelope.h.

References event.

Referenced by alloc(), TraceRecordReplay::beginExecute(), charm_creation(), TraceRecordReplay::creation(), TraceProjections::creation(), TraceProjections::creationMulticast(), and ComlibSectionInfo::getNewMulticastMessage().

UInt envelope::getRef ( void   )  const [inline]

Definition at line 167 of file envelope.h.

References ref.

Referenced by CkGetRefNum(), FutureBOC::SetFuture(), and FutureBOC::SetSema().

void envelope::setRef ( const UShort  r  )  [inline]

Definition at line 168 of file envelope.h.

References ref.

Referenced by CkCreateAttachedFuture(), CkCreateAttachedFutureSend(), CkSemaSignal(), CkSendToFuture(), and CkSetRefNum().

UChar envelope::getQueueing ( void   )  const [inline]

Definition at line 169 of file envelope.h.

References attribs, and envelope::s_attribs::queueing.

Referenced by _enqObjQueue(), _infoFn(), _ObjectQHandler(), _skipCldEnqueue(), and _skipCldHandler().

void envelope::setQueueing ( const UChar  q  )  [inline]

Definition at line 170 of file envelope.h.

References attribs, and envelope::s_attribs::queueing.

Referenced by MsgPool::_alloc(), CkAllocateMarshallMsgNoninline(), CkAllocMsg(), CkSetQueueing(), and MsgPacker::deliver().

UChar envelope::getMsgtype ( void   )  const [inline]

Definition at line 171 of file envelope.h.

References attribs, and envelope::s_attribs::mtype.

Referenced by _exitHandler(), _initHandler(), _processBufferedMsgs(), _processHandler(), TraceProjections::beginExecute(), charm_beginExecute(), charm_creation(), charm_dequeueMsg(), charm_enqueueMsg(), CkAllocBuffer(), CkArrayMessageObjectPtr(), CkFindObjectPtr(), CpdPupMessage(), TraceProjections::creation(), TraceProjections::creationMulticast(), getCount(), getGroupNum(), getObjPtr(), getRoIdx(), getVidPtr(), isForAnyPE(), TraceProjections::messageRecv(), CkMessageReplay::processMessage(), CkMessageRecorder::processMessage(), pup(), setCount(), setForAnyPE(), setGroupNum(), setObjPtr(), setRoIdx(), setVidPtr(), and TraceProjections::traceAddThreadListeners().

void envelope::setMsgtype ( const UChar  m  )  [inline]

Definition at line 172 of file envelope.h.

References attribs, and envelope::s_attribs::mtype.

Referenced by _deliverForNodeBocMsg(), _exitHandler(), _initCharm(), _prepareMsg(), _prepareMsgBranch(), _prepareOutgoingArrayMsg(), _processForNodeBocMsg(), alloc(), CkCreateChare(), CkCreateGroup(), CkCreateNodeGroup(), ComlibManager::GroupBroadcast(), ComlibManager::GroupSend(), and VidBlock::msgDeliver().

UChar envelope::isUsed ( void   )  [inline]

Definition at line 174 of file envelope.h.

References attribs, and envelope::s_attribs::isUsed.

void envelope::setUsed ( const UChar  u  )  [inline]

Definition at line 175 of file envelope.h.

References attribs, and envelope::s_attribs::isUsed.

Referenced by ComlibManager::ArraySectionSend(), ComlibManager::ArraySend(), MsgPacker::deliver(), ComlibArrayInfo::deliver(), ComlibManager::GroupBroadcast(), ComlibManager::GroupSend(), ComlibArrayInfo::localMulticast(), ComlibManager::multicast(), recv_array_msg(), and NodeMulticast::recvHandler().

void envelope::setUsed ( const UChar  u  )  [inline]

Definition at line 177 of file envelope.h.

UChar envelope::getMsgIdx ( void   )  const [inline]

Definition at line 179 of file envelope.h.

References attribs, and envelope::s_attribs::msgIdx.

Referenced by _createGroup(), _createNodeGroup(), CkCopyMsg(), CkPackMessage(), CkUnpackMessage(), CpdPupMessage(), and CkMessageReplay::processMessage().

void envelope::setMsgIdx ( const UChar  idx  )  [inline]

Definition at line 180 of file envelope.h.

References attribs, and envelope::s_attribs::msgIdx.

Referenced by MsgPool::_alloc(), CkAllocMsg(), and MsgPacker::deliver().

UInt envelope::getTotalsize ( void   )  const [inline]

Definition at line 181 of file envelope.h.

References totalsize.

Referenced by _bcastQD1(), _bcastQD2(), _CkExit(), _createGroup(), _createNodeGroup(), _exitHandler(), _handlePhase1(), _handlePhase2(), _infoFn(), _initCharm(), _noCldEnqueue(), _noCldEnqueueMulti(), _noCldNodeEnqueue(), _processBufferedMsgs(), _processNewVChareMsg(), _sendStats(), _sendTriggers(), _skipCldEnqueue(), CkMulticastMgr::ArraySectionSend(), NullLB::AtSync(), TraceProjections::beginExecute(), charm_beginExecute(), charm_creation(), CkAllocBuffer(), CkCopyMsg(), CkStartQD(), CpdPupMessage(), TraceProjections::creation(), TraceProjections::creationMulticast(), PipeBroadcastStrategy::doneInserting(), NodeMulticast::doneInserting(), MPIStrategy::doneInserting(), KDirectMulticastStrategy::doneInserting(), E2MHandler(), StreamingStrategy::flushPE(), RectMulticastStrategy::forwardMulticast(), ComlibSectionInfo::getNewMulticastMessage(), BroadcastStrategy::handleHypercube(), RectMulticastStrategy::handleMessage(), DirectMulticastStrategy::handleMessage(), RectMulticastStrategy::handleMessageForward(), KDirectMulticastStrategy::handleMulticastMessage(), BroadcastStrategy::handleTree(), StreamingStrategy::insertMessage(), EachToManyMulticastStrategy::insertMessage(), CkLocRec_local::invokeEntry(), CkMessageReplay::isNext(), TraceProjections::messageRecv(), MsgPacker::MsgPacker(), CkMessageReplay::processMessage(), CkMessageRecorder::processMessage(), QdState::propagate(), propagate_handler(), recv_array_msg(), NodeMulticast::recvHandler(), RectMulticastStrategy::remoteMulticast(), DirectMulticastStrategy::remoteMulticast(), RectMulticastStrategy::sendRectDest(), and TraceProjections::traceAddThreadListeners().

void envelope::setTotalsize ( const UInt  s  )  [inline]

Definition at line 182 of file envelope.h.

References totalsize.

Referenced by CkAllocBuffer(), and MsgPacker::deliver().

UChar envelope::isPacked ( void   )  const [inline]

Definition at line 183 of file envelope.h.

References attribs, and envelope::s_attribs::isPacked.

Referenced by _initHandler(), _processHandler(), CkAllocBuffer(), CkCopyMsg(), CkPackMessage(), CkPupMessage(), CkSendMsgInline(), and CkUnpackMessage().

void envelope::setPacked ( const UChar  p  )  [inline]

Definition at line 184 of file envelope.h.

References attribs, and envelope::s_attribs::isPacked.

Referenced by alloc(), CkAllocBuffer(), CkCopyMsg(), CkPackMessage(), CkUnpackMessage(), MsgPacker::deliver(), and ComlibArrayInfo::localMulticast().

UShort envelope::getPriobits ( void   )  const [inline]

Definition at line 185 of file envelope.h.

References priobits.

Referenced by _enqObjQueue(), _infoFn(), _ObjectQHandler(), _skipCldEnqueue(), _skipCldHandler(), CkAllocBuffer(), and CpdPupMessage().

void envelope::setPriobits ( const UShort  p  )  [inline]

Definition at line 186 of file envelope.h.

References priobits.

UShort envelope::getPrioWords ( void   )  const [inline]

Definition at line 187 of file envelope.h.

References priobits.

Referenced by getPrioBytes().

UShort envelope::getPrioBytes ( void   )  const [inline]

Definition at line 188 of file envelope.h.

References getPrioWords().

Referenced by CkAllocateMarshallMsgNoninline(), CkAllocBuffer(), getPrioPtr(), and pup().

void* envelope::getPrioPtr ( void   )  const [inline]

Definition at line 189 of file envelope.h.

References getPrioBytes(), and totalsize.

Referenced by _enqObjQueue(), _infoFn(), _ObjectQHandler(), _skipCldEnqueue(), _skipCldHandler(), CkAllocateMarshallMsgNoninline(), CkAllocBuffer(), CkPriorityPtr(), PrioStreaming::insertMessage(), and pup().

static envelope* envelope::alloc ( const UChar  type,
const UInt  size = 0,
const UShort  prio = 0 
) [inline, static]

Definition at line 192 of file envelope.h.

References CmiAlloc(), ForArrayEltMsg, NewChareMsg, priobits, setEvent(), setMsgtype(), setPacked(), size, and totalsize.

Referenced by _allocEnv(), and _allocMsg().

UShort envelope::getEpIdx ( void   )  const [inline]

Definition at line 208 of file envelope.h.

References epIdx.

Referenced by _allocNewChare(), _createGroup(), _createNodeGroup(), _processBocInitMsg(), _processForBocMsg(), _processForChareMsg(), _processNewChareMsg(), _processNewVChareMsg(), _processNodeBocInitMsg(), TraceSummary::beginExecute(), TraceProjections::beginExecute(), TraceCounter::beginExecute(), charm_beginExecute(), CkMessageToEpIdx(), CkPupMessage(), CpdIsCharmDebugMessage(), PipeBroadcastStrategy::deliverer(), BroadcastStrategy::handleHypercube(), BroadcastStrategy::handleTree(), TraceProjections::messageRecv(), and TraceProjections::traceAddThreadListeners().

void envelope::setEpIdx ( const UShort  idx  )  [inline]

Definition at line 209 of file envelope.h.

References epIdx.

Referenced by _deliverForNodeBocMsg(), _prepareMsg(), _prepareMsgBranch(), CkCreateChare(), CkCreateGroup(), CkCreateNodeGroup(), ComlibManager::GroupBroadcast(), ComlibManager::GroupSend(), and msg_prepareSend().

UInt envelope::getSrcPe ( void   )  const [inline]

Definition at line 210 of file envelope.h.

References pe.

Referenced by _exitHandler(), _processNewVChareMsg(), TraceProjections::beginExecute(), charm_beginExecute(), charm_dequeueMsg(), charm_enqueueMsg(), CkGetSrcPe(), CpdPupMessage(), E2MHandler(), ComlibSectionInfo::getNewMulticastMessage(), RectMulticastStrategy::handleMessage(), DirectMulticastStrategy::handleMessage(), RectMulticastStrategy::handleMessageForward(), RectMulticastStrategy::handleNewMulticastMessage(), CkMessageReplay::isNext(), TraceProjections::messageRecv(), CkMessageReplay::processMessage(), CkMessageRecorder::processMessage(), propagate_handler(), recv_array_msg(), RectMulticastStrategy::remoteMulticast(), and TraceProjections::traceAddThreadListeners().

void envelope::setSrcPe ( const UInt  s  )  [inline]

Definition at line 211 of file envelope.h.

References pe.

Referenced by _CkExit(), _createGroup(), _createNodeGroup(), _exitHandler(), _initCharm(), _prepareMsg(), _prepareMsgBranch(), _processNewVChareMsg(), _sendStats(), _sendTriggers(), CkCreateChare(), CkCreateGroup(), CkCreateNodeGroup(), PipeBroadcastStrategy::conversePipeBcast(), ComlibSectionInfo::getNewMulticastMessage(), ComlibManager::GroupBroadcast(), ComlibManager::GroupSend(), VidBlock::msgDeliver(), propagate_handler(), and CkArrayReductionMgr::startNodeGroupReduction().

static void envelope::setSrcPe ( char *  env,
const UInt  s 
) [inline, static]

Definition at line 212 of file envelope.h.

UInt envelope::getCount ( void   )  const [inline]

Definition at line 215 of file envelope.h.

References getMsgtype(), envelope::u_type::roData, RODataMsg, and type.

Referenced by _initHandler(), and _roRestartHandler().

void envelope::setCount ( const UInt  c  )  [inline]

Definition at line 218 of file envelope.h.

References getMsgtype(), envelope::u_type::roData, RODataMsg, and type.

UInt envelope::getRoIdx ( void   )  const [inline]

Definition at line 221 of file envelope.h.

References getMsgtype(), envelope::u_type::roMsg, ROMsgMsg, and type.

Referenced by _processROMsgMsg().

void envelope::setRoIdx ( const UInt  r  )  [inline]

Definition at line 224 of file envelope.h.

References getMsgtype(), envelope::u_type::roMsg, ROMsgMsg, and type.

Referenced by _initCharm().

UInt envelope::isForAnyPE ( void   )  [inline]

Definition at line 229 of file envelope.h.

References envelope::u_type::chare, getMsgtype(), NewChareMsg, NewVChareMsg, and type.

Referenced by _processBufferedMsgs().

void envelope::setForAnyPE ( UInt  f  )  [inline]

Definition at line 233 of file envelope.h.

References envelope::u_type::chare, getMsgtype(), NewChareMsg, NewVChareMsg, and type.

Referenced by CkCreateChare().

void* envelope::getVidPtr ( void   )  const [inline]

Definition at line 237 of file envelope.h.

References envelope::u_type::chare, FillVidMsg, ForVidMsg, getMsgtype(), NewVChareMsg, and type.

Referenced by _processFillVidMsg(), _processForVidMsg(), and _processNewVChareMsg().

void envelope::setVidPtr ( void *  p  )  [inline]

Definition at line 242 of file envelope.h.

References envelope::u_type::chare, FillVidMsg, ForVidMsg, getMsgtype(), NewVChareMsg, and type.

Referenced by _prepareMsg(), _processNewVChareMsg(), and CkCreateChare().

void* envelope::getObjPtr ( void   )  const [inline]

Definition at line 247 of file envelope.h.

References envelope::u_type::chare, ForChareMsg, getMsgtype(), and type.

Referenced by _processForChareMsg(), and CkFindObjectPtr().

void envelope::setObjPtr ( void *  p  )  [inline]

Definition at line 250 of file envelope.h.

References envelope::u_type::chare, ForChareMsg, getMsgtype(), and type.

Referenced by _deliverForNodeBocMsg(), _prepareMsg(), _processForNodeBocMsg(), and VidBlock::msgDeliver().

CkGroupID envelope::getGroupNum ( void   )  const [inline]

Definition at line 255 of file envelope.h.

References BocInitMsg, ForBocMsg, ForNodeBocMsg, getMsgtype(), envelope::u_type::group, NodeBocInitMsg, and type.

Referenced by _initHandler(), _processBocInitMsg(), _processForBocMsg(), _processForNodeBocMsg(), _processNodeBocInitMsg(), CkFindObjectPtr(), BroadcastStrategy::handleHypercube(), and BroadcastStrategy::handleTree().

void envelope::setGroupNum ( const CkGroupID  g  )  [inline]

Definition at line 260 of file envelope.h.

References BocInitMsg, ForBocMsg, ForNodeBocMsg, getMsgtype(), envelope::u_type::group, NodeBocInitMsg, and type.

Referenced by _createGroup(), _createNodeGroup(), _prepareMsgBranch(), ComlibManager::GroupBroadcast(), and ComlibManager::GroupSend().

void envelope::setGroupEpoch ( int  epoch  )  [inline]

Definition at line 265 of file envelope.h.

References envelope::u_type::group, and type.

Referenced by _createGroup(), and _createNodeGroup().

int envelope::getGroupEpoch ( void   )  [inline]

Definition at line 266 of file envelope.h.

References envelope::u_type::group, and type.

Referenced by _initHandler().

void envelope::setRednMgr ( CkNodeGroupID  r  )  [inline]

Definition at line 267 of file envelope.h.

References envelope::u_type::group, and type.

Referenced by _createGroup().

CkNodeGroupID envelope::getRednMgr (  )  [inline]

Definition at line 268 of file envelope.h.

References envelope::u_type::group, and type.

Referenced by CkCreateLocalGroup().

CkGroupID& envelope::getsetArrayMgr ( void   )  [inline]

Definition at line 271 of file envelope.h.

References envelope::u_type::array, and type.

Referenced by _processArrayEltInitMsg(), _processArrayEltMsg(), ComlibManager::ArrayBroadcast(), ComlibManager::ArraySectionSend(), ComlibManager::ArraySend(), CkArrayManagerInsert(), CkArrayMessageObjectPtr(), MsgPacker::deliver(), ComlibArrayInfo::deliver(), ComlibSectionInfo::getNewMulticastMessage(), CkLocRec_local::invokeEntry(), ComlibArrayInfo::localMulticast(), msg_prepareSend(), MsgPacker::MsgPacker(), ComlibManager::receiveRemoteSend(), recv_array_msg(), NodeMulticast::recvHandler(), and ComlibManager::resumeFromBarrier2().

UShort& envelope::getsetArrayEp ( void   )  [inline]

Definition at line 272 of file envelope.h.

References epIdx.

Referenced by CkArrayMessage::array_ep(), ComlibManager::ArrayBroadcast(), ComlibManager::ArraySectionSend(), ComlibManager::ArraySend(), MsgPacker::deliver(), ComlibSectionInfo::getNewMulticastMessage(), ComlibArrayInfo::localMulticast(), MsgPacker::MsgPacker(), ComlibManager::receiveRemoteSend(), and NodeMulticast::recvHandler().

UShort& envelope::getsetArrayBcastEp ( void   )  [inline]

Definition at line 273 of file envelope.h.

References envelope::u_type::group, and type.

Referenced by CkArrayMessage::array_ep_bcast(), and CkMessageToEpIdx().

UInt& envelope::getsetArraySrcPe ( void   )  [inline]

Definition at line 274 of file envelope.h.

References pe.

Referenced by CkArrayMessage::array_getSrcPe(), ComlibManager::ArrayBroadcast(), ComlibManager::ArraySectionSend(), ComlibManager::ArraySend(), MsgPacker::deliver(), CkLocMgr::demandCreateElement(), NodeMulticast::doneInserting(), ComlibSectionInfo::getNewMulticastMessage(), CkLocRec_local::invokeEntry(), and msg_prepareSend().

UChar& envelope::getsetArrayHops ( void   )  [inline]

Definition at line 275 of file envelope.h.

References envelope::u_type::array, and type.

Referenced by CkArrayMessage::array_hops(), ComlibManager::ArrayBroadcast(), ComlibManager::ArraySectionSend(), ComlibManager::ArraySend(), MsgPacker::deliver(), ComlibArrayInfo::deliver(), ComlibSectionInfo::getNewMulticastMessage(), ComlibArrayInfo::localMulticast(), msg_prepareSend(), recv_array_msg(), and NodeMulticast::recvHandler().

int envelope::getArrayIfNotThere ( void   )  [inline]

Definition at line 276 of file envelope.h.

References envelope::u_type::array, and type.

Referenced by CkArrayMessage::array_ifNotThere().

void envelope::setArrayIfNotThere ( int  nt  )  [inline]

Definition at line 277 of file envelope.h.

References envelope::u_type::array, and type.

Referenced by CkArrayMessage::array_setIfNotThere().

int* envelope::getsetArrayListenerData ( void   )  [inline]

Definition at line 278 of file envelope.h.

References envelope::u_type::array, and type.

Referenced by CkArray::prepareCtorMsg().

CkArrayIndexMax& envelope::getsetArrayIndex ( void   )  [inline]

Definition at line 279 of file envelope.h.

References envelope::u_type::array, and type.

Referenced by CkArrayMessage::array_index(), ComlibManager::ArrayBroadcast(), ComlibManager::ArraySectionSend(), ComlibManager::ArraySend(), CkArrayMessageObjectPtr(), MsgPacker::deliver(), ComlibSectionInfo::getNewMulticastMessage(), ComlibArrayInfo::localMulticast(), MsgPacker::MsgPacker(), CkArray::prepareCtorMsg(), ComlibManager::receiveRemoteSend(), NodeMulticast::recvHandler(), and ComlibManager::resumeFromBarrier2().


Field Documentation

char envelope::core[CmiReservedHeaderSize] [private]

Converse message envelope.

Definition at line 110 of file envelope.h.

Referenced by pup().

u_type envelope::type [private]

Depends on message type (attribs.mtype).

Definition at line 151 of file envelope.h.

Referenced by getArrayIfNotThere(), getCount(), getGroupEpoch(), getGroupNum(), getObjPtr(), getRednMgr(), getRoIdx(), getsetArrayBcastEp(), getsetArrayHops(), getsetArrayIndex(), getsetArrayListenerData(), getsetArrayMgr(), getVidPtr(), isForAnyPE(), pup(), setArrayIfNotThere(), setCount(), setForAnyPE(), setGroupEpoch(), setGroupNum(), setObjPtr(), setRednMgr(), setRoIdx(), and setVidPtr().

UShort envelope::ref [private]

Used by futures.

Definition at line 152 of file envelope.h.

Referenced by getRef(), pup(), and setRef().

s_attribs envelope::attribs [private]

Definition at line 153 of file envelope.h.

Referenced by getMsgIdx(), getMsgtype(), getQueueing(), isPacked(), isUsed(), pup(), setMsgIdx(), setMsgtype(), setPacked(), setQueueing(), and setUsed().

UChar envelope::align[CkMsgAlignOffset(CmiReservedHeaderSize+sizeof(u_type)+sizeof(UShort)+sizeof(s_attribs))] [private]

Definition at line 154 of file envelope.h.

UShort envelope::priobits [private]

Number of bits of priority data after user data.

Definition at line 157 of file envelope.h.

Referenced by alloc(), getPriobits(), getPrioWords(), and setPriobits().

UShort envelope::epIdx [private]

Entry point to call.

Definition at line 158 of file envelope.h.

Referenced by getEpIdx(), getsetArrayEp(), pup(), and setEpIdx().

UInt envelope::pe [private]