OpenMPI  0.1.1
rml_types.h File Reference

Contains the typedefs for the use of the rml. More...

#include "orte_config.h"
#include "orte/constants.h"
#include "orte/types.h"
#include <limits.h>
#include "opal/dss/dss_types.h"
#include "opal/class/opal_list.h"

Go to the source code of this file.

Data Structures

struct  orte_msg_packet_t
 

Macros

#define ORTE_PROCESS_MESSAGE(rlist, lck, flg, fd, crt, sndr, buf)
 
#define ORTE_RML_TAG_T   OPAL_UINT32
 Constant tag values for well-known services.
 
#define ORTE_RML_TAG_INVALID   0
 
#define ORTE_RML_TAG_DAEMON   1
 
#define ORTE_RML_TAG_IOF_HNP   2
 
#define ORTE_RML_TAG_IOF_PROXY   3
 
#define ORTE_RML_TAG_XCAST_BARRIER   4
 
#define ORTE_RML_TAG_PLM   5
 
#define ORTE_RML_TAG_PLM_PROXY   6
 
#define ORTE_RML_TAG_ERRMGR   7
 
#define ORTE_RML_TAG_WIREUP   8
 
#define ORTE_RML_TAG_RML_INFO_UPDATE   9
 
#define ORTE_RML_TAG_ORTED_CALLBACK   10
 
#define ORTE_RML_TAG_REPORT_REMOTE_LAUNCH   12
 
#define ORTE_RML_TAG_CKPT   13
 
#define ORTE_RML_TAG_RML_ROUTE   14
 
#define ORTE_RML_TAG_ALLGATHER   15
 
#define ORTE_RML_TAG_ALLGATHER_LIST   16
 
#define ORTE_RML_TAG_BARRIER   17
 
#define ORTE_RML_TAG_UPDATE_ROUTE_ACK   19
 
#define ORTE_RML_TAG_SYNC   20
 
#define ORTE_RML_TAG_FILEM_BASE   21
 
#define ORTE_RML_TAG_FILEM_BASE_RESP   22
 
#define ORTE_RML_TAG_FILEM_RSH   23
 
#define ORTE_RML_TAG_SNAPC   24
 
#define ORTE_RML_TAG_SNAPC_FULL   25
 
#define ORTE_RML_TAG_TOOL   26
 
#define ORTE_RML_TAG_DATA_SERVER   27
 
#define ORTE_RML_TAG_DATA_CLIENT   28
 
#define ORTE_RML_TAG_COLLECTIVE_TIMER   29
 
#define ORTE_RML_TAG_DAEMON_COLLECTIVE   30
 
#define ORTE_RML_TAG_SHOW_HELP   31
 
#define ORTE_RML_TAG_DEBUGGER_RELEASE   32
 
#define ORTE_RML_TAG_BOOTSTRAP   34
 
#define ORTE_RML_TAG_MULTICAST   35
 
#define ORTE_RML_TAG_MULTICAST_DIRECT   36
 
#define ORTE_RML_TAG_MISSED_MSG   37
 
#define ORTE_RML_TAG_ABORT   38
 
#define ORTE_RML_TAG_HEARTBEAT   39
 
#define ORTE_RML_TAG_NOTIFIER_HNP   40
 
#define ORTE_RML_TAG_MIGRATE   43
 
#define ORTE_RML_TAG_SSTORE   44
 
#define ORTE_RML_TAG_SSTORE_INTERNAL   45
 
#define ORTE_RML_TAG_SUBSCRIBE   46
 
#define ORTE_RML_TAG_FAILURE_NOTICE   48
 
#define ORTE_RML_TAG_REVOKE_NOTICE   49
 
#define ORTE_RML_TAG_COLL_AGREE_TERM   50
 
#define ORTE_RML_TAG_MAX   100
 
#define ORTE_RML_CMD   OPAL_UINT8
 
#define ORTE_RML_UPDATE_CMD   1
 
#define ORTE_RML_NON_PERSISTENT   0x00000000
 Non-persistent request that can be deleted when the request is completed. More...
 
#define ORTE_RML_PEEK   0x00000001
 flag to oob_recv to allow caller to peek a portion of the next available message w/out removing the message from the queue.
 
#define ORTE_RML_TRUNC   0x00000002
 flag to oob_recv to return the actual size of the message even if the receive buffer is smaller than the number of bytes available
 
#define ORTE_RML_ALLOC   0x00000004
 flag to oob_recv to request the oob to allocate a buffer of the appropriate size for the receive and return the allocated buffer and size in the first element of the iovec array.
 
#define ORTE_RML_PERSISTENT   0x00000008
 posted non-blocking recv is persistent
 
#define ORTE_RML_FLAG_RECURSIVE_CALLBACK   0x00000010
 The request is a non-blocking request that can have its callback triggered as soon as the request is completed, even if the OOB is currently in the middle of another non-blocking request callback.
 

Typedefs

typedef uint32_t orte_rml_tag_t
 Message matching tag. More...
 
typedef uint8_t orte_rml_cmd_flag_t
 

Enumerations

enum  orte_rml_exception_t { ORTE_RML_PEER_UNREACH, ORTE_RML_PEER_DISCONNECTED }
 

Functions

ORTE_DECLSPEC OBJ_CLASS_DECLARATION (orte_msg_packet_t)
 

Detailed Description

Contains the typedefs for the use of the rml.

Macro Definition Documentation

#define ORTE_PROCESS_MESSAGE (   rlist,
  lck,
  flg,
  fd,
  crt,
  sndr,
  buf 
)
Value:
do { \
orte_msg_packet_t *pkt; \
int data=1; \
pkt = OBJ_NEW(orte_msg_packet_t); \
pkt->sender.jobid = (sndr)->jobid; \
pkt->sender.vpid = (sndr)->vpid; \
ORTE_EPOCH_SET(pkt->sender.epoch,(sndr)->epoch); \
if ((crt)) { \
pkt->buffer = OBJ_NEW(opal_buffer_t); \
opal_dss.copy_payload(pkt->buffer, *(buf)); \
} else { \
pkt->buffer = *(buf); \
*(buf) = NULL; \
} \
opal_list_append((rlist), &pkt->super); \
if (!(flg)) { \
write((fd), &data, sizeof(data)); \
} \
} while(0);
#define OPAL_THREAD_LOCK(mutex)
Lock a mutex if opal_using_threads() says that multiple threads may be active in the process...
Definition: mutex.h:223
#define OPAL_THREAD_UNLOCK(mutex)
Unlock a mutex if opal_using_threads() says that multiple threads may be active in the process...
Definition: mutex.h:309
#define opal_list_append(l, i)
Append an item to the end of the list.
Definition: opal_list.h:410
Definition: rml_types.h:51
Structure for holding a buffer to be used with the RML or OOB subsystems.
Definition: dss_types.h:159
#define ORTE_RML_NON_PERSISTENT   0x00000000

Non-persistent request that can be deleted when the request is completed.

This is the default behavior.

Referenced by orte_rml_base_comm_start().

Typedef Documentation

typedef uint32_t orte_rml_tag_t

Message matching tag.

Message matching tag. Unlike MPI, there is no wildcard receive, all messages must match exactly. Tag values less than ORTE_RML_TAG_DYNAMIC are reserved and may only be referenced using a defined constant.