OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

Data Structures | Macros | Typedefs | Enumerations | Functions
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_THREAD_LOCK((lck)); \
opal_list_append((rlist), &pkt->super); \
if (!(flg)) { \
write((fd), &data, sizeof(data)); \
} \
OPAL_THREAD_UNLOCK((lck)); \
} while(0);
OPAL_THREAD_LOCK
#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
OPAL_THREAD_UNLOCK
#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
opal_list_append
#define opal_list_append(l, i)
Append an item to the end of the list.
Definition: opal_list.h:410
orte_msg_packet_t
Definition: rml_types.h:51
opal_buffer_t
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.