⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smpd.h

📁 fortran并行计算包
💻 H
📖 第 1 页 / 共 3 页
字号:
/* -*- Mode: C; c-basic-offset:4 ; -*- *//* *  (C) 2001 by Argonne National Laboratory. *      See COPYRIGHT in top-level directory. */#ifndef SMPD_H#define SMPD_H#ifdef HAVE_WINDOWS_H#include <winsock2.h>#include <windows.h>#include <sys/types.h>#include <sys/stat.h>#include <io.h>#define SECURITY_WIN32#include <security.h>#else#include "smpdconf.h"#endif#include <stdio.h>#include <stdlib.h>#ifdef HAVE_SYS_TYPES_H#include <sys/types.h>#endif#ifdef HAVE_SYS_WAIT_H#include <sys/wait.h>#endif#ifdef HAVE_ERRNO_H#include <errno.h>#endif#ifdef HAVE_UNISTD_H#include <unistd.h>#endif#ifdef HAVE_MALLOC_H#include <malloc.h>#endif#ifdef HAVE_UUID_UUID_H#include <uuid/uuid.h>#endif#ifdef HAVE_STRING_H#include <string.h>#endif#ifdef HAVE_SYS_SOCKET_H#include <sys/socket.h>#endif#ifdef HAVE_SIGNAL_H#include <signal.h>#endif#ifdef USE_PTHREAD_STDIN_REDIRECTION#include <pthread.h>#endif#include "mpi.h"#include "mpidu_sock.h"#include "mpimem.h"#include "mpierror.h"#include "smpd_database.h"#include "pmi.h"#include "smpd_version.h"#define SMPD_VERSION_FAILURE "version_failure"#define SMPD_LISTENER_PORT               8676#define SMPD_SUCCESS                        0#define SMPD_FAIL                          -1#define SMPD_ERR_INVALID_USER              -2#define SMPD_CLOSE                          2#define SMPD_CONNECTED                      3#define SMPD_EXIT                           4#define SMPD_DBS_RETURN                     5#define SMPD_ABORT                          6typedef int SMPD_BOOL;#define SMPD_TRUE                           1#define SMPD_FALSE                          0#define SMPD_INVALID_SETTING               -1#define SMPD_SERVER_AUTHENTICATION          0#define SMPD_CLIENT_AUTHENTICATION          1#define SMPD_MAX_NAME_LENGTH              256#define SMPD_MAX_VALUE_LENGTH            8192#define SMPD_MAX_FILENAME                1024#define SMPD_MAX_LINE_LENGTH            32768#define SMPD_MAX_ARGC                    1024/*#define SMPD_MAX_STDOUT_LENGTH           1024*/#define SMPD_MAX_STDOUT_LENGTH           (SMPD_MAX_CMD_LENGTH - 100)#define SMPD_MAX_SESSION_HEADER_LENGTH   1024#define SMPD_MAX_ERROR_LEN               1024#define SMPD_CMD_HDR_LENGTH                13#define SMPD_MAX_CMD_LENGTH	        32768#define SMPD_MAX_DBG_PRINTF_LENGTH      (1024 + SMPD_MAX_CMD_LENGTH)#define SMPD_MAX_CMD_STR_LENGTH           100#define SMPD_MAX_HOST_LENGTH	           64#define SMPD_MAX_EXE_LENGTH              2048#define SMPD_MAX_ENV_LENGTH              4096#define SMPD_MAX_CLIQUE_LENGTH           8192#define SMPD_MAX_DIR_LENGTH              1024#define SMPD_MAX_PATH_LENGTH             1024#define SMPD_MAX_ACCOUNT_LENGTH           100#define SMPD_MAX_PASSWORD_LENGTH          200#define SMPD_MAX_CRED_REQUEST_LENGTH      100#define SMPD_MAX_PWD_REQUEST_LENGTH       100#define SMPD_MAX_PORT_STR_LENGTH           20#define SMPD_MAX_TO_STRING_INDENT          20#define SMPD_STDIN_PACKET_SIZE           2048#define SMPD_PASSPHRASE_MAX_LENGTH        256#define SMPD_SALT_VALUE                   "14"#define SMPD_SESSION_REQUEST_LEN          100#define SMPD_AUTHENTICATION_STR_LEN       256#define SMPD_AUTHENTICATION_REPLY_LENGTH  100#define SMPD_AUTHENTICATION_REJECTED_STR  "FAIL"#define SMPD_AUTHENTICATION_REJECTED_VERSION_STR "FAIL_VERSION"#define SMPD_AUTHENTICATION_ACCEPTED_STR  "SUCCESS"#define SMPD_SMPD_SESSION_STR             "smpd"#define SMPD_PROCESS_SESSION_STR          "process"#define SMPD_PMI_SESSION_STR              "pmi"#define SMPD_DEFAULT_PASSPHRASE           "behappy"#define SMPD_DEFAULT_PASSWORD             "gastroduodenostomy"#define SMPD_REGISTRY_KEY                 "SOFTWARE\\MPICH\\SMPD"#define SMPD_REGISTRY_CACHE_KEY           "SOFTWARE\\MPICH\\SMPD\\CACHE"#define MPICH_REGISTRY_KEY                "SOFTWARE\\MPICH"#define SMPD_CRED_REQUEST                 "credentials"#define SMPD_CRED_REQUEST_JOB             "job"#define SMPD_NO_CRED_REQUEST              "nocredentials"#define SMPD_CRED_ACK_SSPI                "sspi"#define SMPD_CRED_ACK_SSPI_JOB_KEY        "sspi_job"#define SMPD_PWD_REQUEST                  "pwd"#define SMPD_NO_PWD_REQUEST               "nopwd"#define SMPD_SSPI_REQUEST                 "sspi"#define SMPD_NO_RECONNECT_PORT_STR        "-1"#define SMPD_SUCCESS_STR                  "SUCCESS"#define SMPD_FAIL_STR                     "FAIL"#define SMPD_OUTPUT_MUTEX_NAME            "SMPD_OUTPUT_MUTEX"#define SMPD_DATA_MUTEX_NAME              "SMPD_DATA_MUTEX"#define SMPD_DYNAMIC_HOSTS_KEY            "dynamic_hosts"#define SMPD_PATH_SPEC                    "{SMPD_PATH}"#define SMPD_PLAINTEXT_PREFIX             'y'#define SMPD_ENCRYPTED_PREFIX             'x'#define SMPD_SSPI_HEADER_LENGTH           SMPD_CMD_HDR_LENGTH#define SMPD_SSPI_JOB_KEY_LENGTH          100#define SMPD_SSPI_MAX_BUFFER_SIZE         (4*1024)/*#define SMPD_SECURITY_PACKAGE             "Kerberos"*/#define SMPD_SECURITY_PACKAGE             "Negotiate"#define SMPD_ENV_OPTION_PREFIX            "SMPD_OPTION_"#define SMPD_FREE_COOKIE           0xDDBEEFDD#define SMPD_DBG_STATE_STDOUT            0x01#define SMPD_DBG_STATE_ERROUT            0x02#define SMPD_DBG_STATE_LOGFILE           0x04#define SMPD_DBG_STATE_PREPEND_RANK      0x08#define SMPD_DBG_STATE_TRACE             0x10#define SMPD_DBG_STATE_ALL               (SMPD_DBG_STATE_STDOUT | SMPD_DBG_STATE_ERROUT | SMPD_DBG_STATE_LOGFILE | SMPD_DBG_STATE_PREPEND_RANK | SMPD_DBG_STATE_TRACE)#define SMPD_DBG_FILE_SIZE               (4*1024*1024)#define SMPD_QUOTE_CHAR                   '\"'#define SMPD_DELIM_CHAR                   '='#define SMPD_DELIM_STR                    "="#define SMPD_ESCAPE_CHAR                  '\\'#define SMPD_HIDE_CHAR                    '*'#define SMPD_SEPAR_CHAR                   ' '#define DBS_SUCCESS_STR	                  "DBS_SUCCESS"#define DBS_FAIL_STR	                  "DBS_FAIL"#define DBS_END_STR	                  "DBS_END"#define PMI_KVS_ID_KEY                    "PMI_KVS_ID"#define SMPD_CONSOLE_STR_LENGTH         10*SMPD_MAX_CMD_LENGTH#define SMPD_DEFAULT_TIMEOUT              120#define SMPD_SHORT_TIMEOUT                 60#define SMPD_DEFAULT_PRIORITY_CLASS         2#define SMPD_DEFAULT_PRIORITY               3#define SMPD_SINGLETON_MAX_KVS_NAME_LEN     100#define SMPD_SINGLETON_MAX_HOST_NAME_LEN    100#define SMPD_UNREFERENCED_ARG(a) a#ifdef HAVE_WINDOWS_H#define snprintf _snprintf#define vsnprintf _vsnprintf#define smpd_get_last_error GetLastError#else#define smpd_get_last_error() errno#endif#define SMPD_ERR_SETPRINTANDJUMP(msg, errcode) {smpd_err_printf("%s", msg); retval = errcode; goto fn_fail; }#define SMPD_MAX_ERR_MSG_LENGTH 100typedef enum smpd_state_t{    SMPD_IDLE,    SMPD_EXITING,    SMPD_RESTARTING,    SMPD_DONE,    SMPD_CLOSING,    SMPD_SMPD_LISTENING,    SMPD_MGR_LISTENING,    SMPD_PMI_LISTENING,    SMPD_PMI_SERVER_LISTENING,    SMPD_SINGLETON_CLIENT_LISTENING,    SMPD_SINGLETON_MPIEXEC_CONNECTING,    SMPD_SINGLETON_READING_PMI_INFO,    SMPD_SINGLETON_WRITING_PMI_INFO,    SMPD_SINGLETON_DONE,    SMPD_MPIEXEC_CONNECTING_TREE,    SMPD_MPIEXEC_CONNECTING_SMPD,    SMPD_CONNECTING_RPMI,    SMPD_CONNECTING_PMI,    SMPD_CONNECTING,    SMPD_RECONNECTING,    SMPD_READING_CHALLENGE_STRING,    SMPD_WRITING_CHALLENGE_STRING,    SMPD_READING_CHALLENGE_RESPONSE,    SMPD_WRITING_CHALLENGE_RESPONSE,    SMPD_READING_CONNECT_RESULT,    SMPD_WRITING_CONNECT_RESULT,    SMPD_READING_STDIN,    SMPD_WRITING_DATA_TO_STDIN,    SMPD_READING_STDOUT,    SMPD_READING_STDERR,    SMPD_READING_CMD_HEADER,    SMPD_READING_CMD,    SMPD_WRITING_CMD,    SMPD_READING_SESSION_REQUEST,    SMPD_WRITING_SMPD_SESSION_REQUEST,    SMPD_WRITING_PROCESS_SESSION_REQUEST,    SMPD_WRITING_PMI_SESSION_REQUEST,    SMPD_READING_PWD_REQUEST,    SMPD_WRITING_PWD_REQUEST,    SMPD_WRITING_NO_PWD_REQUEST,    SMPD_WRITING_SSPI_REQUEST,    SMPD_READING_SMPD_PASSWORD,    SMPD_WRITING_SMPD_PASSWORD,    SMPD_READING_CRED_REQUEST,    SMPD_WRITING_CRED_REQUEST,    SMPD_WRITING_NO_CRED_REQUEST,    SMPD_READING_CRED_ACK,    SMPD_WRITING_CRED_ACK_YES,    SMPD_WRITING_CRED_ACK_NO,    SMPD_READING_ACCOUNT,    SMPD_WRITING_ACCOUNT,    SMPD_READING_PASSWORD,    SMPD_WRITING_PASSWORD,    SMPD_READING_RECONNECT_REQUEST,    SMPD_WRITING_RECONNECT_REQUEST,    SMPD_WRITING_NO_RECONNECT_REQUEST,    SMPD_READING_SESSION_HEADER,    SMPD_WRITING_SESSION_HEADER,    SMPD_READING_SMPD_RESULT,    SMPD_WRITING_SESSION_ACCEPT,    SMPD_WRITING_SESSION_REJECT,    SMPD_READING_PROCESS_RESULT,    SMPD_WRITING_PROCESS_SESSION_ACCEPT,    SMPD_WRITING_PROCESS_SESSION_REJECT,    SMPD_READING_TIMEOUT,    SMPD_READING_MPIEXEC_ABORT,    SMPD_READING_PMI_ID,    SMPD_WRITING_PMI_ID,    SMPD_READING_SSPI_HEADER,    SMPD_READING_SSPI_BUFFER,    SMPD_WRITING_SSPI_HEADER,    SMPD_WRITING_SSPI_BUFFER,    SMPD_WRITING_DELEGATE_REQUEST,    SMPD_READING_DELEGATE_REQUEST_RESULT,    SMPD_WRITING_DELEGATE_REQUEST_RESULT,    SMPD_WRITING_IMPERSONATE_RESULT,    SMPD_READING_IMPERSONATE_RESULT,    SMPD_WRITING_CRED_ACK_SSPI,    SMPD_WRITING_CRED_ACK_SSPI_JOB_KEY,    SMPD_WRITING_SSPI_JOB_KEY,    SMPD_READING_SSPI_JOB_KEY,    SMPD_READING_CLIENT_SSPI_HEADER,    SMPD_READING_CLIENT_SSPI_BUFFER,    SMPD_WRITING_CLIENT_SSPI_HEADER,    SMPD_WRITING_CLIENT_SSPI_BUFFER,    SMPD_END_MARKER_NUM_STATES} smpd_state_t;typedef enum smpd_context_type_t{    SMPD_CONTEXT_INVALID,    SMPD_CONTEXT_STDIN,    SMPD_CONTEXT_MPIEXEC_STDIN,    SMPD_CONTEXT_MPIEXEC_STDIN_RSH,    SMPD_CONTEXT_STDOUT,    SMPD_CONTEXT_STDOUT_RSH,    SMPD_CONTEXT_STDERR,    SMPD_CONTEXT_STDERR_RSH,    SMPD_CONTEXT_PARENT,    SMPD_CONTEXT_LEFT_CHILD,    SMPD_CONTEXT_RIGHT_CHILD,    SMPD_CONTEXT_CHILD,    SMPD_CONTEXT_LISTENER,    SMPD_CONTEXT_PMI_LISTENER,    SMPD_CONTEXT_SMPD,    SMPD_CONTEXT_PMI,    SMPD_CONTEXT_TIMEOUT,    SMPD_CONTEXT_MPIEXEC_ABORT,    SMPD_CONTEXT_SINGLETON_INIT_CLIENT,    SMPD_CONTEXT_SINGLETON_INIT_MPIEXEC,    SMPD_CONTEXT_UNDETERMINED,    SMPD_CONTEXT_FREED} smpd_context_type_t;typedef enum smpd_context_target_t{    SMPD_TARGET_UNDETERMINED,    SMPD_TARGET_SMPD,    SMPD_TARGET_PROCESS,    SMPD_TARGET_PMI

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -