37dfdb76eb
This commit was SVN r11661.
122 строки
3.6 KiB
C
122 строки
3.6 KiB
C
/*
|
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
* University Research and Technology
|
|
* Corporation. All rights reserved.
|
|
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
* of Tennessee Research Foundation. All rights
|
|
* reserved.
|
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
* University of Stuttgart. All rights reserved.
|
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
|
* All rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
|
|
#ifndef ORTECONSOLE_H
|
|
#define ORTECONSOLE_H
|
|
|
|
#include "orte_config.h"
|
|
|
|
#include "opal/class/opal_list.h"
|
|
#include "opal/threads/mutex.h"
|
|
#include "opal/threads/condition.h"
|
|
|
|
#include "orte/mca/odls/odls_types.h"
|
|
|
|
#include "orte/tools/orted/orted.h"
|
|
|
|
#if defined(c_plusplus) || defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define ORTE_CONSOLE_MAX_LINE_LENGTH 1024
|
|
#define ORTE_CONSOLE_MAX_ARGC 10
|
|
|
|
/*
|
|
* Local Structures
|
|
*/
|
|
|
|
/* Command line Structure */
|
|
typedef struct {
|
|
bool help;
|
|
char *hostfile;
|
|
|
|
opal_mutex_t lock;
|
|
opal_condition_t cond;
|
|
} orte_console_globals_t;
|
|
|
|
/* Console Command Types */
|
|
enum orte_console_type_t {
|
|
ORTE_CONSOLE_TYPE_NULL,
|
|
|
|
ORTE_CONSOLE_TYPE_STD,
|
|
ORTE_CONSOLE_TYPE_HIDDEN
|
|
};
|
|
typedef enum orte_console_type_t orte_console_type_t;
|
|
|
|
/* Contained parsed user input */
|
|
typedef struct {
|
|
/* Command Name */
|
|
char * cmd_name;
|
|
|
|
char ** argv;
|
|
int argc;
|
|
} orte_console_input_command_t;
|
|
|
|
/* Structure detailing each command allowed by the console */
|
|
typedef struct {
|
|
/* Full Name for the command */
|
|
const char * cmd_full_name;
|
|
/* Common abbreviation for this command */
|
|
const char * cmd_short_name;
|
|
/* Number of expected additional arguments */
|
|
int cmd_args;
|
|
/* Type of command */
|
|
orte_console_type_t cmd_type;
|
|
/* Pointer to the function to execute */
|
|
int (*cmd_function) (orte_console_input_command_t);
|
|
/* Short illustration of how the command should be used */
|
|
const char * cmd_usage;
|
|
/* Short description of what this command does */
|
|
const char * cmd_description;
|
|
} orte_console_command_t;
|
|
|
|
/* Local list of allocated hosts */
|
|
static opal_list_t orte_console_hosts;
|
|
|
|
/*
|
|
* Function for each command
|
|
*/
|
|
static int orte_console_exit(orte_console_input_command_t);
|
|
static int orte_console_help(orte_console_input_command_t);
|
|
|
|
static int orte_console_boot_daemons(orte_console_input_command_t);
|
|
static int orte_console_add_host(orte_console_input_command_t);
|
|
static int orte_console_remove_host(orte_console_input_command_t);
|
|
static int orte_console_display_configuration(orte_console_input_command_t);
|
|
static int orte_console_halt(orte_console_input_command_t);
|
|
|
|
static int orte_console_contactinfo(orte_console_input_command_t);
|
|
|
|
static int orte_console_not_imp(orte_console_input_command_t);
|
|
static int orte_console_dump(orte_console_input_command_t);
|
|
static int orte_console_ps(orte_console_input_command_t);
|
|
|
|
/*
|
|
* Support Functions
|
|
*/
|
|
static char *orte_console_get_input_line(void);
|
|
static int orte_console_send_command(orte_daemon_cmd_flag_t usercmd);
|
|
static int orte_console_parse_command(char * usercmd, orte_console_input_command_t *input_command);
|
|
static int orte_console_execute_command(orte_console_input_command_t command);
|
|
|
|
#if defined(c_plusplus) || defined(__cplusplus)
|
|
}
|
|
#endif
|
|
|
|
#endif /* ORTECONSOLE_H */
|