| /////////////////////////////////////////////////////////////////////////////// |
| // |
| // @@@ START COPYRIGHT @@@ |
| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| // @@@ END COPYRIGHT @@@ |
| // |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| #ifndef MSGDEF_H_ |
| #define MSGDEF_H_ |
| |
| #include <mpi.h> |
| #include "trafconf/trafconfig.h" |
| |
| // HP_MPI supports both 32bit and 64bit modes |
| |
| // Compile options |
| //#define DEBUGGING |
| #define NO_OPEN_CLOSE_NOTICES |
| #define EXCHANGE_CPU_SCHEDULING_DATA |
| |
| #define SERVICE_TAG 1 |
| #define INTERNAL_TAG 2 |
| #define NOTICE_TAG 3 |
| #define SYNC_TAG 4 |
| #define CHKPNT_TAG 5 |
| #define EVENT_TAG 6 |
| #define UNSOLICITED_TAG 7 |
| #define REPLY_TAG 8 |
| #define CLOSE_TAG 9 |
| #define WAKE_TAG 10 |
| |
| #define MON_BASE_NICE 0 |
| #define TSE_BASE_NICE 1 |
| #define DTM_BASE_NICE 1 |
| #define APP_BASE_NICE 1 |
| |
| #define BCAST_PID -255 |
| |
| #define WATCHDOG_TICKS 250 |
| #define MAX_ARGS 60 |
| #define MAX_ARG_SIZE 256 |
| |
| #define MAX_CORES 256 // Current logic supports Linux limit of 1024 |
| // NOTE: Increase with caution as this number |
| // is also used to gather local CPU statistics |
| // and a large number may degrade performance |
| #define MAX_NODES TC_NODES_MAX // This can be higher when needed and will |
| // have performance implications |
| // NOTE: Must increment by 64 to match node state |
| // bitmask. See trafconfig.h TC_NODES_MAX in |
| // Trafodion Configuration API |
| #define MAX_LNODES_PER_NODE 1 // The 1 is a per physical node limit |
| // (it can be more, but it is not currently used) |
| #define MAX_LNODES (MAX_NODES*MAX_LNODES_PER_NODE) |
| #define MAX_NODE_BITMASK 64 // A 64 bit mask, each bit represent pnid state |
| // 0 = down, 1 = up |
| #define MAX_NODE_MASKS (MAX_NODES/MAX_NODE_BITMASK) // Node bit mask array size |
| |
| #define MAX_FAULT_ZONES 16 |
| #define MAX_FILE_NAME 256 |
| #define MAX_KEY_NAME 64 |
| #define MAX_KEY_LIST 32 |
| #define MAX_NODE_LIST 64 |
| #define MAX_OPEN_LIST 256 |
| #define MAX_OPEN_CONTEXT 5 |
| #define MAX_PID_VALUE 0x00FFD1C9 // 16,765,385 |
| #define MAX_PERSIST_KEY_STR 51 |
| #define MAX_PERSIST_VALUE_STR 51 |
| #define MAX_PRIMITIVES 1 // SQWatchog (WDG) is last to exit on shutdown |
| #define MAX_PROC_LIST 256 |
| #define MAX_PROCINFO_LIST 64 |
| #define MAX_PROC_CONTEXT 5 |
| #define MAX_PROCESS_NAME MAX_KEY_NAME |
| #define MAX_PROCESS_NAME_STR 13 |
| #define MAX_PROCESS_PATH 256 |
| #define MAX_PROCESSOR_NAME 128 |
| #define MAX_RECONN_PING_WAIT_TIMEOUT 5 |
| #define MAX_RECONN_PING_RETRY_COUNT 3 |
| #define MAX_REASON_TEXT 256 |
| #define MAX_ROLEBUF_SIZE 84 |
| #define MAX_SEARCH_PATH BUFSIZ |
| #define MAX_SEQ_VALUE 0x7FFFFFFF |
| #define MAX_STFSD_DATA 32767 |
| #define MAX_SYNC_DATA 4096 |
| #define MAX_SYNC_SIZE 65536 |
| #define MAX_TM_SYNCS 200 |
| #define MAX_TM_HANDLES 0x00FFFFFF |
| #define MAX_VALUE_SIZE 512 |
| #define MAX_VALUE_SIZE_INT 4096 |
| |
| // Use STRCPY when the size of the source string is variable and unknown. |
| // Safe strcpy - checks that destination has enough capacity to hold |
| // source string. If not, source string is truncated. |
| #define STRCPY(dest,src) \ |
| { \ |
| unsigned int dlen = (unsigned int) (sizeof(dest) - 1); \ |
| if (strlen(src) <= dlen) \ |
| { \ |
| strcpy(dest, src); \ |
| } \ |
| else \ |
| { \ |
| memcpy(dest, src, dlen); \ |
| dest[dlen] = '\0'; \ |
| } \ |
| } |
| |
| typedef int Verifier_t; // Process verifier typedef |
| |
| typedef struct { int nid; int id; } strId_t; |
| |
| typedef long long _TM_Native_Type; // Native Data Type for Transaction ID |
| |
| typedef union { // External Extended Transaction ID |
| _TM_Native_Type txid[4]; |
| } _TM_Txid_External; |
| |
| typedef enum { |
| SMS_Undefined=1100, // Invalid |
| SMS_Exit // Monitor Event to exit the SMService process |
| } SMServiceEvent_t; |
| |
| typedef enum { |
| Watchdog_Start=1000, // Monitor Event to start the Watchdog Process timer |
| Watchdog_Refresh, // Monitor Event to restart the Watchdog Process timer |
| Watchdog_Expire, // Monitor Event to expire the Watchdog Process timer |
| Watchdog_Stop, // Monitor Event to stop the Watchdog Process timer |
| Watchdog_Shutdown, // Monitor Event to shutdown the Watchdog Process timer |
| Watchdog_Exit // Monitor Event to exit the Watchdog process |
| } WatchdogEvent_t; |
| |
| typedef enum { |
| PStartD_StartPersist=2000, // Event to PSD to start persistent processes |
| // that do not require DTM |
| PStartD_StartPersistDTM // Event to PSD to start persistent processes |
| // that require DTM |
| } PStartDEvent_t; |
| |
| typedef enum { |
| ConfigType_Undefined=0, // Invalid |
| ConfigType_Cluster, // Gobal to cluster configuration data |
| ConfigType_Node, // Local to node configuration data |
| ConfigType_Process // Gobal to process configuration data |
| } ConfigType; |
| |
| typedef enum { |
| CommType_Undefined=0, |
| CommType_InfiniBand, |
| CommType_Sockets |
| } CommType_t; |
| |
| typedef enum |
| { |
| State_UnMounted =0, // Device not mounted |
| State_Mounted // Device mounted |
| } DEVICESTATE; |
| |
| typedef enum { |
| State_Unknown=0, // Invalid |
| State_Up, // Object is available for use |
| State_Down, // Object has failed and is unavailable |
| State_Stopped, // Object has terminated and is unavailable |
| State_Shutdown, // Object is in the process of terminating |
| State_Unlinked, |
| State_Initializing, // Object not yet ready for use |
| State_Joining, // Node is ready for Join Phase |
| State_Merging, // Node is merged to MPI collective |
| State_Merged, // Node merge with MPI collective is in use by cluster |
| State_Takeover // Node is in takeover state |
| } STATE; |
| |
| typedef enum { |
| Dump_Unknown=0, // Invalid |
| Dump_Ready, // ProcessObject can be dumped |
| Dump_Pending, // ProcessObject dump requested |
| Dump_InProgress, // ProcessObject dump in process |
| Dump_Complete // ProcessObject dump complete |
| } DUMPSTATE; |
| typedef enum { |
| Dump_Success=0, // Success |
| Dump_Failed // Failed |
| } DUMPSTATUS; |
| |
| // Node Re-integration phases |
| typedef enum { |
| JoiningPhase_Unknown=0, // Invalid |
| JoiningPhase_1, // Join initiated |
| JoiningPhase_2, // Join in progress |
| JoiningPhase_3, // Join completing |
| JoiningPhase_Invalid // Invalid |
| } JOINING_PHASE; |
| |
| typedef enum { |
| RoleType_Undefined = 0x0000, // Maps to ZoneType_Any |
| RoleType_Connection = 0x0001, // Maps to ZoneType_Edge, Frontend or Any |
| RoleType_Aggregation = 0x0002, // Maps to ZoneType_Aggregation, Backend or Any |
| RoleType_Storage = 0x0004 // Maps to ZoneType_Storage, Backend or Any |
| } RoleType; |
| |
| typedef TcZoneType_t ZoneType; |
| |
| // Service Request types |
| // note: other data structures depend on the ordering of the REQTYPE elements. |
| // if the ordering changes corresponding changes must be made to |
| // SQ_LocalIOToClient::serviceRequestSize and CReqQueue::svcReqType. |
| typedef enum { |
| ReqType_Close=1, // process closing server request |
| ReqType_DelProcessNs, // delete process |
| ReqType_Dump, // dump process |
| ReqType_Event, // send target processes an Event notice |
| ReqType_Exit, // process is exiting |
| ReqType_Get, // retrieve information from the registry |
| ReqType_Kill, // stop and cleanup the identified process |
| ReqType_MonStats, // get monitor statistics |
| ReqType_Mount, // mount device associated with process |
| ReqType_NameServerAdd, // add nameserver to configuration database |
| ReqType_NameServerDelete, // delete nameserver from configuration database |
| ReqType_NameServerStart, // start the identified nameserver |
| ReqType_NameServerStop, // stop the identified nameserver |
| ReqType_NewProcess, // process is request server to be spawned |
| ReqType_NewProcessNs, // new process |
| ReqType_NodeAdd, // add node to configuration database |
| ReqType_NodeDelete, // delete node from configuration database |
| ReqType_NodeDown, // take down the identified node |
| ReqType_NodeInfo, // node operational status information request |
| ReqType_NodeName, // change node name in configuration database |
| ReqType_NodeUp, // bring up the identified node |
| ReqType_Notice, // this is a informational message only |
| ReqType_Notify, // register process to receive death notifications |
| ReqType_Open, // process opening server request |
| ReqType_OpenInfo, // request open information for process |
| ReqType_PersistAdd, // add persist template to configuration database |
| ReqType_PersistDelete, // delete persist template from configuration database |
| ReqType_PNodeInfo, // physical node information request |
| ReqType_ProcessInfo, // process information request |
| ReqType_ProcessInfoCont, // process information request (continuation) |
| ReqType_ProcessInfoNs, // process information request (monitor) |
| ReqType_Set, // add configuration information to the registry |
| ReqType_Shutdown, // request cluster shutdown |
| ReqType_ShutdownNs, // request nameserver shutdown |
| ReqType_Startup, // process startup notification |
| ReqType_Stfsd, // process stfsd request |
| ReqType_TmLeader, // request to become the TM leader |
| ReqType_TmReady, // request to indicate TM ready for transactions |
| ReqType_TmSync, // request to sync data across all TM's in cluster |
| ReqType_TransInfo, // request transaction enlistment information |
| ReqType_ZoneInfo, // zone information request |
| |
| ReqType_Invalid // marks the end of the request |
| // types, add any new request types |
| // before this one |
| } REQTYPE; |
| |
| // Reply types |
| // note: other data structures depend on the ordering of the REPLYTYPE elements. |
| // if the ordering changes corresponding changes must be made to |
| // SQ_LocalIOToClient::serviceReplySize. |
| typedef enum { |
| ReplyType_Generic=100, // general reply across message types |
| ReplyType_DelProcessNs, // reply with results |
| ReplyType_Dump, // reply with dump info |
| ReplyType_Get, // reply with configuration key/value pairs |
| ReplyType_MonStats, // reply with monitor statistics |
| ReplyType_Mount, // reply with mount info |
| ReplyType_NewProcess, // reply with new process information |
| ReplyType_NewProcessNs, // reply with new process information |
| ReplyType_NodeInfo, // reply with info on list of nodes |
| ReplyType_NodeName, // reply with results |
| ReplyType_Open, // reply with open server information |
| ReplyType_OpenInfo, // reply with list of opens for a process |
| ReplyType_PNodeInfo, // reply with info on list of physical nodes |
| ReplyType_ProcessInfo, // reply with info on list of processes |
| ReplyType_ProcessInfoNs, // reply with info of process |
| ReplyType_Stfsd, // reply with stfsd info |
| ReplyType_Startup, // reply with startup info |
| ReplyType_TmSync, // reply from unsolicited TmSync message |
| ReplyType_TransInfo, // reply with transaction enlistment process list |
| ReplyType_ZoneInfo, // reply with info on list of zones |
| |
| |
| ReplyType_Invalid // marks the end of the reply types, |
| // add any new reply types before |
| // this one |
| } REPLYTYPE; |
| |
| // Request types |
| // note: other data structures depend on the ordering of the MSGTYPE elements. |
| // if the ordering changes corresponding changes must be made to |
| // SQ_LocalIOToClient::requestSize |
| typedef enum { |
| MsgType_Change=1, // registry information has changed notification |
| MsgType_Close, // process close notification |
| MsgType_Event, // generic event notification |
| MsgType_NodeAdded, // node added to configuration notification |
| MsgType_NodeChanged, // node configuration changed notification |
| MsgType_NodeDeleted, // node deleted from configuration notification |
| MsgType_NodeDown, // node is down notification |
| MsgType_NodeJoining, // node is joining notification |
| MsgType_NodePrepare, // node prepare notification |
| MsgType_NodeQuiesce, // node quiesce notification (always followed by node down) |
| MsgType_NodeUp, // node is up notification |
| MsgType_Open, // process open notification |
| MsgType_ProcessCreated, // process creation completed notification |
| MsgType_ProcessDeath, // process death notification |
| MsgType_ReintegrationError, // Problem during node reintegration |
| MsgType_Service, // request a service from the monitor |
| MsgType_Shutdown, // system shutdown notification |
| MsgType_SpareUp, // spare node is up notification |
| MsgType_TmRestarted, // DTM process restarted notification |
| MsgType_TmSyncAbort, // request to abort TM sync data previously received |
| MsgType_TmSyncCommit, // request to commit previously received TM sync data |
| MsgType_UnsolicitedMessage, // Outgoing monitor msg expecting a reply |
| |
| MsgType_Invalid // marks the end of the message |
| // types, add any new message types |
| // before this one |
| } MSGTYPE; |
| |
| typedef TcProcessType_t PROCESSTYPE; |
| |
| typedef enum { |
| ShutdownLevel_Undefined=-1, |
| ShutdownLevel_Normal=0, // Wait for all transactions and processes to end |
| ShutdownLevel_Immediate, // Abort transactions and wait for processes to end |
| ShutdownLevel_Abrupt // just kill all processes and stop |
| } ShutdownLevel; |
| |
| struct Change_def |
| { |
| ConfigType type; // type of group that has changed |
| char group[MAX_KEY_NAME]; // name of the group that has changed |
| char key[MAX_KEY_NAME]; // name of the configured item that has changed |
| char value[MAX_VALUE_SIZE]; // value currently assigned to the name |
| }; |
| |
| struct Close_def |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process's id |
| Verifier_t verifier; // requesting process's verifier |
| char process_name[MAX_PROCESS_NAME]; // requesting process's name |
| int aborted; // Non-zero if close because of process abort |
| int mon; // Non-zero if monitor close |
| }; |
| |
| struct DelProcessNs_def |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process id |
| Verifier_t verifier; // requesting process's verifier |
| char process_name[MAX_PROCESS_NAME]; // requesting process's name |
| int target_nid; // Node id of processes to delete |
| int target_pid; // Process id of process to delete |
| Verifier_t target_verifier; // Process verifier of processes to delete |
| char target_process_name[MAX_PROCESS_NAME]; // Name of process to delete |
| bool target_abended; // True if process aborted |
| }; |
| |
| struct DelProcessNs_reply_def |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process id |
| Verifier_t verifier; // requesting process's verifier |
| char process_name[MAX_PROCESS_NAME]; // requesting process's name |
| int return_code; // mpi error code of error |
| }; |
| |
| struct Dump_def |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process's id |
| Verifier_t verifier; // requesting process's verifier |
| char process_name[MAX_PROCESS_NAME]; // requesting process's name |
| char path[MAX_PROCESS_PATH]; // path for dump-file |
| int target_nid; // Nid of process to dump ( -1 if using name ) |
| int target_pid; // Pid of process to dump ( -1 if using name ) |
| Verifier_t target_verifier; // Verifier of process to dump ( -1 if using name ) |
| char target_process_name[MAX_PROCESS_NAME]; // Name of process to dump |
| }; |
| |
| struct Dump_reply_def |
| { |
| int nid; // target process's node id |
| int pid; // target process's process id |
| Verifier_t verifier; // target process's verifier |
| char process_name[MAX_PROCESS_NAME]; // target process's name |
| char core_file[MAX_PROCESS_PATH]; // name of core-file |
| int return_code; // error returned to sender |
| }; |
| |
| struct Event_def |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process id |
| Verifier_t verifier; // requesting process's verifier |
| char process_name[MAX_PROCESS_NAME]; // requesting process's name |
| int target_nid; // Node id of processes to receive event (-1 for all all nodes) |
| int target_pid; // Process id of processes to receive event (-1 for all in node) |
| Verifier_t target_verifier; // Process verifier of processes to receive event (-1 for all in node) |
| char target_process_name[MAX_PROCESS_NAME]; // Name of target process |
| PROCESSTYPE type; // Process type of processes to receive event |
| // (ProcessType_Undefined for not type filtering) |
| int event_id; // Non-Zero user defined event id to be pass in event notice |
| int length; // The length in bytes used the data buffer |
| char data[MAX_SYNC_DATA]; // Data buffer to be sent to selected processes |
| }; |
| |
| struct Event_Notice_def |
| { |
| int event_id; // Non-Zero user defined event id to be pass in event notice |
| int length; // The length in bytes used the data buffer |
| char data[MAX_SYNC_DATA]; // Data buffer to be sent to selected processes |
| }; |
| |
| struct Exit_def |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process id |
| Verifier_t verifier; // requesting process's verifier |
| char process_name[MAX_PROCESS_NAME]; // requesting process's name |
| }; |
| |
| struct Generic_reply_def |
| { |
| int nid; // target process's node id |
| int pid; // target process's process id |
| Verifier_t verifier; // target process's verifier |
| char process_name[MAX_PROCESS_NAME]; // target process's name |
| int return_code; // error returned to sender |
| }; |
| |
| struct Get_def |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process id |
| Verifier_t verifier; // requesting process's verifier |
| char process_name[MAX_PROCESS_NAME]; // requesting process's name |
| ConfigType type; // type of group being requested |
| bool next; // if true, get key list starting after key |
| // else start new list |
| char group[MAX_KEY_NAME]; // name of group, if NULL and type=ConfigNode assume local node |
| char key[MAX_KEY_NAME]; // name of the item to be returned, Null for all in group |
| }; |
| |
| struct Get_reply_def |
| { |
| ConfigType type; // type of group being returned |
| char group[MAX_KEY_NAME]; // name of the group of items returned |
| int num_keys; // Number of keys in request set |
| int num_returned; // Number of keys returned |
| struct |
| { |
| char key[MAX_KEY_NAME]; // name of the configured item |
| char value[MAX_VALUE_SIZE]; // value currently assigned to the name |
| } list[MAX_KEY_LIST]; |
| }; |
| |
| struct Kill_def |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process id |
| Verifier_t verifier; // requesting process's verifier |
| char process_name[MAX_PROCESS_NAME]; // requesting process's name |
| int target_nid; // Node id of processes to kill (-1 for all) |
| int target_pid; // Process id of process to kill (-1 for all) |
| Verifier_t target_verifier; // Process verifier of processes to kill (-1 if process name only) |
| char target_process_name[MAX_PROCESS_NAME]; // Name of process to kill |
| bool persistent_abort; // when true, persistent process is not restarted |
| // otherwise, it is ignored |
| }; |
| |
| struct MonStats_def |
| { |
| int placeholder; |
| }; |
| |
| struct MonStats_reply_def |
| { |
| int acquiredMax; |
| int availMin; |
| int bufMisses; |
| }; |
| |
| struct Mount_def // to mount device associated with process |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process id |
| Verifier_t verifier; // requesting process's verifier |
| char process_name[MAX_PROCESS_NAME]; // requesting process's name |
| }; |
| |
| struct Mount_reply_def |
| { |
| DEVICESTATE primary_state; // State of primary device |
| DEVICESTATE mirror_state; // State of mirror device |
| int return_code; // mpi error code of spawn operation |
| }; |
| |
| struct NameServerAdd_def |
| { |
| int nid; // node id of requesting process |
| int pid; // process id of requesting process |
| char node_name[MPI_MAX_PROCESSOR_NAME]; // Node's name |
| }; |
| |
| struct NameServerDelete_def |
| { |
| int nid; // node id of requesting process |
| int pid; // process id of requesting process |
| char node_name[MPI_MAX_PROCESSOR_NAME]; // Node's name |
| }; |
| |
| struct NameServerStart_def |
| { |
| int nid; // node id of requesting process |
| int pid; // process id of requesting process |
| char node_name[MPI_MAX_PROCESSOR_NAME]; // Node's name |
| }; |
| |
| struct NameServerStop_def |
| { |
| int nid; // node id of requesting process |
| int pid; // process id of requesting process |
| char node_name[MPI_MAX_PROCESSOR_NAME]; // Node's name |
| }; |
| |
| struct NewProcess_def |
| { |
| int nid; // zone or node id if TM type to start process on, |
| // if -1 then will assign node |
| PROCESSTYPE type; // Identifies the process handling catagory |
| int priority; // Linux system priority |
| int debug; // if non-zero, starts processing using GDB |
| int backup; // if non-zero, starts process as backup |
| bool unhooked; // if hooked, parent process dies will trigger child process exits |
| bool nowait; // reply after local node initiates new process and send notice on completion |
| long long tag; // user defined tag to be sent in completion notice |
| char path[MAX_SEARCH_PATH]; // process's object lookup path to program |
| char ldpath[MAX_SEARCH_PATH]; // process's library load path for program |
| char program[MAX_PROCESS_PATH]; // full path to object file |
| char process_name[MAX_PROCESS_NAME]; // process name |
| int argc; // number of additional command line argument |
| char argv[MAX_ARGS][MAX_ARG_SIZE]; // array of additional command line arguments |
| char infile[MAX_PROCESS_PATH]; // if null then use monitor's infile |
| char outfile[MAX_PROCESS_PATH]; // if null then use monitor's outfile |
| int fill1; // filler to fill out struct |
| }; |
| |
| struct NewProcessNs_def |
| { |
| int nid; // node id |
| int pid; // process id |
| Verifier_t verifier; // process verifier |
| char process_name[MAX_PROCESS_NAME]; // process name |
| PROCESSTYPE type; // Identifies the process handling catagory |
| int parent_nid; // parent's node id |
| int parent_pid; // parent's process id |
| Verifier_t parent_verifier; // parent's process verifier |
| int pair_parent_nid; // node id of real process pair parent process |
| int pair_parent_pid; // process id of real process pair parent process |
| Verifier_t pair_parent_verifier; // process id of real process pair parent process |
| int priority; // Linux system priority |
| int debug; // if non-zero, starts processing using GDB |
| int backup; // if non-zero, starts process as backup |
| bool unhooked; // if hooked, parent process dies will trigger child process exits |
| bool nowait; // reply after local node initiates new process and send notice on completion |
| bool event_messages; // true if want event messages |
| bool system_messages; // true if want system messages |
| long long tag; // user defined tag to be sent in completion notice |
| // strId_t pathStrId; // program lookup path (string id) |
| // strId_t ldpathStrId; // library load path (string id) |
| // strId_t programStrId; // full path to object file (string id) |
| char path[MAX_SEARCH_PATH]; // process's object lookup path to program |
| char ldpath[MAX_SEARCH_PATH]; // process's library load path for program |
| char program[MAX_PROCESS_PATH]; // full path to object file |
| char port_name[MPI_MAX_PORT_NAME]; // mpi port name from MPI_Open_port |
| int argc; // number of additional command line argument |
| char argv[MAX_ARGS][MAX_ARG_SIZE]; // array of additional command line arguments |
| char infile[MAX_PROCESS_PATH]; // if null then use monitor's infile |
| char outfile[MAX_PROCESS_PATH]; // if null then use monitor's outfile |
| struct timespec creation_time; // creation time |
| int fill1; // filler to fill out struct |
| }; |
| |
| struct NewProcess_reply_def |
| { |
| int nid; // node id of started process |
| int pid; // internal process id of started process |
| Verifier_t verifier; // Process verifier |
| char process_name[MAX_PROCESS_NAME]; // process names assigned to started process |
| int return_code; // mpi error code of spawn operation |
| }; |
| |
| struct NewProcessNs_reply_def |
| { |
| int nid; // node id of started process |
| int pid; // internal process id of started process |
| Verifier_t verifier; // Process verifier |
| char process_name[MAX_PROCESS_NAME]; // process names assigned to started process |
| int return_code; // mpi error code of spawn operation |
| }; |
| |
| struct NewProcess_Notice_def |
| { |
| int nid; // node id of started process |
| int pid; // internal process id of started process |
| Verifier_t verifier; // Process verifier |
| long long tag; // user tag sent with original request |
| char port[MPI_MAX_PORT_NAME]; // mpi port to started process |
| char process_name[MAX_PROCESS_NAME]; // process names assigned to started process |
| int return_code; // mpi error code of spawn operation |
| }; |
| |
| struct NodeAdd_def |
| { |
| int nid; // node id of requesting process |
| int pid; // process id of requesting process |
| char node_name[MPI_MAX_PROCESSOR_NAME]; // Node's name |
| int first_core; // First or only core assigned |
| int last_core; // Last core assigned or -1 |
| int processors; // Number of processors in logical node |
| int roles; // Role assigment |
| }; |
| |
| struct NodeAdded_def // Node added to configuration notice |
| { |
| int nid; |
| int zid; |
| char node_name[MPI_MAX_PROCESSOR_NAME]; |
| }; |
| |
| struct NodeChanged_def // Node configuration changed notice |
| { |
| int nid; // node id |
| int zid; // zone id |
| int pnid; // physical node id |
| char node_name[MPI_MAX_PROCESSOR_NAME]; // Node's name |
| int first_core; // First or only core assigned |
| int last_core; // Last core assigned or -1 |
| int processors; // Number of processors in logical node |
| int roles; // Role assigment |
| }; |
| |
| struct NodeDelete_def |
| { |
| int nid; // node id of requesting process |
| int pid; // process id of requesting process |
| int target_pnid; // Target physical node id |
| char target_node_name[MPI_MAX_PROCESSOR_NAME]; // Target node name |
| }; |
| |
| struct NodeDeleted_def // Node deleted from configuration notice |
| { |
| int nid; |
| int zid; |
| char node_name[MPI_MAX_PROCESSOR_NAME]; |
| }; |
| |
| struct NodeDown_def |
| { |
| int nid; |
| char node_name[MPI_MAX_PROCESSOR_NAME]; |
| int takeover; // true if Spare Node activation |
| #ifdef USE_SEQUENCE_NUM |
| long long seqnum; // sequence number |
| #endif |
| char reason[MAX_REASON_TEXT]; // text describing reason for down node |
| }; |
| |
| struct NodeInfo_def |
| { |
| int nid; // node id of requesting process |
| int pid; // process id of requesting process |
| int target_nid; // get information on node id (-1 for all) |
| int last_nid; // Last Logical Node ID returned |
| int last_pnid; // Last Physical Node ID returned |
| bool continuation; // true if continuation of earlier request |
| }; |
| |
| struct NodeInfo_reply_def |
| { |
| int num_nodes; // Number of logical nodes in the cluster |
| int num_pnodes; // Number of physical nodes in the cluster |
| int num_spares; // Number of spare nodes in the cluster |
| int num_available_spares; // Number of currenly available spare nodes in the cluster |
| int num_returned; // Number of nodes returned |
| struct |
| { |
| int nid; // Node's ID |
| STATE state; // Node's state (i.e. UP, DOWN, STOPPING) |
| ZoneType type; // Node's fault zone type (service,compute,storge,any,frontend,backend) |
| int processors; // Number of processors in logical node |
| int process_count; // Number of processes in executing on the node |
| int pnid; // Node's Physical ID |
| STATE pstate; // Physical Node's state (i.e. UP, DOWN, STOPPING) |
| bool spare_node; // True when physical node is spare |
| unsigned int memory_total; // Node's total memory |
| unsigned int memory_free; // Node's current free memory |
| unsigned int swap_free; // Node's current free swap |
| unsigned int cache_free; // Node's current free buffer/cache |
| unsigned int memory_active; // Node's memory in active use |
| unsigned int memory_inactive; // Node's memory available for reclamation |
| unsigned int memory_dirty; // Node's memory waiting to be written to disk |
| unsigned int memory_writeback; // Node's memory being written to disk |
| unsigned int memory_VMallocUsed; // Node's amount of used virtual memory |
| long long cpu_user; // Time in user mode |
| long long cpu_nice; // Time in user mode, low priority |
| long long cpu_system; // Time in system mode |
| long long cpu_idle; // Time in idle task |
| long long cpu_iowait; // Time waiting for i/o |
| long long cpu_irq; // Time in hardware long longerrupt |
| long long cpu_soft_irq; // Time in software interrupt |
| unsigned int btime; // Boot time (secs since 1/1/1970) |
| char node_name[MPI_MAX_PROCESSOR_NAME]; // Node's name |
| int cores; // Number of processors in physical node |
| } node[MAX_NODE_LIST]; |
| int return_code; // error returned to sender |
| int last_nid; // Last Logical Node ID returned |
| int last_pnid; // Last Physical Node ID returned |
| bool continuation; // true if continuation of earlier request |
| }; |
| |
| struct NodeName_def |
| { |
| int nid; // node id of requesting process |
| int pid; // process id of requesting process |
| char new_name[MPI_MAX_PROCESSOR_NAME]; // get information on node id (-1 for all) |
| char current_name[MPI_MAX_PROCESSOR_NAME]; // current name of node (validation) |
| }; |
| |
| struct NodeName_reply_def |
| { |
| int return_code; // error returned to sender |
| }; |
| |
| struct NodeJoining_def |
| { |
| int pnid; |
| char node_name[MPI_MAX_PROCESSOR_NAME]; |
| JOINING_PHASE phase; |
| }; |
| |
| struct NodePrepare_def |
| { |
| int nid; |
| char node_name[MPI_MAX_PROCESSOR_NAME]; |
| int takeover; // true if Spare Node activation |
| }; |
| |
| struct NodeQuiesce_def |
| { |
| int nid; |
| char node_name[MPI_MAX_PROCESSOR_NAME]; |
| }; |
| |
| struct NodeReInt_def |
| { |
| char msg[200]; |
| }; |
| |
| struct NodeUp_def |
| { |
| int nid; |
| char node_name[MPI_MAX_PROCESSOR_NAME]; |
| int takeover; // true if Spare Node activation |
| #ifdef USE_SEQUENCE_NUM |
| long long seqnum; // sequence number |
| #endif |
| }; |
| |
| struct Notify_def // Register for death notification |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process id |
| Verifier_t verifier; // requesting process's verifier |
| char process_name[MAX_PROCESS_NAME]; // requesting process's name |
| int cancel; // Zero to set notice else cancel current notice |
| int target_nid; // Nid of process to be monitored, if -1 cancel all associated with trans_id |
| int target_pid; // Pid of process to be monitored, if -1 cancel all associated with trans_id |
| Verifier_t target_verifier; // Verifier of process to be monitored, if -1 cancel all associated with trans_id |
| char target_process_name[MAX_PROCESS_NAME]; // monitored process's name |
| int fill1; // filler to trans_id |
| _TM_Txid_External trans_id; // associated transaction id, zero for none. |
| }; // note: cancel=0, target_nid or target_pid = -1 is invalid |
| |
| struct Open_def |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process id |
| Verifier_t verifier; // requesting process's verifier |
| char process_name[MAX_PROCESS_NAME]; // requesting process's name (if notification) |
| int target_nid; // Process to open node id |
| int target_pid; // Process to open id |
| Verifier_t target_verifier; // Process to open verifier |
| char target_process_name[MAX_PROCESS_NAME]; // Process to open name |
| int death_notification; // true if death notice needed on process failure |
| }; |
| |
| struct Open_reply_def |
| { |
| int nid; // opened process's node id |
| int pid; // opened process's process id |
| Verifier_t verifier; // opened process's process verifier |
| char process_name[MAX_PROCESS_NAME]; // opened process's name |
| char port[MPI_MAX_PORT_NAME]; // opened process's mpi port used in MPI_Comm_connect |
| PROCESSTYPE type; // opened process's process type |
| int return_code; // mpi error code |
| }; |
| |
| struct Close_reply_def |
| { |
| int nid; // Close requesting process's node id |
| int pid; // Close requesting process's process id |
| Verifier_t verifier; // Close requesting process's verifier |
| char process_name[MAX_PROCESS_NAME]; // Close requesting process's name |
| int return_code; // mpi error code |
| }; |
| |
| struct OpenInfo_def |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process id |
| int target_nid; // Nid of process to list opens ( -1 if using name ) |
| int target_pid; // Pid of process to list opens ( -1 if using name ) |
| char process_name[MAX_PROCESS_NAME]; // Name of process to list opens |
| bool who_opened; // false for list of processes opened by this process |
| // true for list of who has this process opened |
| bool continuation; // true if continuation of earlier request |
| struct // last few process ids returned |
| { // previously |
| int nid; // node id |
| int pid; // process id |
| } context[MAX_OPEN_CONTEXT]; |
| }; |
| |
| struct OpenInfo_reply_def |
| { |
| int num_opens; // number of opens returned |
| struct |
| { |
| int nid; // opened process's node id |
| int pid; // opened process's process id |
| char process_name[MAX_PROCESS_NAME];// opened process's name |
| bool stale; // true if open to terminated process |
| } opens[MAX_OPEN_LIST]; |
| int return_code; // error returned to sender |
| }; |
| |
| struct PNodeInfo_def |
| { |
| int nid; // node id of requesting process |
| int pid; // process id of requesting process |
| int target_pnid; // get information on pnode id (-1 for all when node_name is null string) |
| char target_name[MPI_MAX_PROCESSOR_NAME]; // get information on pnode by node name |
| int last_pnid; // Last Physical Node ID returned |
| bool continuation; // true if continuation of earlier request |
| }; |
| |
| struct PNodeInfo_reply_def |
| { |
| int num_nodes; // Number of logical nodes in the cluster |
| int num_pnodes; // Number of physical nodes in the cluster |
| int num_spares; // Number of spare nodes in the cluster |
| int num_available_spares; // Number of currenly available spare nodes in the cluster |
| int num_returned; // Number of nodes returned |
| struct |
| { |
| int pnid; // Node's Physical ID |
| char node_name[MPI_MAX_PROCESSOR_NAME]; // Node's name |
| STATE pstate; // Physical Node's state (i.e. UP, DOWN, STOPPING) |
| int lnode_count; // Number of logical nodes |
| int process_count; // Number of processes in executing on the node |
| bool spare_node; // True when physical node is spare |
| unsigned int memory_total; // Node's total memory |
| unsigned int memory_free; // Node's current free memory |
| unsigned int swap_free; // Node's current free swap |
| unsigned int cache_free; // Node's current free buffer/cache |
| unsigned int memory_active; // Node's memory in active use |
| unsigned int memory_inactive; // Node's memory available for reclamation |
| unsigned int memory_dirty; // Node's memory waiting to be written to disk |
| unsigned int memory_writeback; // Node's memory being written to disk |
| unsigned int memory_VMallocUsed; // Node's amount of used virtual memory |
| unsigned int btime; // Boot time (secs since 1/1/1970) |
| int cores; // Number of processors in physical node |
| } node[MAX_NODE_LIST]; |
| int return_code; // error returned to sender |
| int last_pnid; // Last Physical Node ID returned |
| bool integrating; // true if re-integration in progress in local monitor |
| bool continuation; // true if continuation of earlier request |
| }; |
| |
| struct ProcessDeath_def |
| { |
| int nid; // dead process's node id |
| int pid; // dead process's process id |
| Verifier_t verifier; // dead process's verifier |
| _TM_Txid_External trans_id; |
| int aborted; // Non-zero indicates abnormal termination |
| char process_name[MAX_PROCESS_NAME]; // dead process's name |
| PROCESSTYPE type; // Process type |
| #ifdef USE_SEQUENCE_NUM |
| long long seqnum; // sequence number |
| #endif |
| }; |
| |
| struct ProcessInfo_def |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process id |
| Verifier_t verifier; // requesting process' verifier |
| char process_name[MAX_PROCESS_NAME]; // requesting process' name |
| int target_nid; // Node id of processes for status request (-1 for all) |
| int target_pid; // Process id of process for status request (-1 for all) |
| Verifier_t target_verifier; // Verifier of process for status request (-1 for if not used) |
| char target_process_name[MAX_PROCESS_NAME]; // Name of process for status request (NULL if not used) |
| char target_process_pattern[MAX_PROCESS_NAME]; // Name of process pattern for status request (NULL if not used) |
| PROCESSTYPE type; // Return only processes of this type (ProcessType_Undefined for all) |
| }; |
| |
| typedef |
| struct ProcessInfoState |
| { |
| int nid; // process's node id |
| int pid; // process's process id |
| Verifier_t verifier; // process's process verifier |
| PROCESSTYPE type; // process handling catagory |
| char process_name[MAX_PROCESS_NAME]; // process's Name |
| int os_pid; // process's OS based process id |
| int priority; // process's OS based priority |
| int parent_nid; // process's parent's node id |
| int parent_pid; // process's parent's process id |
| Verifier_t parent_verifier; // process's parent's process verifier |
| char parent_name[MAX_PROCESS_NAME]; // process's Name |
| char program[MAX_PROCESS_PATH]; // process's object file name |
| STATE state; // process's current state |
| bool event_messages; // true if receiving system notices |
| bool system_messages; // true if receiving system notices |
| bool paired; // true if functional copy of like process on another node |
| bool pending_delete; // true if process being deleted from cluster |
| bool pending_replication; // true if process pending replication to cluster |
| bool waiting_startup; // true if process has not sent startup message |
| bool opened; // true if process is currently opened by another process |
| bool backup; // true if process is a backup to the parent process |
| bool unhooked; // false if parent process dies will trigger child process exit |
| struct timespec creation_time; // creation time |
| } ProcessInfoState; |
| |
| struct ProcessInfo_reply_def |
| { |
| int num_processes; // number of process returned |
| ProcessInfoState process[MAX_PROCINFO_LIST]; |
| int return_code; // error returned to sender |
| bool more_data; // true if have additional process data |
| }; |
| |
| struct ProcessInfoNs_reply_def |
| { |
| int nid; // node id |
| int pid; // process id |
| Verifier_t verifier; // process verifier |
| char process_name[MAX_PROCESS_NAME]; // process name |
| PROCESSTYPE type; // Identifies the process handling catagory |
| int parent_nid; // parent's node id |
| int parent_pid; // parent's process id |
| Verifier_t parent_verifier; // parent's process verifier |
| int pair_parent_nid; // node id of real process pair parent process |
| int pair_parent_pid; // process id of real process pair parent process |
| Verifier_t pair_parent_verifier; // process id of real process pair parent process |
| int priority; // Linux system priority |
| int backup; // if non-zero, starts process as backup |
| STATE state; // process's current state |
| bool unhooked; // if hooked, parent process dies will trigger child process exits |
| bool event_messages; // true if want event messages |
| bool system_messages; // true if want system messages |
| long long tag; // user defined tag to be sent in completion notice |
| // strId_t pathStrId; // program lookup path (string id) |
| // strId_t ldpathStrId; // library load path (string id) |
| // strId_t programStrId; // full path to object file (string id) |
| char path[MAX_SEARCH_PATH]; // process's object lookup path to program |
| char ldpath[MAX_SEARCH_PATH]; // process's library load path for program |
| char program[MAX_PROCESS_PATH]; // program file name |
| char port_name[MPI_MAX_PORT_NAME]; // mpi port name from MPI_Open_port |
| int argc; // number of additional command line argument |
| char argv[MAX_ARGS][MAX_ARG_SIZE]; // array of additional command line arguments |
| char infile[MAX_PROCESS_PATH]; // if null then use monitor's infile |
| char outfile[MAX_PROCESS_PATH]; // if null then use monitor's outfile |
| struct timespec creation_time; // creation time |
| int return_code; // mpi error code of error |
| }; |
| |
| struct ProcessInfoCont_def |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process id |
| struct // last few process ids returned |
| { // previously |
| int nid; // node id |
| int pid; // process id |
| } context[MAX_PROC_CONTEXT]; |
| PROCESSTYPE type; // Return only processes of this type |
| bool allNodes; // true if requesting process info on all nodes |
| }; |
| |
| |
| struct Set_def |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process id |
| Verifier_t verifier; // requesting process's verifier |
| char process_name[MAX_PROCESS_NAME]; // requesting process's name |
| ConfigType type; // type of group being set |
| char group[MAX_KEY_NAME]; // name of group, if NULL and type=ConfigNode assume local node |
| char key[MAX_KEY_NAME]; // key name of the item being set |
| char value[MAX_VALUE_SIZE]; // value of key |
| }; |
| |
| struct Shutdown_def |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process id |
| ShutdownLevel level; // 0=normal, 1=fast or 2=crash |
| }; |
| |
| struct ShutdownNs_def |
| { |
| int nid; // requesting process's node id |
| int pid; // requesting process id |
| ShutdownLevel level; // 0=normal, 1=fast or 2=crash |
| }; |
| |
| struct SpareUp_def |
| { |
| int pnid; |
| char node_name[MPI_MAX_PROCESSOR_NAME]; |
| }; |
| |
| struct Startup_def |
| { |
| int nid; // process's node id argv[3] or -1 for attach |
| int pid; // process's process id argv[4] or -1 for attach |
| int os_pid; // process's native OS process id |
| char process_name[MAX_PROCESS_NAME]; // process's name argv[5] or assign for attach, "" will autogenerate name |
| char port_name[MPI_MAX_PORT_NAME]; // mpi port name from MPI_Open_port |
| char program[MAX_PROCESS_PATH]; // process's object filename |
| bool event_messages; // true if want event messages |
| bool system_messages; // true if want system messages |
| bool paired; // true if should pair with name process |
| Verifier_t verifier; // process's verifier |
| int startup_size; // size of this struct |
| }; |
| |
| struct Startup_reply_def |
| { |
| int nid; // target process's node id |
| int pid; // target process's process id |
| Verifier_t verifier; // process's verifier |
| int startup_size; // size of this struct |
| int return_code; // error returned to sender |
| char process_name[MAX_PROCESS_NAME]; // Name of target process |
| char fifo_stdin [MAX_PROCESS_PATH]; |
| char fifo_stdout [MAX_PROCESS_PATH]; |
| char fifo_stderr [MAX_PROCESS_PATH]; |
| }; |
| |
| struct Stfsd_def |
| { |
| int nid; // Requester's node id |
| int pid; // Requester's process id |
| int tag; // Requester's tag |
| int length; // The length in bytes used the data buffer |
| char data[MAX_STFSD_DATA]; // The data to be sent |
| }; |
| |
| struct Stfsd_reply_def |
| { |
| int nid; // Replying STFSD's node id |
| int pid; // Replying STFSD's process id |
| int return_code; // If non-zero, error code |
| int length; // The length in bytes of the data buffer |
| char data[MAX_STFSD_DATA]; // Reply data |
| }; |
| |
| struct TmLeader_def |
| { |
| int nid; // Requesting TM's node id |
| int pid; // Requesting TM's process id |
| }; |
| |
| struct TmReady_def |
| { |
| int nid; // Requesting TM's node id |
| int pid; // Requesting TM's process id |
| }; |
| |
| struct TmRestarted_def |
| { |
| int nid; // Restarted TM's logical node id |
| int pnid; // Restarted TM's physical node id |
| char node_name[MPI_MAX_PROCESSOR_NAME]; // Restarted TM's physical node name |
| }; |
| |
| struct TmSync_def |
| { |
| int nid; // Requesting TM's node id |
| int pid; // Requesting TM's process id |
| int tag; // Requesting TM's tag |
| int length; // The length in bytes used the data buffer |
| char data[MAX_SYNC_DATA]; // The data to be sent to all TM's in the cluster |
| }; |
| |
| struct TmSync_reply_def |
| { |
| int nid; // Replying TM's node id |
| int pid; // Replying TM's process id |
| int handle; // Request associated handle for sync completed notice |
| int return_code; // If non-zero, TM not excepting sync data |
| }; |
| |
| struct TmSyncNotice_def |
| { |
| int nid[MAX_TM_SYNCS]; // Owning TM's node id |
| int orig_count; // Number of originator tags |
| int orig_tag[MAX_TM_SYNCS]; // Originator tag (only valid for orig) |
| int orig_handle[MAX_TM_SYNCS]; // Originator handle (only valid for orig) |
| int count; // Number of handles returned |
| int handle[MAX_TM_SYNCS]; // Requests associated handle for sync completed notice |
| }; |
| |
| struct UnsolicitedTmSync_def |
| { |
| int nid; // Requesting TM's node id or target TM's node id |
| int pid; // Requesting TM's process id or target TM's process id |
| int handle; // Request associated handle for sync completed notice |
| int length; // The length in bytes used the data buffer |
| char data[MAX_SYNC_DATA]; // The data to be sent to all TM's in the cluster |
| }; |
| |
| struct TransInfo_def |
| { // Deprecated |
| int nid; // Requesting process's node id |
| int pid; // Requesting process id |
| char process_name[MAX_PROCESS_NAME]; // Name of process to list associated transactions |
| // If NULL then use trans-id to list assocaited process |
| _TM_Txid_External trans_id; // Transaction ID of enlisted processes to list |
| }; |
| |
| struct TransInfo_reply_def |
| { // Deprecated |
| int num_processes; // Number of process returned |
| struct |
| { |
| int nid; // Associated process's node id |
| int pid; // Associated process's process id |
| _TM_Txid_External trans_id; // Transiaction ID associated with process |
| } procs[MAX_PROC_LIST]; |
| int return_code; // Error returned to sender |
| }; |
| |
| struct ZoneInfo_def |
| { |
| int nid; // node id of requesting process |
| int pid; // process id of requesting process |
| int target_nid; // get zone information via node id (-1 for all) |
| int target_zid; // get zone information via zone id (-1 for all) |
| int last_nid; // Last Logical Node ID returned |
| int last_pnid; // Last Physical Node ID returned |
| bool continuation; // true if continuation of earlier request |
| }; |
| |
| struct ZoneInfo_reply_def |
| { |
| int num_nodes; // Number of logical nodes in the cluster |
| int num_returned; // Number of node entries returned |
| struct |
| { |
| int nid; // Logical Node's ID |
| int zid; // Logical Node's Zone ID |
| int pnid; // Node's Physical ID |
| STATE pstate; // Physical Node's state (i.e. UP, DOWN, STOPPING) |
| char node_name[MPI_MAX_PROCESSOR_NAME]; // Node's name |
| } node[MAX_NODE_LIST]; |
| int return_code; // error returned to sender |
| int last_nid; // Last Logical Node ID returned |
| int last_pnid; // Last Physical Node ID returned |
| bool continuation; // true if continuation of earlier request |
| }; |
| |
| struct request_def |
| { |
| REQTYPE type; |
| union |
| { |
| struct Change_def change; |
| struct Close_def close; |
| struct ProcessDeath_def death; |
| struct DelProcessNs_def del_process_ns; |
| struct NodeDown_def down; |
| struct Dump_def dump; |
| struct Event_def event; |
| struct Event_Notice_def event_notice; |
| struct Exit_def exit; |
| struct Get_def get; |
| struct Mount_def mount; |
| struct Kill_def kill; |
| struct NameServerAdd_def nameserver_add; |
| struct NameServerDelete_def nameserver_delete; |
| struct NameServerStart_def nameserver_start; |
| struct NameServerStop_def nameserver_stop; |
| struct NewProcess_def new_process; |
| struct NewProcessNs_def new_process_ns; |
| struct NodeAdd_def node_add; |
| struct NodeAdded_def node_added; |
| struct NodeChanged_def node_changed; |
| struct NodeDelete_def node_delete; |
| struct NodeDeleted_def node_deleted; |
| struct NodeInfo_def node_info; |
| struct NodeName_def nodename; |
| struct Notify_def notify; |
| struct Open_def open; |
| struct OpenInfo_def open_info; |
| struct NewProcess_Notice_def process_created; |
| struct ProcessInfo_def process_info; |
| struct ProcessInfoCont_def process_info_cont; |
| struct Set_def set; |
| struct Shutdown_def shutdown; |
| struct ShutdownNs_def shutdown_ns; |
| struct Startup_def startup; |
| #ifdef SQ_STFSD |
| struct Stfsd_def stfsd; |
| #endif |
| struct TmLeader_def leader; |
| struct TmReady_def tm_ready; |
| struct TmRestarted_def tm_restart; |
| struct TmSync_def tm_sync; |
| struct TmSyncNotice_def tm_sync_notice; |
| struct TransInfo_def trans_info; |
| struct UnsolicitedTmSync_def unsolicited_tm_sync; |
| struct NodeUp_def up; |
| struct NodeQuiesce_def quiesce; |
| struct NodePrepare_def prepare; |
| struct ZoneInfo_def zone_info; |
| struct NodeJoining_def joining; |
| struct PNodeInfo_def pnode_info; |
| struct SpareUp_def spare_up; |
| struct NodeReInt_def reintegrate; |
| } u; |
| }; |
| |
| struct reply_def |
| { |
| REPLYTYPE type; |
| union |
| { |
| struct DelProcessNs_reply_def del_process_ns; |
| struct Dump_reply_def dump; |
| struct Generic_reply_def generic; |
| struct Get_reply_def get; |
| struct Mount_reply_def mount; |
| struct NewProcess_reply_def new_process; |
| struct NewProcessNs_reply_def new_process_ns; |
| struct NodeInfo_reply_def node_info; |
| struct Open_reply_def open; |
| struct OpenInfo_reply_def open_info; |
| struct PNodeInfo_reply_def pnode_info; |
| struct ProcessInfo_reply_def process_info; |
| struct ProcessInfoNs_reply_def process_info_ns; |
| struct Startup_reply_def startup_info; |
| #ifdef SQ_STFSD |
| struct Stfsd_reply_def stfsd; |
| #endif |
| int tm_seqnum; |
| struct TmSync_reply_def tm_sync; |
| struct TransInfo_reply_def trans_info; |
| struct TmSync_reply_def unsolicited_tm_sync; |
| struct Close_reply_def close; |
| struct MonStats_reply_def mon_info; |
| struct ZoneInfo_reply_def zone_info; |
| struct NodeName_reply_def nodename; |
| } u; |
| }; |
| |
| struct message_def |
| { |
| MSGTYPE type; |
| bool noreply; // true if the receiving process is not to send reply. |
| int reply_tag; |
| union |
| { |
| int handle; // used only for TmSync notices |
| struct request_def request; |
| struct reply_def reply; |
| } u; |
| }; |
| |
| #endif /*MSGDEF_H_*/ |