[mpich2-commits] r7652 - in mpich2/trunk/src/pm/hydra: include pm/pmiserv tools/bind tools/bind/hwloc tools/bind/plpa tools/bootstrap/external tools/bootstrap/persist tools/bootstrap/src tools/bootstrap/utils tools/ckpoint tools/ckpoint/blcr tools/debugger tools/demux tools/ftb tools/nameserver ui ui/include ui/mpich ui/utils utils/alloc utils/args utils/dbg utils/env utils/launch utils/others utils/signals utils/sock utils/string

balaji at mcs.anl.gov balaji at mcs.anl.gov
Mon Jan 3 07:03:34 CST 2011


Author: balaji
Date: 2011-01-03 07:03:34 -0600 (Mon, 03 Jan 2011)
New Revision: 7652

Added:
   mpich2/trunk/src/pm/hydra/include/hydra_server.h
   mpich2/trunk/src/pm/hydra/ui/include/
   mpich2/trunk/src/pm/hydra/ui/include/ui.h
Removed:
   mpich2/trunk/src/pm/hydra/include/hydra_base.h
   mpich2/trunk/src/pm/hydra/include/hydra_utils.h
Modified:
   mpich2/trunk/src/pm/hydra/include/hydra.h
   mpich2/trunk/src/pm/hydra/pm/pmiserv/common.c
   mpich2/trunk/src/pm/hydra/pm/pmiserv/common.h
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.c
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.h
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.c
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.h
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_cb.c
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi.h
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v2.c
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_utils.c
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_cb.c
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmci.c
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.c
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.h
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v1.c
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v2.c
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_utils.c
   mpich2/trunk/src/pm/hydra/tools/bind/bind.c
   mpich2/trunk/src/pm/hydra/tools/bind/bind.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/bind_hwloc.c
   mpich2/trunk/src/pm/hydra/tools/bind/plpa/bind_plpa.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_env.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_finalize.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_query_native_int.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll.h
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_launch.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_node_list.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_proxy_id.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf.h
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf_query_node_list.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs.h
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs_query_node_list.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge.h
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge_query_node_list.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm.h
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_launch.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_proxy_id.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.h
   mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_client.h
   mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_init.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_launch.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.h
   mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_wait.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_env.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_finalize.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in
   mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_launch.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_native_int.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_node_list.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_proxy_id.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_usize.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_wait.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu.h
   mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_cb.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_env.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_finalize.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_native_int.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_node_list.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_proxy_id.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_usize.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_wait.c
   mpich2/trunk/src/pm/hydra/tools/ckpoint/blcr/ckpoint_blcr.c
   mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.c
   mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.h
   mpich2/trunk/src/pm/hydra/tools/debugger/debugger.c
   mpich2/trunk/src/pm/hydra/tools/demux/demux.h
   mpich2/trunk/src/pm/hydra/tools/demux/demux_internal.h
   mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb.c
   mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb_dummy.c
   mpich2/trunk/src/pm/hydra/tools/nameserver/hydra_nameserver.c
   mpich2/trunk/src/pm/hydra/ui/Makefile.mk
   mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.c
   mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.h
   mpich2/trunk/src/pm/hydra/ui/mpich/utils.c
   mpich2/trunk/src/pm/hydra/ui/utils/uiu.c
   mpich2/trunk/src/pm/hydra/ui/utils/uiu.h
   mpich2/trunk/src/pm/hydra/utils/alloc/alloc.c
   mpich2/trunk/src/pm/hydra/utils/args/args.c
   mpich2/trunk/src/pm/hydra/utils/dbg/dbg.c
   mpich2/trunk/src/pm/hydra/utils/env/env.c
   mpich2/trunk/src/pm/hydra/utils/launch/launch.c
   mpich2/trunk/src/pm/hydra/utils/others/others.c
   mpich2/trunk/src/pm/hydra/utils/signals/signals.c
   mpich2/trunk/src/pm/hydra/utils/sock/sock.c
   mpich2/trunk/src/pm/hydra/utils/string/string.c
Log:
Code-cleanup.

1. Move UI specific parameters to a different structure, so other
components don't see them.

2. Rename HYD_handle to HYD_server_info to make the data in it
clearer.

3. Rename hydra.h to hydra_server.h (this is only used by the server
side). Also make sure the proxy side code does not include it.

4. Merge hydra_base.h and hydra_utils.h and make it hydra.h, as these
are the utility functions used for both the servers and the proxies.

Modified: mpich2/trunk/src/pm/hydra/include/hydra.h
===================================================================
--- mpich2/trunk/src/pm/hydra/include/hydra.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/include/hydra.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,66 +7,597 @@
 #ifndef HYDRA_H_INCLUDED
 #define HYDRA_H_INCLUDED
 
+#include "mpl.h"
+
+extern char *HYD_dbg_prefix;
+
 #include <stdio.h>
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra_config.h"
 
-struct HYD_cmd {
-    enum {
-        HYD_CLEANUP,
-        HYD_CKPOINT
-    } type;
+#if defined NEEDS_POSIX_FOR_SIGACTION
+#define _POSIX_SOURCE
+#endif /* NEEDS_POSIX_FOR_SIGACTION */
+
+#if defined HAVE_WINDOWS_H
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#endif /* HAVE_WINDOWS_H */
+
+#if defined HAVE_UNISTD_H
+#include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+
+#if defined HAVE_STDLIB_H
+#include <stdlib.h>
+#endif /* HAVE_STDLIB_H */
+
+#if defined HAVE_STRING_H
+#include <string.h>
+#endif /* HAVE_STRING_H */
+
+#if defined HAVE_STRINGS_H
+#include <strings.h>
+#endif /* HAVE_STRINGS_H */
+
+#if defined HAVE_STDARG_H
+#include <stdarg.h>
+#endif /* HAVE_STDARG_H */
+
+#if defined HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif /* HAVE_SYS_TYPES_H */
+
+#if defined HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif /* HAVE_SYS_STAT_H */
+
+#if defined HAVE_TIME_H
+#include <time.h>
+#endif /* HAVE_TIME_H */
+
+#if defined HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif /* HAVE_SYS_TIME_H */
+
+#if defined HAVE_IFADDRS_H
+#include <ifaddrs.h>
+#endif /* HAVE_IFADDRS_H */
+
+#if defined HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif /* HAVE_ARPA_INET_H */
+
+#if defined HAVE_ERRNO_H
+#include <errno.h>
+#endif /* HAVE_ERRNO_H */
+
+#if !defined HAVE_GETTIMEOFDAY
+#error "hydra requires gettimeofday support"
+#endif /* HAVE_GETTIMEOFDAY */
+
+#if !defined HAVE_MACRO_VA_ARGS
+#error "hydra requires VA_ARGS support"
+#endif /* HAVE_MACRO_VA_ARGS */
+
+#if defined MAXHOSTNAMELEN
+#define MAX_HOSTNAME_LEN MAXHOSTNAMELEN
+#else
+#define MAX_HOSTNAME_LEN 256
+#endif /* MAXHOSTNAMELEN */
+
+#define HYDRA_MAX_PATH 4096
+
+/* sockets required headers */
+#ifdef HAVE_POLL_H
+#include <poll.h>
+#endif /* HAVE_POLL_H */
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif /* HAVE_FCNTL_H */
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif /* HAVE_NETDB_H */
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif /* HAVE_NETINET_IN_H */
+#ifdef HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif /* HAVE_NETINET_TCP_H */
+
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
+#define HYD_POLLIN  (0x0001)
+#define HYD_POLLOUT (0x0002)
+#define HYD_POLLHUP (0x0004)
+
+#define HYD_TMPBUF_SIZE (64 * 1024)
+#define HYD_TMP_STRLEN  1024
+#define HYD_NUM_TMP_STRINGS 1000
+
+#define dprintf(...)
+
+#ifndef ATTRIBUTE
+#ifdef HAVE_GCC_ATTRIBUTE
+#define ATTRIBUTE(a_) __attribute__(a_)
+#else
+#define ATTRIBUTE(a_)
+#endif
+#endif
+
+#define HYD_IS_HELP(str) \
+    ((!strcmp((str), "-h")) || (!strcmp((str), "-help")) || (!strcmp((str), "--help")))
+
+#define HYD_DRAW_LINE(x)                                 \
+    {                                                    \
+        int i_;                                          \
+        for (i_ = 0; i_ < (x); i_++)                     \
+            printf("=");                                 \
+        printf("\n");                                    \
+    }
+
+#define HYD_CONVERT_FALSE_TO_NULL(x) \
+    {                                                                   \
+        if (!(x)) {                                                     \
+        }                                                               \
+        else if (!strcasecmp((x), "none") || !strcasecmp((x), "no") ||  \
+                 !strcasecmp((x), "dummy") || !strcasecmp((x), "null") || \
+                 !strcasecmp((x), "nil") || !strcasecmp((x), "false")) { \
+            HYDU_FREE((x));                                             \
+            (x) = NULL;                                                 \
+        }                                                               \
+    }
+
+#if defined MANUAL_EXTERN_ENVIRON
+extern char **environ;
+#endif /* MANUAL_EXTERN_ENVIRON */
+
+#define HYD_SILENT_ERROR(status) (((status) == HYD_GRACEFUL_ABORT) || ((status) == HYD_TIMED_OUT))
+
+#define HYDRA_NAMESERVER_DEFAULT_PORT 6392
+
+/* fd state */
+enum HYD_fd_state {
+    HYD_FD_UNSET = -1,
+    HYD_FD_CLOSED = -2
 };
 
-struct HYD_handle {
-    struct HYD_user_global user_global;
+/* Status information */
+typedef enum {
+    HYD_SUCCESS = 0,
+    HYD_FAILURE,        /* general failure */
 
-    int ppn;
+    /* Silent errors */
+    HYD_GRACEFUL_ABORT,
+    HYD_TIMED_OUT,
 
-    char *base_path;
+    /* Regular errors */
+    HYD_NO_MEM,
+    HYD_SOCK_ERROR,
+    HYD_INVALID_PARAM,
+    HYD_INTERNAL_ERROR
+} HYD_status;
 
-    char *port_range;
+#if defined(NEEDS_GETHOSTNAME_DECL)
+int gethostname(char *name, size_t len);
+#endif
 
-    char *interface_env_name;
+typedef unsigned short HYD_event_t;
 
-    char *nameserver;
+/* Argument matching functions */
+struct HYD_arg_match_table {
+    const char *arg;
+     HYD_status(*handler_fn) (char *arg, char ***argv_p);
+    void (*help_fn) (void);
+};
 
-    char *local_hostname;
 
-    int ckpoint_int;
+/* Environment information */
+struct HYD_env {
+    const char *env_name;
+    const char *env_value;
+    struct HYD_env *next;
+};
 
-    int print_rank_map;
-    int print_all_exitcodes;
+typedef enum HYD_env_overwrite {
+    HYD_ENV_OVERWRITE_TRUE,
+    HYD_ENV_OVERWRITE_FALSE
+} HYD_env_overwrite_t;
 
-    int ranks_per_proc;
+typedef enum {
+    HYD_ENV_PROP_UNSET,
+    HYD_ENV_PROP_ALL,
+    HYD_ENV_PROP_NONE,
+    HYD_ENV_PROP_LIST
+} HYD_env_prop_t;
 
-     HYD_status(*stdout_cb) (int pgid, int proxy_id, int rank, void *buf, int buflen);
-     HYD_status(*stderr_cb) (int pgid, int proxy_id, int rank, void *buf, int buflen);
+struct HYD_env_global {
+    struct HYD_env *system;
+    struct HYD_env *user;
+    struct HYD_env *inherited;
+    char *prop;
+};
 
-    /* All of the available nodes */
-    struct HYD_node *node_list;
-    int global_core_count;
-    enum HYD_sort_order {
-        NONE = 0,
-        ASCENDING = 1,
-        DESCENDING = 2
-    } sort_order;
+/* Executable information */
+struct HYD_exec {
+    char *exec[HYD_NUM_TMP_STRINGS];
+    char *wdir;
 
-    /* Process groups */
-    struct HYD_pg pg_list;
+    int proc_count;
+    struct HYD_env *user_env;
+    char *env_prop;
 
-    /* Random parameters used for internal code */
-    int func_depth;
+    int appnum;
 
-    /* Cleanup */
-    int cleanup_pipe[2];
+    struct HYD_exec *next;
+};
 
-#if defined ENABLE_PROFILING
-    int enable_profiling;
-    int num_pmi_calls;
-#endif                          /* ENABLE_PROFILING */
+/* Process group */
+struct HYD_pg {
+    int pgid;
+    struct HYD_proxy *proxy_list;
+    int pg_process_count;
+    int barrier_count;
+
+    struct HYD_pg *spawner_pg;
+
+    /* scratch space for the PM */
+    void *pg_scratch;
+
+    struct HYD_pg *next;
 };
 
-extern struct HYD_handle HYD_handle;
+/* Information about the node itself */
+struct HYD_node {
+    char *hostname;
+    int core_count;
 
+    /* Node-specific binding information */
+    char *local_binding;
+
+    struct HYD_node *next;
+};
+
+/* Proxy information */
+struct HYD_proxy {
+    struct HYD_node node;
+
+    struct HYD_pg *pg;          /* Back pointer to the PG */
+
+    char **exec_launch_info;
+
+    int proxy_id;
+
+    int start_pid;
+    int proxy_process_count;
+
+    struct HYD_exec *exec_list;
+
+    int *pid;
+    int *exit_status;
+    int control_fd;
+
+    struct HYD_proxy *next;
+};
+
+/* Global user parameters */
+struct HYD_user_global {
+    /* RMK */
+    char *rmk;
+
+    /* Launcher */
+    char *launcher;
+    char *launcher_exec;
+
+    /* Process binding */
+    char *binding;
+    char *bindlib;
+
+    /* Checkpoint restart */
+    char *ckpointlib;
+    char *ckpoint_prefix;
+    int ckpoint_num;
+
+    /* Demux engine */
+    char *demux;
+
+    /* Network interface */
+    char *iface;
+
+    /* Other random parameters */
+    int enablex;
+    int debug;
+
+    int auto_cleanup;
+
+    struct HYD_env_global global_env;
+};
+
+#define HYDU_dump_prefix(fp)                    \
+    {                                           \
+        fprintf(fp, "[%s] ", HYD_dbg_prefix);   \
+        fflush(fp);                             \
+    }
+
+#define HYDU_dump_noprefix(fp, ...)             \
+    {                                           \
+        fprintf(fp, __VA_ARGS__);               \
+        fflush(fp);                             \
+    }
+
+#define HYDU_dump(fp, ...)                      \
+    {                                           \
+        HYDU_dump_prefix(fp);                   \
+        HYDU_dump_noprefix(fp, __VA_ARGS__);    \
+    }
+
+#if defined HAVE__FUNC__
+#define HYDU_FUNC __func__
+#elif defined HAVE_CAP__FUNC__
+#define HYDU_FUNC __FUNC__
+#elif defined HAVE__FUNCTION__
+#define HYDU_FUNC __FUNCTION__
+#endif
+
+#if defined __FILE__ && defined HYDU_FUNC
+#define HYDU_error_printf(...)                                          \
+    {                                                                   \
+        HYDU_dump_prefix(stderr);                                       \
+        HYDU_dump_noprefix(stderr, "%s (%s:%d): ", __func__, __FILE__, __LINE__); \
+        HYDU_dump_noprefix(stderr, __VA_ARGS__);                        \
+    }
+#elif defined __FILE__
+#define HYDU_error_printf(...)                            \
+    {                                                     \
+        HYDU_dump_prefix(stderr);                                       \
+        HYDU_dump_noprefix(stderr, "%s (%d): ", __FILE__, __LINE__);    \
+        HYDU_dump_noprefix(stderr, __VA_ARGS__);                        \
+    }
+#else
+#define HYDU_error_printf(...)                                          \
+    {                                                                   \
+        HYDU_dump_prefix(stderr);                                       \
+        HYDU_dump_noprefix(stderr, __VA_ARGS__);                        \
+    }
+#endif
+
+#define HYDU_ASSERT(x, status)                                          \
+    {                                                                   \
+        if (!(x)) {                                                     \
+            HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,             \
+                                 "assert (%s) failed\n", #x);           \
+        }                                                               \
+    }
+
+#define HYDU_IGNORE_TIMEOUT(status)             \
+    {                                           \
+        if ((status) == HYD_TIMED_OUT)          \
+            (status) = HYD_SUCCESS;             \
+    }
+
+#define HYDU_ERR_POP(status, ...)                                       \
+    {                                                                   \
+        if (status && !HYD_SILENT_ERROR(status)) {                      \
+            HYDU_error_printf(__VA_ARGS__);                             \
+            goto fn_fail;                                               \
+        }                                                               \
+        else if (HYD_SILENT_ERROR(status)) {                            \
+            goto fn_exit;                                               \
+        }                                                               \
+    }
+
+#define HYDU_ERR_SETANDJUMP(status, error, ...)                         \
+    {                                                                   \
+        status = error;                                                 \
+        HYDU_ERR_POP(status, __VA_ARGS__);                              \
+    }
+
+#define HYDU_ERR_CHKANDJUMP(status, chk, error, ...)                    \
+    {                                                                   \
+        if ((chk))                                                      \
+            HYDU_ERR_SETANDJUMP(status, error, __VA_ARGS__);            \
+    }
+
+#if defined ENABLE_WARNINGS
+#define HYDU_warn_printf HYDU_error_printf
+#else
+#define HYDU_warn_printf(...)
+#endif /* ENABLE_WARNINGS */
+
+/* Disable for now; we might add something here in the future */
+#define HYDU_FUNC_ENTER()   do {} while (0)
+#define HYDU_FUNC_EXIT()    do {} while (0)
+
+
+/* alloc */
+void HYDU_init_user_global(struct HYD_user_global *user_global);
+void HYDU_finalize_user_global(struct HYD_user_global *user_global);
+void HYDU_init_global_env(struct HYD_env_global *global_env);
+void HYDU_finalize_global_env(struct HYD_env_global *global_env);
+HYD_status HYDU_alloc_node(struct HYD_node **node);
+void HYDU_free_node_list(struct HYD_node *node_list);
+void HYDU_init_pg(struct HYD_pg *pg, int pgid);
+HYD_status HYDU_alloc_pg(struct HYD_pg **pg, int pgid);
+void HYDU_free_pg_list(struct HYD_pg *pg_list);
+HYD_status HYDU_alloc_proxy(struct HYD_proxy **proxy, struct HYD_pg *pg);
+void HYDU_free_proxy_list(struct HYD_proxy *proxy_list);
+HYD_status HYDU_alloc_exec(struct HYD_exec **exec);
+void HYDU_free_exec_list(struct HYD_exec *exec_list);
+HYD_status HYDU_create_proxy_list(struct HYD_exec *exec_list, struct HYD_node *node_list,
+                                  struct HYD_pg *pg, int proc_offset);
+HYD_status HYDU_correct_wdir(char **wdir);
+
+/* args */
+HYD_status HYDU_find_in_path(const char *execname, char **path);
+HYD_status HYDU_parse_array(char ***argv, struct HYD_arg_match_table *match_table);
+HYD_status HYDU_set_str(char *arg, char ***argv, char **var, const char *val);
+HYD_status HYDU_set_str_and_incr(char *arg, char ***argv, char **var);
+HYD_status HYDU_set_int(char *arg, char ***argv, int *var, int val);
+HYD_status HYDU_set_int_and_incr(char *arg, char ***argv, int *var);
+char *HYDU_getcwd(void);
+HYD_status HYDU_process_mfile_token(char *token, int newline, struct HYD_node **node_list);
+HYD_status HYDU_parse_hostfile(char *hostfile, struct HYD_node **node_list,
+                               HYD_status(*process_token) (char *token, int newline,
+                                                           struct HYD_node ** node_list));
+char *HYDU_find_full_path(const char *execname);
+HYD_status HYDU_send_strlist(int fd, char **strlist);
+
+/* debug */
+HYD_status HYDU_dbg_init(const char *str);
+void HYDU_dbg_finalize(void);
+
+/* env */
+HYD_status HYDU_env_to_str(struct HYD_env *env, char **str);
+HYD_status HYDU_list_inherited_env(struct HYD_env **env_list);
+struct HYD_env *HYDU_env_list_dup(struct HYD_env *env);
+HYD_status HYDU_env_create(struct HYD_env **env, const char *env_name, const char *env_value);
+HYD_status HYDU_env_free(struct HYD_env *env);
+HYD_status HYDU_env_free_list(struct HYD_env *env);
+struct HYD_env *HYDU_env_lookup(char *env_name, struct HYD_env *env_list);
+HYD_status HYDU_append_env_to_list(const char *env_name, const char *env_value,
+                                   struct HYD_env **env_list);
+HYD_status HYDU_append_env_str_to_list(char *str, struct HYD_env **env_list);
+HYD_status HYDU_putenv(struct HYD_env *env, HYD_env_overwrite_t overwrite);
+HYD_status HYDU_putenv_list(struct HYD_env *env_list, HYD_env_overwrite_t overwrite);
+HYD_status HYDU_comma_list_to_env_list(char *str, struct HYD_env **env_list);
+
+/* launch */
+struct HYDT_bind_cpuset_t;
+HYD_status HYDU_create_process(char **client_arg, struct HYD_env *env_list,
+                               int *in, int *out, int *err, int *pid,
+                               struct HYDT_bind_cpuset_t cpuset);
+
+/* others */
+int HYDU_local_to_global_id(int local_id, int start_pid, int core_count,
+                            int global_core_count);
+HYD_status HYDU_add_to_node_list(const char *hostname, int num_procs,
+                                 struct HYD_node **node_list);
+HYD_status HYDU_gethostname(char *hostname);
+
+/* signals */
+#ifdef NEEDS_POSIX_FOR_SIGACTION
+#define _POSIX_SOURCE
+#endif
+
+#include <sys/wait.h>
+#if defined(USE_SIGNAL) || defined(USE_SIGACTION)
+#include <signal.h>
+#else
+#error no signal choice
+#endif
+#ifdef NEEDS_STRSIGNAL_DECL
+extern char *strsignal(int);
+#endif
+
+HYD_status HYDU_set_signal(int signum, void (*handler) (int));
+HYD_status HYDU_set_common_signals(void (*handler) (int));
+
+/* Sock utilities */
+enum HYDU_sock_comm_flag {
+    HYDU_SOCK_COMM_NONE = 0,
+    HYDU_SOCK_COMM_MSGWAIT = 1
+};
+
+HYD_status HYDU_sock_listen(int *listen_fd, char *port_range, uint16_t * port);
+HYD_status HYDU_sock_connect(const char *host, uint16_t port, int *fd);
+HYD_status HYDU_sock_accept(int listen_fd, int *fd);
+HYD_status HYDU_sock_read(int fd, void *buf, int maxlen, int *recvd, int *closed,
+                          enum HYDU_sock_comm_flag flag);
+HYD_status HYDU_sock_write(int fd, const void *buf, int maxlen, int *sent, int *closed);
+HYD_status HYDU_sock_forward_stdio(int in, int out, int *closed);
+HYD_status HYDU_sock_get_iface_ip(char *iface, char **ip);
+HYD_status HYDU_sock_is_local(char *host, int *is_local);
+HYD_status HYDU_sock_remote_access(char *host, int *remote_access);
+HYD_status
+HYDU_sock_create_and_listen_portstr(char *iface, char *hostname, char *port_range,
+                                    char **port_str,
+                                    HYD_status(*callback) (int fd, HYD_event_t events,
+                                                           void *userp), void *userp);
+HYD_status HYDU_sock_cloexec(int fd);
+
+
+/* Memory utilities */
+#include <ctype.h>
+
+#if defined USE_MEMORY_TRACING
+
+#define HYDU_mem_init()  MPL_trinit(0)
+
+#define HYDU_strdup(a) MPL_trstrdup(a,__LINE__,__FILE__)
+#ifdef strdup
+#undef strdup
+#endif
+#define strdup(a)      'Error use HYDU_strdup' :::
+
+#define HYDU_malloc(a) MPL_trmalloc((unsigned)(a),__LINE__,__FILE__)
+#define malloc(a)      'Error use HYDU_malloc' :::
+
+#define HYDU_free(a) MPL_trfree(a,__LINE__,__FILE__)
+#define free(a)      'Error use HYDU_free' :::
+
+#else /* if !defined USE_MEMORY_TRACING */
+
+#define HYDU_mem_init()
+#define HYDU_strdup MPL_strdup
+#define HYDU_malloc malloc
+#define HYDU_free free
+
+#endif /* USE_MEMORY_TRACING */
+
+#define HYDU_snprintf MPL_snprintf
+
+#define HYDU_MALLOC(p, type, size, status)                              \
+    {                                                                   \
+        (p) = (type) HYDU_malloc((size));                               \
+        if ((p) == NULL)                                                \
+            HYDU_ERR_SETANDJUMP((status), HYD_NO_MEM,                   \
+                                "failed to allocate %d bytes\n",        \
+                                (int) (size));                          \
+    }
+
+#define HYDU_FREE(p)                            \
+    {                                           \
+        HYDU_free((void *) p);                  \
+    }
+
+#define HYDU_STRLIST_CONSOLIDATE(strlist, i, status)                    \
+    {                                                                   \
+        char *out;                                                      \
+        if ((i) >= (HYD_NUM_TMP_STRINGS / 2)) {                         \
+            (strlist)[(i)] = NULL;                                      \
+            (status) = HYDU_str_alloc_and_join((strlist), &out);        \
+            HYDU_ERR_POP((status), "unable to join strings\n");         \
+            HYDU_free_strlist((strlist));                               \
+            strlist[0] = out;                                           \
+            (i) = 1;                                                    \
+        }                                                               \
+    }
+
+#define HYD_GET_ENV_STR_VAL(lvalue_, env_var_name_, default_val_)       \
+    do {                                                       \
+        if (lvalue_ == NULL) {                                 \
+            const char *tmp_ = (default_val_);                 \
+            MPL_env2str(env_var_name_, (const char **) &tmp_); \
+            if (tmp_)                                          \
+                lvalue_ = HYDU_strdup(tmp_);                   \
+        }                                                      \
+    } while (0)
+
+HYD_status HYDU_list_append_strlist(char **exec, char **client_arg);
+HYD_status HYDU_print_strlist(char **args);
+void HYDU_free_strlist(char **args);
+HYD_status HYDU_str_alloc_and_join(char **strlist, char **strjoin);
+HYD_status HYDU_strsplit(char *str, char **str1, char **str2, char sep);
+HYD_status HYDU_strdup_list(char *src[], char **dest[]);
+char *HYDU_int_to_str(int x);
+char *HYDU_int_to_str_pad(int x, int maxlen);
+char *HYDU_strerror(int error);
+int HYDU_strlist_lastidx(char **strlist);
+char **HYDU_str_to_strlist(char *str);
+
+/*!
+ * @}
+ */
+
 #endif /* HYDRA_H_INCLUDED */

Deleted: mpich2/trunk/src/pm/hydra/include/hydra_base.h
===================================================================
--- mpich2/trunk/src/pm/hydra/include/hydra_base.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/include/hydra_base.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -1,314 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; -*- */
-/*
- *  (C) 2008 by Argonne National Laboratory.
- *      See COPYRIGHT in top-level directory.
- */
-
-#ifndef HYDRA_BASE_H_INCLUDED
-#define HYDRA_BASE_H_INCLUDED
-
-#include <stdio.h>
-#include "hydra_config.h"
-
-#if defined NEEDS_POSIX_FOR_SIGACTION
-#define _POSIX_SOURCE
-#endif /* NEEDS_POSIX_FOR_SIGACTION */
-
-#if defined HAVE_WINDOWS_H
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#endif /* HAVE_WINDOWS_H */
-
-#if defined HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined HAVE_STDLIB_H
-#include <stdlib.h>
-#endif /* HAVE_STDLIB_H */
-
-#if defined HAVE_STRING_H
-#include <string.h>
-#endif /* HAVE_STRING_H */
-
-#if defined HAVE_STRINGS_H
-#include <strings.h>
-#endif /* HAVE_STRINGS_H */
-
-#if defined HAVE_STDARG_H
-#include <stdarg.h>
-#endif /* HAVE_STDARG_H */
-
-#if defined HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif /* HAVE_SYS_TYPES_H */
-
-#if defined HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif /* HAVE_SYS_STAT_H */
-
-#if defined HAVE_TIME_H
-#include <time.h>
-#endif /* HAVE_TIME_H */
-
-#if defined HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif /* HAVE_SYS_TIME_H */
-
-#if defined HAVE_IFADDRS_H
-#include <ifaddrs.h>
-#endif /* HAVE_IFADDRS_H */
-
-#if defined HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif /* HAVE_ARPA_INET_H */
-
-#if defined HAVE_ERRNO_H
-#include <errno.h>
-#endif /* HAVE_ERRNO_H */
-
-#if !defined HAVE_GETTIMEOFDAY
-#error "hydra requires gettimeofday support"
-#endif /* HAVE_GETTIMEOFDAY */
-
-#if !defined HAVE_MACRO_VA_ARGS
-#error "hydra requires VA_ARGS support"
-#endif /* HAVE_MACRO_VA_ARGS */
-
-#if defined MAXHOSTNAMELEN
-#define MAX_HOSTNAME_LEN MAXHOSTNAMELEN
-#else
-#define MAX_HOSTNAME_LEN 256
-#endif /* MAXHOSTNAMELEN */
-
-#define HYDRA_MAX_PATH 4096
-
-/* sockets required headers */
-#ifdef HAVE_POLL_H
-#include <poll.h>
-#endif /* HAVE_POLL_H */
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif /* HAVE_FCNTL_H */
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif /* HAVE_NETDB_H */
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif /* HAVE_NETINET_IN_H */
-#ifdef HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
-#endif /* HAVE_NETINET_TCP_H */
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-
-#define HYD_POLLIN  (0x0001)
-#define HYD_POLLOUT (0x0002)
-#define HYD_POLLHUP (0x0004)
-
-#define HYD_TMPBUF_SIZE (64 * 1024)
-#define HYD_TMP_STRLEN  1024
-#define HYD_NUM_TMP_STRINGS 1000
-
-#define dprintf(...)
-
-#ifndef ATTRIBUTE
-#ifdef HAVE_GCC_ATTRIBUTE
-#define ATTRIBUTE(a_) __attribute__(a_)
-#else
-#define ATTRIBUTE(a_)
-#endif
-#endif
-
-#define HYD_IS_HELP(str) \
-    ((!strcmp((str), "-h")) || (!strcmp((str), "-help")) || (!strcmp((str), "--help")))
-
-#define HYD_DRAW_LINE(x)                                 \
-    {                                                    \
-        int i_;                                          \
-        for (i_ = 0; i_ < (x); i_++)                     \
-            printf("=");                                 \
-        printf("\n");                                    \
-    }
-
-#define HYD_CONVERT_FALSE_TO_NULL(x) \
-    {                                                                   \
-        if (!(x)) {                                                     \
-        }                                                               \
-        else if (!strcasecmp((x), "none") || !strcasecmp((x), "no") ||  \
-                 !strcasecmp((x), "dummy") || !strcasecmp((x), "null") || \
-                 !strcasecmp((x), "nil") || !strcasecmp((x), "false")) { \
-            HYDU_FREE((x));                                             \
-            (x) = NULL;                                                 \
-        }                                                               \
-    }
-
-#if defined MANUAL_EXTERN_ENVIRON
-extern char **environ;
-#endif /* MANUAL_EXTERN_ENVIRON */
-
-#define HYD_SILENT_ERROR(status) (((status) == HYD_GRACEFUL_ABORT) || ((status) == HYD_TIMED_OUT))
-
-#define HYDRA_NAMESERVER_DEFAULT_PORT 6392
-
-/* fd state */
-enum HYD_fd_state {
-    HYD_FD_UNSET = -1,
-    HYD_FD_CLOSED = -2
-};
-
-/* Status information */
-typedef enum {
-    HYD_SUCCESS = 0,
-    HYD_FAILURE,        /* general failure */
-
-    /* Silent errors */
-    HYD_GRACEFUL_ABORT,
-    HYD_TIMED_OUT,
-
-    /* Regular errors */
-    HYD_NO_MEM,
-    HYD_SOCK_ERROR,
-    HYD_INVALID_PARAM,
-    HYD_INTERNAL_ERROR
-} HYD_status;
-
-#if defined(NEEDS_GETHOSTNAME_DECL)
-int gethostname(char *name, size_t len);
-#endif
-
-typedef unsigned short HYD_event_t;
-
-/* Argument matching functions */
-struct HYD_arg_match_table {
-    const char *arg;
-     HYD_status(*handler_fn) (char *arg, char ***argv_p);
-    void (*help_fn) (void);
-};
-
-
-/* Environment information */
-struct HYD_env {
-    const char *env_name;
-    const char *env_value;
-    struct HYD_env *next;
-};
-
-typedef enum HYD_env_overwrite {
-    HYD_ENV_OVERWRITE_TRUE,
-    HYD_ENV_OVERWRITE_FALSE
-} HYD_env_overwrite_t;
-
-typedef enum {
-    HYD_ENV_PROP_UNSET,
-    HYD_ENV_PROP_ALL,
-    HYD_ENV_PROP_NONE,
-    HYD_ENV_PROP_LIST
-} HYD_env_prop_t;
-
-struct HYD_env_global {
-    struct HYD_env *system;
-    struct HYD_env *user;
-    struct HYD_env *inherited;
-    char *prop;
-};
-
-/* Executable information */
-struct HYD_exec {
-    char *exec[HYD_NUM_TMP_STRINGS];
-    char *wdir;
-
-    int proc_count;
-    struct HYD_env *user_env;
-    char *env_prop;
-
-    int appnum;
-
-    struct HYD_exec *next;
-};
-
-/* Process group */
-struct HYD_pg {
-    int pgid;
-    struct HYD_proxy *proxy_list;
-    int pg_process_count;
-    int barrier_count;
-
-    struct HYD_pg *spawner_pg;
-
-    /* scratch space for the PM */
-    void *pg_scratch;
-
-    struct HYD_pg *next;
-};
-
-/* Information about the node itself */
-struct HYD_node {
-    char *hostname;
-    int core_count;
-
-    /* Node-specific binding information */
-    char *local_binding;
-
-    struct HYD_node *next;
-};
-
-/* Proxy information */
-struct HYD_proxy {
-    struct HYD_node node;
-
-    struct HYD_pg *pg;          /* Back pointer to the PG */
-
-    char **exec_launch_info;
-
-    int proxy_id;
-
-    int start_pid;
-    int proxy_process_count;
-
-    struct HYD_exec *exec_list;
-
-    int *pid;
-    int *exit_status;
-    int control_fd;
-
-    struct HYD_proxy *next;
-};
-
-/* Global user parameters */
-struct HYD_user_global {
-    /* RMK */
-    char *rmk;
-
-    /* Launcher */
-    char *launcher;
-    char *launcher_exec;
-
-    /* Process binding */
-    char *binding;
-    char *bindlib;
-
-    /* Checkpoint restart */
-    char *ckpointlib;
-    char *ckpoint_prefix;
-    int ckpoint_num;
-
-    /* Demux engine */
-    char *demux;
-
-    /* Network interface */
-    char *iface;
-
-    /* Other random parameters */
-    int prepend_rank;
-    int enablex;
-    int debug;
-
-    int auto_cleanup;
-
-    struct HYD_env_global global_env;
-};
-
-#endif /* HYDRA_BASE_H_INCLUDED */

Copied: mpich2/trunk/src/pm/hydra/include/hydra_server.h (from rev 7651, mpich2/trunk/src/pm/hydra/include/hydra.h)
===================================================================
--- mpich2/trunk/src/pm/hydra/include/hydra_server.h	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/include/hydra_server.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -0,0 +1,50 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#ifndef HYDRA_SERVER_H_INCLUDED
+#define HYDRA_SERVER_H_INCLUDED
+
+#include "hydra.h"
+
+/* Interaction commands between the UI and the proxy */
+struct HYD_cmd {
+    enum {
+        HYD_CLEANUP,
+        HYD_CKPOINT
+    } type;
+};
+
+struct HYD_server_info {
+    struct HYD_user_global user_global;
+
+    char *base_path;
+    char *port_range;
+    char *interface_env_name;
+    char *nameserver;
+    char *local_hostname;
+
+     HYD_status(*stdout_cb) (int pgid, int proxy_id, int rank, void *buf, int buflen);
+     HYD_status(*stderr_cb) (int pgid, int proxy_id, int rank, void *buf, int buflen);
+
+    /* All of the available nodes */
+    struct HYD_node *node_list;
+    int global_core_count;
+
+    /* Process groups */
+    struct HYD_pg pg_list;
+
+    /* Cleanup */
+    int cleanup_pipe[2];
+
+#if defined ENABLE_PROFILING
+    int enable_profiling;
+    int num_pmi_calls;
+#endif                          /* ENABLE_PROFILING */
+};
+
+extern struct HYD_server_info HYD_server_info;
+
+#endif /* HYDRA_SERVER_H_INCLUDED */

Deleted: mpich2/trunk/src/pm/hydra/include/hydra_utils.h
===================================================================
--- mpich2/trunk/src/pm/hydra/include/hydra_utils.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/include/hydra_utils.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -1,301 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; -*- */
-/*
- *  (C) 2008 by Argonne National Laboratory.
- *      See COPYRIGHT in top-level directory.
- */
-
-#ifndef HYDRA_UTILS_H_INCLUDED
-#define HYDRA_UTILS_H_INCLUDED
-
-#include "hydra_base.h"
-#include "mpl.h"
-
-extern char *HYD_dbg_prefix;
-
-#define HYDU_dump_prefix(fp)                    \
-    {                                           \
-        fprintf(fp, "[%s] ", HYD_dbg_prefix);   \
-        fflush(fp);                             \
-    }
-
-#define HYDU_dump_noprefix(fp, ...)             \
-    {                                           \
-        fprintf(fp, __VA_ARGS__);               \
-        fflush(fp);                             \
-    }
-
-#define HYDU_dump(fp, ...)                      \
-    {                                           \
-        HYDU_dump_prefix(fp);                   \
-        HYDU_dump_noprefix(fp, __VA_ARGS__);    \
-    }
-
-#if defined HAVE__FUNC__
-#define HYDU_FUNC __func__
-#elif defined HAVE_CAP__FUNC__
-#define HYDU_FUNC __FUNC__
-#elif defined HAVE__FUNCTION__
-#define HYDU_FUNC __FUNCTION__
-#endif
-
-#if defined __FILE__ && defined HYDU_FUNC
-#define HYDU_error_printf(...)                                          \
-    {                                                                   \
-        HYDU_dump_prefix(stderr);                                       \
-        HYDU_dump_noprefix(stderr, "%s (%s:%d): ", __func__, __FILE__, __LINE__); \
-        HYDU_dump_noprefix(stderr, __VA_ARGS__);                        \
-    }
-#elif defined __FILE__
-#define HYDU_error_printf(...)                            \
-    {                                                     \
-        HYDU_dump_prefix(stderr);                                       \
-        HYDU_dump_noprefix(stderr, "%s (%d): ", __FILE__, __LINE__);    \
-        HYDU_dump_noprefix(stderr, __VA_ARGS__);                        \
-    }
-#else
-#define HYDU_error_printf(...)                                          \
-    {                                                                   \
-        HYDU_dump_prefix(stderr);                                       \
-        HYDU_dump_noprefix(stderr, __VA_ARGS__);                        \
-    }
-#endif
-
-#define HYDU_ASSERT(x, status)                                          \
-    {                                                                   \
-        if (!(x)) {                                                     \
-            HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,             \
-                                 "assert (%s) failed\n", #x);           \
-        }                                                               \
-    }
-
-#define HYDU_IGNORE_TIMEOUT(status)             \
-    {                                           \
-        if ((status) == HYD_TIMED_OUT)          \
-            (status) = HYD_SUCCESS;             \
-    }
-
-#define HYDU_ERR_POP(status, ...)                                       \
-    {                                                                   \
-        if (status && !HYD_SILENT_ERROR(status)) {                      \
-            HYDU_error_printf(__VA_ARGS__);                             \
-            goto fn_fail;                                               \
-        }                                                               \
-        else if (HYD_SILENT_ERROR(status)) {                            \
-            goto fn_exit;                                               \
-        }                                                               \
-    }
-
-#define HYDU_ERR_SETANDJUMP(status, error, ...)                         \
-    {                                                                   \
-        status = error;                                                 \
-        HYDU_ERR_POP(status, __VA_ARGS__);                              \
-    }
-
-#define HYDU_ERR_CHKANDJUMP(status, chk, error, ...)                    \
-    {                                                                   \
-        if ((chk))                                                      \
-            HYDU_ERR_SETANDJUMP(status, error, __VA_ARGS__);            \
-    }
-
-#if defined ENABLE_WARNINGS
-#define HYDU_warn_printf HYDU_error_printf
-#else
-#define HYDU_warn_printf(...)
-#endif /* ENABLE_WARNINGS */
-
-/* Disable for now; we might add something here in the future */
-#define HYDU_FUNC_ENTER()   do {} while (0)
-#define HYDU_FUNC_EXIT()    do {} while (0)
-
-
-/* alloc */
-void HYDU_init_user_global(struct HYD_user_global *user_global);
-void HYDU_finalize_user_global(struct HYD_user_global *user_global);
-void HYDU_init_global_env(struct HYD_env_global *global_env);
-void HYDU_finalize_global_env(struct HYD_env_global *global_env);
-HYD_status HYDU_alloc_node(struct HYD_node **node);
-void HYDU_free_node_list(struct HYD_node *node_list);
-void HYDU_init_pg(struct HYD_pg *pg, int pgid);
-HYD_status HYDU_alloc_pg(struct HYD_pg **pg, int pgid);
-void HYDU_free_pg_list(struct HYD_pg *pg_list);
-HYD_status HYDU_alloc_proxy(struct HYD_proxy **proxy, struct HYD_pg *pg);
-void HYDU_free_proxy_list(struct HYD_proxy *proxy_list);
-HYD_status HYDU_alloc_exec(struct HYD_exec **exec);
-void HYDU_free_exec_list(struct HYD_exec *exec_list);
-HYD_status HYDU_create_proxy_list(struct HYD_exec *exec_list, struct HYD_node *node_list,
-                                  struct HYD_pg *pg, int proc_offset);
-HYD_status HYDU_correct_wdir(char **wdir);
-
-/* args */
-HYD_status HYDU_find_in_path(const char *execname, char **path);
-HYD_status HYDU_parse_array(char ***argv, struct HYD_arg_match_table *match_table);
-HYD_status HYDU_set_str(char *arg, char ***argv, char **var, const char *val);
-HYD_status HYDU_set_str_and_incr(char *arg, char ***argv, char **var);
-HYD_status HYDU_set_int(char *arg, char ***argv, int *var, int val);
-HYD_status HYDU_set_int_and_incr(char *arg, char ***argv, int *var);
-char *HYDU_getcwd(void);
-HYD_status HYDU_process_mfile_token(char *token, int newline, struct HYD_node **node_list);
-HYD_status HYDU_parse_hostfile(char *hostfile, struct HYD_node **node_list,
-                               HYD_status(*process_token) (char *token, int newline,
-                                                           struct HYD_node **node_list));
-char *HYDU_find_full_path(const char *execname);
-HYD_status HYDU_send_strlist(int fd, char **strlist);
-
-/* debug */
-HYD_status HYDU_dbg_init(const char *str);
-void HYDU_dbg_finalize(void);
-
-/* env */
-HYD_status HYDU_env_to_str(struct HYD_env *env, char **str);
-HYD_status HYDU_list_inherited_env(struct HYD_env **env_list);
-struct HYD_env *HYDU_env_list_dup(struct HYD_env *env);
-HYD_status HYDU_env_create(struct HYD_env **env, const char *env_name, const char *env_value);
-HYD_status HYDU_env_free(struct HYD_env *env);
-HYD_status HYDU_env_free_list(struct HYD_env *env);
-struct HYD_env *HYDU_env_lookup(char *env_name, struct HYD_env *env_list);
-HYD_status HYDU_append_env_to_list(const char *env_name, const char *env_value,
-                                   struct HYD_env **env_list);
-HYD_status HYDU_append_env_str_to_list(char *str, struct HYD_env **env_list);
-HYD_status HYDU_putenv(struct HYD_env *env, HYD_env_overwrite_t overwrite);
-HYD_status HYDU_putenv_list(struct HYD_env *env_list, HYD_env_overwrite_t overwrite);
-HYD_status HYDU_comma_list_to_env_list(char *str, struct HYD_env **env_list);
-
-/* launch */
-struct HYDT_bind_cpuset_t;
-HYD_status HYDU_create_process(char **client_arg, struct HYD_env *env_list,
-                               int *in, int *out, int *err, int *pid,
-                               struct HYDT_bind_cpuset_t cpuset);
-
-/* others */
-int HYDU_local_to_global_id(int local_id, int start_pid, int core_count,
-                            int global_core_count);
-HYD_status HYDU_add_to_node_list(const char *hostname, int num_procs,
-                                 struct HYD_node **node_list);
-HYD_status HYDU_gethostname(char *hostname);
-
-/* signals */
-#ifdef NEEDS_POSIX_FOR_SIGACTION
-#define _POSIX_SOURCE
-#endif
-
-#include <sys/wait.h>
-#if defined(USE_SIGNAL) || defined(USE_SIGACTION)
-#include <signal.h>
-#else
-#error no signal choice
-#endif
-#ifdef NEEDS_STRSIGNAL_DECL
-extern char *strsignal(int);
-#endif
-
-HYD_status HYDU_set_signal(int signum, void (*handler) (int));
-HYD_status HYDU_set_common_signals(void (*handler) (int));
-
-/* Sock utilities */
-enum HYDU_sock_comm_flag {
-    HYDU_SOCK_COMM_NONE = 0,
-    HYDU_SOCK_COMM_MSGWAIT = 1
-};
-
-HYD_status HYDU_sock_listen(int *listen_fd, char *port_range, uint16_t * port);
-HYD_status HYDU_sock_connect(const char *host, uint16_t port, int *fd);
-HYD_status HYDU_sock_accept(int listen_fd, int *fd);
-HYD_status HYDU_sock_read(int fd, void *buf, int maxlen, int *recvd, int *closed,
-                          enum HYDU_sock_comm_flag flag);
-HYD_status HYDU_sock_write(int fd, const void *buf, int maxlen, int *sent, int *closed);
-HYD_status HYDU_sock_forward_stdio(int in, int out, int *closed);
-HYD_status HYDU_sock_get_iface_ip(char *iface, char **ip);
-HYD_status HYDU_sock_is_local(char *host, int *is_local);
-HYD_status HYDU_sock_remote_access(char *host, int *remote_access);
-HYD_status
-HYDU_sock_create_and_listen_portstr(char *iface, char *hostname, char *port_range,
-                                    char **port_str,
-                                    HYD_status(*callback) (int fd, HYD_event_t events,
-                                                           void *userp), void *userp);
-HYD_status HYDU_sock_cloexec(int fd);
-
-
-/* Memory utilities */
-#include <ctype.h>
-
-#if defined USE_MEMORY_TRACING
-
-#define HYDU_mem_init()  MPL_trinit(0)
-
-#define HYDU_strdup(a) MPL_trstrdup(a,__LINE__,__FILE__)
-#ifdef strdup
-#undef strdup
-#endif
-#define strdup(a)      'Error use HYDU_strdup' :::
-
-#define HYDU_malloc(a) MPL_trmalloc((unsigned)(a),__LINE__,__FILE__)
-#define malloc(a)      'Error use HYDU_malloc' :::
-
-#define HYDU_free(a) MPL_trfree(a,__LINE__,__FILE__)
-#define free(a)      'Error use HYDU_free' :::
-
-#else /* if !defined USE_MEMORY_TRACING */
-
-#define HYDU_mem_init()
-#define HYDU_strdup MPL_strdup
-#define HYDU_malloc malloc
-#define HYDU_free free
-
-#endif /* USE_MEMORY_TRACING */
-
-#define HYDU_snprintf MPL_snprintf
-
-#define HYDU_MALLOC(p, type, size, status)                              \
-    {                                                                   \
-        (p) = (type) HYDU_malloc((size));                               \
-        if ((p) == NULL)                                                \
-            HYDU_ERR_SETANDJUMP((status), HYD_NO_MEM,                   \
-                                "failed to allocate %d bytes\n",        \
-                                (int) (size));                          \
-    }
-
-#define HYDU_FREE(p)                            \
-    {                                           \
-        HYDU_free((void *) p);                  \
-    }
-
-#define HYDU_STRLIST_CONSOLIDATE(strlist, i, status)                    \
-    {                                                                   \
-        char *out;                                                      \
-        if ((i) >= (HYD_NUM_TMP_STRINGS / 2)) {                         \
-            (strlist)[(i)] = NULL;                                      \
-            (status) = HYDU_str_alloc_and_join((strlist), &out);        \
-            HYDU_ERR_POP((status), "unable to join strings\n");         \
-            HYDU_free_strlist((strlist));                               \
-            strlist[0] = out;                                           \
-            (i) = 1;                                                    \
-        }                                                               \
-    }
-
-#define HYD_GET_ENV_STR_VAL(lvalue_, env_var_name_, default_val_)       \
-    do {                                                       \
-        if (lvalue_ == NULL) {                                 \
-            const char *tmp_ = (default_val_);                 \
-            MPL_env2str(env_var_name_, (const char **) &tmp_); \
-            if (tmp_)                                          \
-                lvalue_ = HYDU_strdup(tmp_);                   \
-        }                                                      \
-    } while (0)
-
-HYD_status HYDU_list_append_strlist(char **exec, char **client_arg);
-HYD_status HYDU_print_strlist(char **args);
-void HYDU_free_strlist(char **args);
-HYD_status HYDU_str_alloc_and_join(char **strlist, char **strjoin);
-HYD_status HYDU_strsplit(char *str, char **str1, char **str2, char sep);
-HYD_status HYDU_strdup_list(char *src[], char **dest[]);
-char *HYDU_int_to_str(int x);
-char *HYDU_int_to_str_pad(int x, int maxlen);
-char *HYDU_strerror(int error);
-int HYDU_strlist_lastidx(char **strlist);
-char **HYDU_str_to_strlist(char *str);
-
-/*!
- * @}
- */
-
-#endif /* HYDRA_UTILS_H_INCLUDED */

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/common.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/common.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/common.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "common.h"
 #include "bind.h"
 

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/common.h
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/common.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/common.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,8 +7,7 @@
 #ifndef COMMON_H_INCLUDED
 #define COMMON_H_INCLUDED
 
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
 
 /* Generic definitions */
 #define MAXKEYLEN    64 /* max length of key in keyval space */

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -5,7 +5,6 @@
  */
 
 #include "hydra.h"
-#include "hydra_utils.h"
 #include "bsci.h"
 #include "pmiserv_pmi.h"
 #include "pmi_v2_common.h"

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.h
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,8 +7,7 @@
 #ifndef PMI_V2_COMMON_H_INCLUDED
 #define PMI_V2_COMMON_H_INCLUDED
 
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
 
 struct HYD_pmcd_pmi_v2_reqs {
     int fd;

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -5,7 +5,6 @@
  */
 
 #include "hydra.h"
-#include "hydra_utils.h"
 #include "pmip.h"
 #include "demux.h"
 #include "bsci.h"

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.h
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,8 +7,7 @@
 #ifndef PMIP_H_INCLUDED
 #define PMIP_H_INCLUDED
 
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "common.h"
 
 struct HYD_pmcd_pmip {

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_cb.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_cb.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_cb.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -5,7 +5,6 @@
  */
 
 #include "hydra.h"
-#include "hydra_utils.h"
 #include "pmip.h"
 #include "pmip_pmi.h"
 #include "ckpoint.h"

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi.h
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
 #ifndef PMIP_PMI_H_INCLUDED
 #define PMIP_PMI_H_INCLUDED
 
-#include "hydra_base.h"
+#include "hydra.h"
 #include "common.h"
 
 /* PMI-1 specific definitions */

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -160,7 +160,7 @@
     tmp[i++] = HYDU_strdup("cmd=initack\ncmd=set size=");
     tmp[i++] = HYDU_int_to_str(HYD_pmcd_pmip.system_global.global_process_count);
 
-    /* FIXME: allow for ranks_per_proc */
+    /* FIXME: allow for multiple ranks per PMI ID */
     tmp[i++] = HYDU_strdup("\ncmd=set rank=");
     tmp[i++] = HYDU_int_to_str(id);
 

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v2.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v2.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v2.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -170,7 +170,7 @@
             HYD_pmcd_pmip.downstream.pmi_fd[i] = fd;
 
     i = 0;
-    /* FIXME: add support for ranks_per_proc */
+    /* FIXME: allow for multiple ranks per PMI ID */
     tmp[i++] = HYDU_strdup("cmd=fullinit-response;pmi-version=2;pmi-subversion=0;rank=");
     tmp[i++] = HYDU_int_to_str(id);
 

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_utils.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_utils.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_utils.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -9,7 +9,7 @@
 #include "bind.h"
 #include "ckpoint.h"
 #include "demux.h"
-#include "hydra_utils.h"
+#include "hydra.h"
 
 struct HYD_pmcd_pmip HYD_pmcd_pmip;
 
@@ -93,11 +93,6 @@
     return HYDU_set_str_and_incr(arg, argv, &HYD_pmcd_pmip.user_global.iface);
 }
 
-static HYD_status prepend_rank_fn(char *arg, char ***argv)
-{
-    return HYDU_set_int(arg, argv, &HYD_pmcd_pmip.user_global.prepend_rank, 1);
-}
-
 static HYD_status enable_stdin_fn(char *arg, char ***argv)
 {
     return HYDU_set_int_and_incr(arg, argv, &HYD_pmcd_pmip.system_global.enable_stdin);
@@ -398,7 +393,6 @@
     {"launcher-exec", launcher_exec_fn, NULL},
     {"demux", demux_fn, NULL},
     {"iface", iface_fn, NULL},
-    {"prepend-rank", prepend_rank_fn, NULL},
     {"enable-stdin", enable_stdin_fn, NULL},
     {"auto-cleanup", auto_cleanup_fn, NULL},
 
@@ -467,9 +461,6 @@
     if (HYD_pmcd_pmip.user_global.debug == -1)
         HYD_pmcd_pmip.user_global.debug = 0;
 
-    if (HYD_pmcd_pmip.user_global.prepend_rank == -1)
-        HYD_pmcd_pmip.user_global.prepend_rank = 0;
-
     status = HYDT_bsci_init(HYD_pmcd_pmip.user_global.rmk,
                             HYD_pmcd_pmip.user_global.launcher,
                             HYD_pmcd_pmip.user_global.launcher_exec,

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_cb.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_cb.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_cb.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,8 @@
  *      See COPYRIGHT in top-level directory.
  */
 
+#include "hydra_server.h"
 #include "hydra.h"
-#include "hydra_utils.h"
 #include "pmci.h"
 #include "bsci.h"
 #include "debugger.h"
@@ -26,15 +26,15 @@
     else
         HYD_pmcd_pmi_handle = HYD_pmcd_pmi_v2;
 
-    if (HYD_handle.user_global.debug)
+    if (HYD_server_info.user_global.debug)
         HYDU_dump(stdout, "[pgid: %d] got PMI command: %s\n", pgid, buf);
 
     status = HYD_pmcd_pmi_parse_pmi_cmd(buf, pmi_version, &cmd, args);
     HYDU_ERR_POP(status, "unable to parse PMI command\n");
 
 #if defined ENABLE_PROFILING
-    if (HYD_handle.enable_profiling)
-        HYD_handle.num_pmi_calls++;
+    if (HYD_server_info.enable_profiling)
+        HYD_server_info.num_pmi_calls++;
 #endif /* ENABLE_PROFILING */
 
     h = HYD_pmcd_pmi_handle;
@@ -143,7 +143,7 @@
     HYDU_ERR_POP(status, "unable to read command from proxy\n");
     HYDU_ASSERT(!closed, status)
 
-    if (hdr.cmd == PID_LIST) {  /* Got PIDs */
+        if (hdr.cmd == PID_LIST) {      /* Got PIDs */
         HYDU_MALLOC(proxy->pid, int *, proxy->proxy_process_count * sizeof(int), status);
         status = HYDU_sock_read(fd, (void *) proxy->pid,
                                 proxy->proxy_process_count * sizeof(int),
@@ -167,10 +167,12 @@
         HYDU_ERR_POP(status, "debugger setup failed\n");
     }
     else if (hdr.cmd == EXIT_STATUS) {
-        HYDU_MALLOC(proxy->exit_status, int *, proxy->proxy_process_count * sizeof(int), status);
-        status = HYDU_sock_read(fd, (void *) proxy->exit_status,
-                                proxy->proxy_process_count * sizeof(int),
-                                &count, &closed, HYDU_SOCK_COMM_MSGWAIT);
+        HYDU_MALLOC(proxy->exit_status, int *, proxy->proxy_process_count * sizeof(int),
+                    status);
+        status =
+            HYDU_sock_read(fd, (void *) proxy->exit_status,
+                           proxy->proxy_process_count * sizeof(int), &count, &closed,
+                           HYDU_SOCK_COMM_MSGWAIT);
         HYDU_ERR_POP(status, "unable to read status from proxy\n");
         HYDU_ASSERT(!closed, status);
 
@@ -179,7 +181,7 @@
 
         /* If any of the processes aborted, cleanup the remaining
          * processes */
-        if (HYD_handle.user_global.auto_cleanup) {
+        if (HYD_server_info.user_global.auto_cleanup) {
             for (i = 0; i < proxy->proxy_process_count; i++) {
                 if (proxy->exit_status[i]) {
                     status = HYD_pmcd_pmiserv_cleanup_pg(proxy->pg);
@@ -211,15 +213,17 @@
         HYDU_ASSERT(!closed, status);
 
         if (hdr.cmd == STDOUT)
-            status = HYD_handle.stdout_cb(hdr.pgid, hdr.proxy_id, hdr.rank, buf, hdr.buflen);
+            status =
+                HYD_server_info.stdout_cb(hdr.pgid, hdr.proxy_id, hdr.rank, buf, hdr.buflen);
         else
-            status = HYD_handle.stderr_cb(hdr.pgid, hdr.proxy_id, hdr.rank, buf, hdr.buflen);
+            status =
+                HYD_server_info.stderr_cb(hdr.pgid, hdr.proxy_id, hdr.rank, buf, hdr.buflen);
         HYDU_ERR_POP(status, "error in the UI defined callback\n");
 
         HYDU_FREE(buf);
     }
     else if (hdr.cmd == PROCESS_TERMINATED) {
-        if (HYD_handle.user_global.auto_cleanup == 0) {
+        if (HYD_server_info.user_global.auto_cleanup == 0) {
             /* Update the map of the alive processes */
             pg_scratch = (struct HYD_pmcd_pmi_pg_scratch *) proxy->pg->pg_scratch;
             pg_scratch->dead_process_count++;
@@ -333,7 +337,7 @@
                 pg_scratch->dead_processes = str;
             }
 
-            for (pg = &HYD_handle.pg_list; pg; pg = pg->next) {
+            for (pg = &HYD_server_info.pg_list; pg; pg = pg->next) {
                 for (tproxy = pg->proxy_list; tproxy; tproxy = tproxy->next) {
                     if (tproxy->control_fd == HYD_FD_UNSET ||
                         tproxy->control_fd == HYD_FD_CLOSED)
@@ -409,7 +413,7 @@
     HYDU_ASSERT(!closed, status);
 
     /* Find the process group */
-    for (pg = &HYD_handle.pg_list; pg; pg = pg->next)
+    for (pg = &HYD_server_info.pg_list; pg; pg = pg->next)
         if (pg->pgid == pgid)
             break;
     if (!pg)
@@ -458,7 +462,7 @@
     pgid = ((int) (size_t) userp);
 
     /* Find the process group */
-    for (pg = &HYD_handle.pg_list; pg; pg = pg->next)
+    for (pg = &HYD_server_info.pg_list; pg; pg = pg->next)
         if (pg->pgid == pgid)
             break;
     if (!pg)

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmci.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmci.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmci.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,8 @@
  *      See COPYRIGHT in top-level directory.
  */
 
+#include "hydra_server.h"
 #include "hydra.h"
-#include "hydra_utils.h"
 #include "pmci.h"
 #include "pmiserv_pmi.h"
 #include "bsci.h"
@@ -20,7 +20,7 @@
 
     HYDU_FUNC_ENTER();
 
-    for (pg = &HYD_handle.pg_list; pg; pg = pg->next) {
+    for (pg = &HYD_server_info.pg_list; pg; pg = pg->next) {
         status = HYD_pmcd_pmiserv_cleanup_pg(pg);
         HYDU_ERR_POP(status, "unable to cleanup PG\n");
     }
@@ -54,7 +54,7 @@
 
 static HYD_status send_cmd_to_proxies(struct HYD_pmcd_hdr hdr)
 {
-    struct HYD_pg *pg = &HYD_handle.pg_list;
+    struct HYD_pg *pg = &HYD_server_info.pg_list;
     struct HYD_proxy *proxy;
     int sent, closed;
     HYD_status status = HYD_SUCCESS;
@@ -123,16 +123,17 @@
 
     HYDU_FUNC_ENTER();
 
-    status = HYDT_dmx_register_fd(1, &HYD_handle.cleanup_pipe[0], POLLIN, NULL, ui_cmd_cb);
+    status =
+        HYDT_dmx_register_fd(1, &HYD_server_info.cleanup_pipe[0], POLLIN, NULL, ui_cmd_cb);
     HYDU_ERR_POP(status, "unable to register fd\n");
 
-    status = HYD_pmcd_pmi_alloc_pg_scratch(&HYD_handle.pg_list);
+    status = HYD_pmcd_pmi_alloc_pg_scratch(&HYD_server_info.pg_list);
     HYDU_ERR_POP(status, "error allocating pg scratch space\n");
 
     /* Copy the host list to pass to the launcher */
     node_list = NULL;
     node_count = 0;
-    for (proxy = HYD_handle.pg_list.proxy_list; proxy; proxy = proxy->next) {
+    for (proxy = HYD_server_info.pg_list.proxy_list; proxy; proxy = proxy->next) {
         HYDU_alloc_node(&node);
         node->hostname = HYDU_strdup(proxy->node.hostname);
         node->core_count = proxy->node.core_count;
@@ -149,19 +150,19 @@
         node_count++;
     }
 
-    status = HYDU_sock_create_and_listen_portstr(HYD_handle.user_global.iface,
-                                                 HYD_handle.local_hostname,
-                                                 HYD_handle.port_range, &control_port,
+    status = HYDU_sock_create_and_listen_portstr(HYD_server_info.user_global.iface,
+                                                 HYD_server_info.local_hostname,
+                                                 HYD_server_info.port_range, &control_port,
                                                  HYD_pmcd_pmiserv_control_listen_cb,
                                                  (void *) (size_t) 0);
     HYDU_ERR_POP(status, "unable to create PMI port\n");
-    if (HYD_handle.user_global.debug)
+    if (HYD_server_info.user_global.debug)
         HYDU_dump(stdout, "Got a control port string of %s\n", control_port);
 
     status = HYD_pmcd_pmi_fill_in_proxy_args(proxy_args, control_port, 0);
     HYDU_ERR_POP(status, "unable to fill in proxy arguments\n");
 
-    status = HYD_pmcd_pmi_fill_in_exec_launch_info(&HYD_handle.pg_list);
+    status = HYD_pmcd_pmi_fill_in_exec_launch_info(&HYD_server_info.pg_list);
     HYDU_ERR_POP(status, "unable to fill in executable arguments\n");
 
     status = HYDT_dmx_stdin_valid(&enable_stdin);
@@ -171,13 +172,15 @@
     for (i = 0; i < node_count; i++)
         control_fd[i] = HYD_FD_UNSET;
 
-    status = HYDT_bind_init(HYD_handle.user_global.binding, HYD_handle.user_global.bindlib);
+    status =
+        HYDT_bind_init(HYD_server_info.user_global.binding,
+                       HYD_server_info.user_global.bindlib);
     HYDU_ERR_POP(status, "unable to initializing binding library");
 
     status = HYDT_bsci_launch_procs(proxy_args, node_list, control_fd, enable_stdin);
     HYDU_ERR_POP(status, "launcher cannot launch processes\n");
 
-    for (i = 0, proxy = HYD_handle.pg_list.proxy_list; proxy; proxy = proxy->next, i++)
+    for (i = 0, proxy = HYD_server_info.pg_list.proxy_list; proxy; proxy = proxy->next, i++)
         if (control_fd[i] != HYD_FD_UNSET) {
             proxy->control_fd = control_fd[i];
 
@@ -210,7 +213,7 @@
 
     /* We first wait for the exit statuses to arrive till the timeout
      * period */
-    for (pg = &HYD_handle.pg_list; pg; pg = pg->next) {
+    for (pg = &HYD_server_info.pg_list; pg; pg = pg->next) {
         pg_scratch = (struct HYD_pmcd_pmi_pg_scratch *) pg->pg_scratch;
 
         while (pg_scratch->control_listen_fd != HYD_FD_CLOSED) {

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra.h"
+#include "hydra_server.h"
 #include "pmiserv_pmi.h"
 #include "pmiserv_utils.h"
 
@@ -17,7 +17,7 @@
     struct HYD_pg *pg;
     struct HYD_proxy *proxy;
 
-    for (pg = &HYD_handle.pg_list; pg; pg = pg->next)
+    for (pg = &HYD_server_info.pg_list; pg; pg = pg->next)
         for (proxy = pg->proxy_list; proxy; proxy = proxy->next)
             if (proxy->control_fd == fd)
                 return proxy;
@@ -69,7 +69,7 @@
 
     HYDU_FUNC_ENTER();
 
-    if (HYD_handle.nameserver == NULL) {
+    if (HYD_server_info.nameserver == NULL) {
         /* no external nameserver available */
         for (r = HYD_pmcd_pmi_publish_list; r; r = r->next)
             if (!strcmp(r->name, name))
@@ -101,7 +101,7 @@
 
         /* connect to the external nameserver and store the
          * information there */
-        ns = HYDU_strdup(HYD_handle.nameserver);
+        ns = HYDU_strdup(HYD_server_info.nameserver);
 
         ns_host = strtok(ns, ":");
         HYDU_ASSERT(ns_host, status);
@@ -163,7 +163,7 @@
     HYDU_FUNC_ENTER();
 
     *success = 0;
-    if (HYD_handle.nameserver == NULL) {
+    if (HYD_server_info.nameserver == NULL) {
         /* no external nameserver available */
         if (!strcmp(HYD_pmcd_pmi_publish_list->name, name)) {
             publish = HYD_pmcd_pmi_publish_list;
@@ -199,7 +199,7 @@
 
         /* connect to the external nameserver and get the information
          * from there */
-        ns = HYDU_strdup(HYD_handle.nameserver);
+        ns = HYDU_strdup(HYD_server_info.nameserver);
 
         ns_host = strtok(ns, ":");
         HYDU_ASSERT(ns_host, status);
@@ -255,7 +255,7 @@
 
     HYDU_FUNC_ENTER();
 
-    if (HYD_handle.nameserver == NULL) {
+    if (HYD_server_info.nameserver == NULL) {
         /* no external nameserver available */
         for (publish = HYD_pmcd_pmi_publish_list; publish; publish = publish->next)
             if (!strcmp(publish->name, name))
@@ -270,7 +270,7 @@
 
         /* connect to the external nameserver and get the information
          * from there */
-        ns = HYDU_strdup(HYD_handle.nameserver);
+        ns = HYDU_strdup(HYD_server_info.nameserver);
 
         ns_host = strtok(ns, ":");
         HYDU_ASSERT(ns_host, status);

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.h
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
 #ifndef PMISERV_PMI_H_INCLUDED
 #define PMISERV_PMI_H_INCLUDED
 
-#include "hydra_base.h"
+#include "hydra.h"
 #include "demux.h"
 #include "common.h"
 

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v1.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v1.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v1.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,8 @@
  *      See COPYRIGHT in top-level directory.
  */
 
+#include "hydra_server.h"
 #include "hydra.h"
-#include "hydra_utils.h"
 #include "bsci.h"
 #include "pmiserv.h"
 #include "pmiserv_pmi.h"
@@ -28,7 +28,7 @@
     HYDU_ERR_POP(status, "unable to send PMI_RESPONSE header to proxy\n");
     HYDU_ASSERT(!closed, status);
 
-    if (HYD_handle.user_global.debug) {
+    if (HYD_server_info.user_global.debug) {
         HYDU_dump(stdout, "PMI response to fd %d pid %d: %s", fd, pid, cmd);
     }
 
@@ -331,7 +331,7 @@
     }
 
     /* Allocate a new process group */
-    for (pg = &HYD_handle.pg_list; pg->next; pg = pg->next);
+    for (pg = &HYD_server_info.pg_list; pg->next; pg = pg->next);
     new_pgid = pg->pgid + 1;
 
     status = HYDU_alloc_pg(&pg->next, new_pgid);
@@ -406,14 +406,16 @@
                 exec->wdir = HYDU_strdup(info_val);
             }
             else if (!strcmp(info_key, "host")) {
-                HYDU_MALLOC(user_node_list, struct HYD_node *, sizeof(struct HYD_node), status);
+                HYDU_MALLOC(user_node_list, struct HYD_node *, sizeof(struct HYD_node),
+                            status);
                 user_node_list->hostname = HYDU_strdup(info_val);
                 user_node_list->core_count = 1;
                 user_node_list->local_binding = NULL;
                 user_node_list->next = NULL;
             }
             else if (!strcmp(info_key, "hostfile")) {
-                status = HYDU_parse_hostfile(info_val, &user_node_list, HYDU_process_mfile_token);
+                status =
+                    HYDU_parse_hostfile(info_val, &user_node_list, HYDU_process_mfile_token);
                 HYDU_ERR_POP(status, "error parsing hostfile\n");
             }
             else {
@@ -500,7 +502,7 @@
 
     /* Create the proxy list */
     offset = 0;
-    for (pg = &HYD_handle.pg_list; pg->next; pg = pg->next)
+    for (pg = &HYD_server_info.pg_list; pg->next; pg = pg->next)
         offset += pg->pg_process_count;
 
     if (user_node_list) {
@@ -508,22 +510,22 @@
         HYDU_ERR_POP(status, "error creating proxy list\n");
     }
     else {
-        status = HYDU_create_proxy_list(exec_list, HYD_handle.node_list, pg, offset);
+        status = HYDU_create_proxy_list(exec_list, HYD_server_info.node_list, pg, offset);
         HYDU_ERR_POP(status, "error creating proxy list\n");
     }
     HYDU_free_exec_list(exec_list);
 
-    status = HYDU_sock_create_and_listen_portstr(HYD_handle.user_global.iface,
-                                                 HYD_handle.local_hostname,
-                                                 HYD_handle.port_range, &control_port,
+    status = HYDU_sock_create_and_listen_portstr(HYD_server_info.user_global.iface,
+                                                 HYD_server_info.local_hostname,
+                                                 HYD_server_info.port_range, &control_port,
                                                  HYD_pmcd_pmiserv_control_listen_cb,
                                                  (void *) (size_t) new_pgid);
     HYDU_ERR_POP(status, "unable to create PMI port\n");
-    if (HYD_handle.user_global.debug)
+    if (HYD_server_info.user_global.debug)
         HYDU_dump(stdout, "Got a control port string of %s\n", control_port);
 
     /* Go to the last PG */
-    for (pg = &HYD_handle.pg_list; pg->next; pg = pg->next);
+    for (pg = &HYD_server_info.pg_list; pg->next; pg = pg->next);
 
     /* Copy the host list to pass to the launcher */
     node_list = NULL;

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v2.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v2.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v2.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,8 @@
  *      See COPYRIGHT in top-level directory.
  */
 
+#include "hydra_server.h"
 #include "hydra.h"
-#include "hydra_utils.h"
 #include "bsci.h"
 #include "pmiserv.h"
 #include "pmiserv_pmi.h"
@@ -42,7 +42,7 @@
     HYDU_ERR_POP(status, "error writing PMI line\n");
     HYDU_ASSERT(!closed, status);
 
-    if (HYD_handle.user_global.debug) {
+    if (HYD_server_info.user_global.debug) {
         HYDU_dump(stdout, "PMI response to fd %d pid %d: %s\n", fd, pid, cmd);
     }
 
@@ -512,7 +512,7 @@
 
 
     /* Allocate a new process group */
-    for (pg = &HYD_handle.pg_list; pg->next; pg = pg->next);
+    for (pg = &HYD_server_info.pg_list; pg->next; pg = pg->next);
     new_pgid = pg->pgid + 1;
 
     status = HYDU_alloc_pg(&pg->next, new_pgid);
@@ -587,14 +587,16 @@
                 exec->wdir = HYDU_strdup(info_val);
             }
             else if (!strcmp(info_key, "host")) {
-                HYDU_MALLOC(user_node_list, struct HYD_node *, sizeof(struct HYD_node), status);
+                HYDU_MALLOC(user_node_list, struct HYD_node *, sizeof(struct HYD_node),
+                            status);
                 user_node_list->hostname = HYDU_strdup(info_val);
                 user_node_list->core_count = 1;
                 user_node_list->local_binding = NULL;
                 user_node_list->next = NULL;
             }
             else if (!strcmp(info_key, "hostfile")) {
-                status = HYDU_parse_hostfile(info_val, &user_node_list, HYDU_process_mfile_token);
+                status =
+                    HYDU_parse_hostfile(info_val, &user_node_list, HYDU_process_mfile_token);
                 HYDU_ERR_POP(status, "error parsing hostfile\n");
             }
             else {
@@ -681,7 +683,7 @@
 
     /* Create the proxy list */
     offset = 0;
-    for (pg = &HYD_handle.pg_list; pg->next; pg = pg->next)
+    for (pg = &HYD_server_info.pg_list; pg->next; pg = pg->next)
         offset += pg->pg_process_count;
 
     if (user_node_list) {
@@ -689,22 +691,22 @@
         HYDU_ERR_POP(status, "error creating proxy list\n");
     }
     else {
-        status = HYDU_create_proxy_list(exec_list, HYD_handle.node_list, pg, offset);
+        status = HYDU_create_proxy_list(exec_list, HYD_server_info.node_list, pg, offset);
         HYDU_ERR_POP(status, "error creating proxy list\n");
     }
     HYDU_free_exec_list(exec_list);
 
-    status = HYDU_sock_create_and_listen_portstr(HYD_handle.user_global.iface,
-                                                 HYD_handle.local_hostname,
-                                                 HYD_handle.port_range, &control_port,
+    status = HYDU_sock_create_and_listen_portstr(HYD_server_info.user_global.iface,
+                                                 HYD_server_info.local_hostname,
+                                                 HYD_server_info.port_range, &control_port,
                                                  HYD_pmcd_pmiserv_control_listen_cb,
                                                  (void *) (size_t) new_pgid);
     HYDU_ERR_POP(status, "unable to create PMI port\n");
-    if (HYD_handle.user_global.debug)
+    if (HYD_server_info.user_global.debug)
         HYDU_dump(stdout, "Got a control port string of %s\n", control_port);
 
     /* Go to the last PG */
-    for (pg = &HYD_handle.pg_list; pg->next; pg = pg->next);
+    for (pg = &HYD_server_info.pg_list; pg->next; pg = pg->next);
 
     /* Copy the host list to pass to the launcher */
     node_list = NULL;

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_utils.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_utils.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_utils.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra.h"
+#include "hydra_server.h"
 #include "pmci.h"
 #include "bsci.h"
 #include "pmiserv_pmi.h"
@@ -46,7 +46,7 @@
     }
 
     i = 0;
-    path_str[i++] = HYDU_strdup(HYD_handle.base_path);
+    path_str[i++] = HYDU_strdup(HYD_server_info.base_path);
     path_str[i++] = HYDU_strdup("hydra_pmi_proxy");
     path_str[i] = NULL;
     status = HYDU_str_alloc_and_join(path_str, &proxy_args[arg++]);
@@ -56,33 +56,30 @@
     proxy_args[arg++] = HYDU_strdup("--control-port");
     proxy_args[arg++] = HYDU_strdup(control_port);
 
-    if (HYD_handle.user_global.debug)
+    if (HYD_server_info.user_global.debug)
         proxy_args[arg++] = HYDU_strdup("--debug");
 
-    if (HYD_handle.user_global.rmk) {
+    if (HYD_server_info.user_global.rmk) {
         proxy_args[arg++] = HYDU_strdup("--rmk");
-        proxy_args[arg++] = HYDU_strdup(HYD_handle.user_global.rmk);
+        proxy_args[arg++] = HYDU_strdup(HYD_server_info.user_global.rmk);
     }
 
-    if (HYD_handle.user_global.launcher) {
+    if (HYD_server_info.user_global.launcher) {
         proxy_args[arg++] = HYDU_strdup("--launcher");
-        proxy_args[arg++] = HYDU_strdup(HYD_handle.user_global.launcher);
+        proxy_args[arg++] = HYDU_strdup(HYD_server_info.user_global.launcher);
     }
 
-    if (HYD_handle.user_global.launcher_exec) {
+    if (HYD_server_info.user_global.launcher_exec) {
         proxy_args[arg++] = HYDU_strdup("--launcher-exec");
-        proxy_args[arg++] = HYDU_strdup(HYD_handle.user_global.launcher_exec);
+        proxy_args[arg++] = HYDU_strdup(HYD_server_info.user_global.launcher_exec);
     }
 
-    if (HYD_handle.user_global.prepend_rank)
-        proxy_args[arg++] = HYDU_strdup("--prepend-rank");
-
     proxy_args[arg++] = HYDU_strdup("--demux");
-    proxy_args[arg++] = HYDU_strdup(HYD_handle.user_global.demux);
+    proxy_args[arg++] = HYDU_strdup(HYD_server_info.user_global.demux);
 
-    if (HYD_handle.user_global.iface) {
+    if (HYD_server_info.user_global.iface) {
         proxy_args[arg++] = HYDU_strdup("--iface");
-        proxy_args[arg++] = HYDU_strdup(HYD_handle.user_global.iface);
+        proxy_args[arg++] = HYDU_strdup(HYD_server_info.user_global.iface);
     }
 
     proxy_args[arg++] = HYDU_strdup("--pgid");
@@ -102,7 +99,7 @@
     proxy_args[arg++] = HYDU_strdup("--proxy-id");
     proxy_args[arg++] = NULL;
 
-    if (HYD_handle.user_global.debug) {
+    if (HYD_server_info.user_global.debug) {
         HYDU_dump_noprefix(stdout, "\nProxy launch args: ");
         HYDU_print_strlist(proxy_args);
         HYDU_dump_noprefix(stdout, "\n");
@@ -216,11 +213,11 @@
     /* Create the arguments list for each proxy */
     process_id = 0;
     for (proxy = pg->proxy_list; proxy; proxy = proxy->next) {
-        for (inherited_env_count = 0, env = HYD_handle.user_global.global_env.inherited; env;
-             env = env->next, inherited_env_count++);
-        for (user_env_count = 0, env = HYD_handle.user_global.global_env.user; env;
+        for (inherited_env_count = 0, env = HYD_server_info.user_global.global_env.inherited;
+             env; env = env->next, inherited_env_count++);
+        for (user_env_count = 0, env = HYD_server_info.user_global.global_env.user; env;
              env = env->next, user_env_count++);
-        for (system_env_count = 0, env = HYD_handle.user_global.global_env.system; env;
+        for (system_env_count = 0, env = HYD_server_info.user_global.global_env.system; env;
              env = env->next, system_env_count++);
 
         for (exec_count = 0, exec = proxy->exec_list; exec; exec = exec->next)
@@ -245,27 +242,28 @@
         proxy->exec_launch_info[arg++] = HYDU_strdup("--version");
         proxy->exec_launch_info[arg++] = HYDU_strdup(HYDRA_VERSION);
 
-        if (HYD_handle.interface_env_name) {
+        if (HYD_server_info.interface_env_name) {
             proxy->exec_launch_info[arg++] = HYDU_strdup("--interface-env-name");
-            proxy->exec_launch_info[arg++] = HYDU_strdup(HYD_handle.interface_env_name);
+            proxy->exec_launch_info[arg++] = HYDU_strdup(HYD_server_info.interface_env_name);
         }
 
         proxy->exec_launch_info[arg++] = HYDU_strdup("--hostname");
         proxy->exec_launch_info[arg++] = HYDU_strdup(proxy->node.hostname);
 
         proxy->exec_launch_info[arg++] = HYDU_strdup("--global-core-count");
-        proxy->exec_launch_info[arg++] = HYDU_int_to_str(HYD_handle.global_core_count);
+        proxy->exec_launch_info[arg++] = HYDU_int_to_str(HYD_server_info.global_core_count);
 
         proxy->exec_launch_info[arg++] = HYDU_strdup("--global-process-count");
         proxy->exec_launch_info[arg++] = HYDU_int_to_str(pg->pg_process_count);
 
         proxy->exec_launch_info[arg++] = HYDU_strdup("--auto-cleanup");
-        proxy->exec_launch_info[arg++] = HYDU_int_to_str(HYD_handle.user_global.auto_cleanup);
+        proxy->exec_launch_info[arg++] =
+            HYDU_int_to_str(HYD_server_info.user_global.auto_cleanup);
 
         /* Check if we are running in embedded mode */
         ret = MPL_env2str("PMI_FD", (const char **) &pmi_fd);
         if (ret) {      /* PMI_FD already set */
-            if (HYD_handle.user_global.debug)
+            if (HYD_server_info.user_global.debug)
                 HYDU_dump(stdout, "someone else already set PMI FD\n");
             pmi_fd = HYDU_strdup(pmi_fd);
 
@@ -280,7 +278,7 @@
 
         ret = MPL_env2str("PMI_PORT", (const char **) &pmi_port);
         if (ret) {      /* PMI_FD already set */
-            if (HYD_handle.user_global.debug)
+            if (HYD_server_info.user_global.debug)
                 HYDU_dump(stdout, "someone else already set PMI PORT\n");
             pmi_port = HYDU_strdup(pmi_port);
 
@@ -297,7 +295,7 @@
             HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,
                                 "both PMI_FD and PMI_PORT have been set\n");
 
-        if (HYD_handle.user_global.debug)
+        if (HYD_server_info.user_global.debug)
             HYDU_dump(stdout, "PMI FD: %s; PMI PORT: %s; PMI ID/RANK: %d\n", pmi_fd, pmi_port,
                       pmi_rank);
 
@@ -333,39 +331,40 @@
             proxy->exec_launch_info[arg++] = HYDU_strdup(proxy->node.local_binding);
         }
 
-        if (HYD_handle.user_global.binding) {
+        if (HYD_server_info.user_global.binding) {
             proxy->exec_launch_info[arg++] = HYDU_strdup("--binding");
-            proxy->exec_launch_info[arg++] = HYDU_strdup(HYD_handle.user_global.binding);
+            proxy->exec_launch_info[arg++] = HYDU_strdup(HYD_server_info.user_global.binding);
         }
 
-        if (HYD_handle.user_global.bindlib) {
+        if (HYD_server_info.user_global.bindlib) {
             proxy->exec_launch_info[arg++] = HYDU_strdup("--bindlib");
-            proxy->exec_launch_info[arg++] = HYDU_strdup(HYD_handle.user_global.bindlib);
+            proxy->exec_launch_info[arg++] = HYDU_strdup(HYD_server_info.user_global.bindlib);
         }
 
-        if (HYD_handle.user_global.ckpointlib) {
+        if (HYD_server_info.user_global.ckpointlib) {
             proxy->exec_launch_info[arg++] = HYDU_strdup("--ckpointlib");
-            proxy->exec_launch_info[arg++] = HYDU_strdup(HYD_handle.user_global.ckpointlib);
+            proxy->exec_launch_info[arg++] =
+                HYDU_strdup(HYD_server_info.user_global.ckpointlib);
         }
 
-        if (HYD_handle.user_global.ckpoint_prefix) {
+        if (HYD_server_info.user_global.ckpoint_prefix) {
             proxy->exec_launch_info[arg++] = HYDU_strdup("--ckpoint-prefix");
             proxy->exec_launch_info[arg++] =
-                HYDU_strdup(HYD_handle.user_global.ckpoint_prefix);
+                HYDU_strdup(HYD_server_info.user_global.ckpoint_prefix);
         }
 
-        if (HYD_handle.user_global.ckpoint_num) {
+        if (HYD_server_info.user_global.ckpoint_num) {
             proxy->exec_launch_info[arg++] = HYDU_strdup("--ckpoint-num");
             proxy->exec_launch_info[arg++] =
-                HYDU_int_to_str(HYD_handle.user_global.ckpoint_num);
+                HYDU_int_to_str(HYD_server_info.user_global.ckpoint_num);
         }
 
         proxy->exec_launch_info[arg++] = HYDU_strdup("--global-inherited-env");
-        for (i = 0, env = HYD_handle.user_global.global_env.inherited; env;
+        for (i = 0, env = HYD_server_info.user_global.global_env.inherited; env;
              env = env->next, i++);
         proxy->exec_launch_info[arg++] = HYDU_int_to_str(i);
 
-        for (env = HYD_handle.user_global.global_env.inherited; env; env = env->next) {
+        for (env = HYD_server_info.user_global.global_env.inherited; env; env = env->next) {
             status = HYDU_env_to_str(env, &proxy->exec_launch_info[arg++]);
             HYDU_ERR_POP(status, "error converting env to string\n");
         }
@@ -373,10 +372,11 @@
 
         arg = HYDU_strlist_lastidx(proxy->exec_launch_info);
         proxy->exec_launch_info[arg++] = HYDU_strdup("--global-user-env");
-        for (i = 0, env = HYD_handle.user_global.global_env.user; env; env = env->next, i++);
+        for (i = 0, env = HYD_server_info.user_global.global_env.user; env;
+             env = env->next, i++);
         proxy->exec_launch_info[arg++] = HYDU_int_to_str(i);
 
-        for (env = HYD_handle.user_global.global_env.user; env; env = env->next) {
+        for (env = HYD_server_info.user_global.global_env.user; env; env = env->next) {
             status = HYDU_env_to_str(env, &proxy->exec_launch_info[arg++]);
             HYDU_ERR_POP(status, "error converting env to string\n");
         }
@@ -384,20 +384,21 @@
 
         arg = HYDU_strlist_lastidx(proxy->exec_launch_info);
         proxy->exec_launch_info[arg++] = HYDU_strdup("--global-system-env");
-        for (i = 0, env = HYD_handle.user_global.global_env.system; env; env = env->next, i++);
+        for (i = 0, env = HYD_server_info.user_global.global_env.system; env;
+             env = env->next, i++);
         proxy->exec_launch_info[arg++] = HYDU_int_to_str(i);
 
-        for (env = HYD_handle.user_global.global_env.system; env; env = env->next) {
+        for (env = HYD_server_info.user_global.global_env.system; env; env = env->next) {
             status = HYDU_env_to_str(env, &proxy->exec_launch_info[arg++]);
             HYDU_ERR_POP(status, "error converting env to string\n");
         }
         proxy->exec_launch_info[arg++] = NULL;
 
         arg = HYDU_strlist_lastidx(proxy->exec_launch_info);
-        if (HYD_handle.user_global.global_env.prop) {
+        if (HYD_server_info.user_global.global_env.prop) {
             proxy->exec_launch_info[arg++] = HYDU_strdup("--genv-prop");
             proxy->exec_launch_info[arg++] =
-                HYDU_strdup(HYD_handle.user_global.global_env.prop);
+                HYDU_strdup(HYD_server_info.user_global.global_env.prop);
         }
 
         proxy->exec_launch_info[arg++] = HYDU_strdup("--start-pid");
@@ -452,7 +453,7 @@
             process_id += exec->proc_count;
         }
 
-        if (HYD_handle.user_global.debug) {
+        if (HYD_server_info.user_global.debug) {
             HYDU_dump_noprefix(stdout, "Arguments being passed to proxy %d:\n", proxy_count++);
             HYDU_print_strlist(proxy->exec_launch_info);
             HYDU_dump_noprefix(stdout, "\n");

Modified: mpich2/trunk/src/pm/hydra/tools/bind/bind.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/bind.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bind/bind.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bind.h"
 
 #if defined HAVE_PLPA

Modified: mpich2/trunk/src/pm/hydra/tools/bind/bind.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/bind.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bind/bind.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -9,7 +9,7 @@
 
 /** @file bind.h */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 
 /*! \cond */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/bind_hwloc.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/bind_hwloc.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/bind_hwloc.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bind.h"
 #include "bind_hwloc.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/plpa/bind_plpa.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/plpa/bind_plpa.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bind/plpa/bind_plpa.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bind.h"
 #include "bind_plpa.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_env.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_env.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_env.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "external.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_finalize.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_finalize.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "external.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "external.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 #include "bind.h"

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_query_native_int.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_query_native_int.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_query_native_int.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "external.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
 #ifndef LL_H_INCLUDED
 #define LL_H_INCLUDED
 
-#include "hydra_base.h"
+#include "hydra.h"
 
 HYD_status HYDT_bscd_ll_launch_procs(char **args, struct HYD_node *node_list,
                                      int *control_fd, int enable_stdin);

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_launch.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_launch.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 #include "bind.h"

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_node_list.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_node_list.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 #include "ll.h"

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_proxy_id.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_proxy_id.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_proxy_id.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 #include "ll.h"

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
 #ifndef LSF_H_INCLUDED
 #define LSF_H_INCLUDED
 
-#include "hydra_base.h"
+#include "hydra.h"
 
 HYD_status HYDT_bscd_lsf_query_node_list(struct HYD_node **node_list);
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf_query_node_list.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf_query_node_list.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 #include "lsf.h"

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
 #ifndef PBS_H_INCLUDED
 #define PBS_H_INCLUDED
 
-#include "hydra_base.h"
+#include "hydra.h"
 
 HYD_status HYDT_bscd_pbs_query_node_list(struct HYD_node **node_list);
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs_query_node_list.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs_query_node_list.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "pbs.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
 #ifndef SGE_H_INCLUDED
 #define SGE_H_INCLUDED
 
-#include "hydra_base.h"
+#include "hydra.h"
 
 HYD_status HYDT_bscd_sge_query_node_list(struct HYD_node **node_list);
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge_query_node_list.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge_query_node_list.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 #include "sge.h"

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
 #ifndef SLURM_H_INCLUDED
 #define SLURM_H_INCLUDED
 
-#include "hydra_base.h"
+#include "hydra.h"
 
 HYD_status HYDT_bscd_slurm_launch_procs(char **args, struct HYD_node *node_list,
                                         int *control_fd, int enable_stdin);

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_launch.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_launch.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 #include "bind.h"

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 #include "slurm.h"

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_proxy_id.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_proxy_id.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_proxy_id.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 #include "slurm.h"

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 #include "ssh.h"

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
 #ifndef SSH_H_INCLUDED
 #define SSH_H_INCLUDED
 
-#include "hydra_base.h"
+#include "hydra.h"
 
 /* Modern sshd servers don't like more than a certain number of ssh
  * connections from the same IP address per minute. If we exceed that,

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_client.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_client.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_client.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
 #ifndef PERSIST_CLIENT_H_INCLUDED
 #define PERSIST_CLIENT_H_INCLUDED
 
-#include "hydra_base.h"
+#include "hydra.h"
 #include "bscu.h"
 #include "persist.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_init.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_init.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_init.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "persist_client.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_launch.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_launch.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 #include "persist_client.h"

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bind.h"
 #include "persist_server.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
 #ifndef PERSIST_SERVER_H_INCLUDED
 #define PERSIST_SERVER_H_INCLUDED
 
-#include "hydra_base.h"
+#include "hydra.h"
 #include "demux.h"
 #include "persist.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_wait.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_wait.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_wait.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "persist_client.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_env.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_env.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_env.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_finalize.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_finalize.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_launch.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_launch.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 
 HYD_status HYDT_bsci_launch_procs(char **args, struct HYD_node *node_list, int *control_fd,

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_native_int.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_native_int.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_native_int.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_node_list.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_node_list.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_proxy_id.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_proxy_id.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_proxy_id.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_usize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_usize.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_usize.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_wait.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_wait.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_wait.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 #include "bscu.h"
 

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
 #ifndef BSCU_H_INCLUDED
 #define BSCU_H_INCLUDED
 
-#include "hydra_base.h"
+#include "hydra.h"
 #include "demux.h"
 
 extern int *HYD_bscu_fd_list;

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_cb.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_cb.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_cb.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bscu.h"
 
 HYD_status HYDT_bscu_stdio_cb(int fd, HYD_event_t events, void *userp)

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_env.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_env.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_env.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bscu.h"
 
 HYD_status HYDT_bscu_query_env_inherit(const char *env_name, int *ret)

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_finalize.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_finalize.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bscu.h"
 
 HYD_status HYDT_bscu_rmk_finalize(void)

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_native_int.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_native_int.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_native_int.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bscu.h"
 
 HYD_status HYDT_bscu_query_native_int(int *ret)

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_node_list.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_node_list.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bscu.h"
 
 HYD_status HYDT_bscu_query_node_list(struct HYD_node **node_list)

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_proxy_id.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_proxy_id.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_proxy_id.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bscu.h"
 
 HYD_status HYDT_bscu_query_proxy_id(int *proxy_id)

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_usize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_usize.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_usize.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bscu.h"
 
 HYD_status HYDT_bscu_query_usize(int *size)

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_wait.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_wait.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_wait.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bscu.h"
 
 int *HYD_bscu_fd_list = NULL;

Modified: mpich2/trunk/src/pm/hydra/tools/ckpoint/blcr/ckpoint_blcr.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/ckpoint/blcr/ckpoint_blcr.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/ckpoint/blcr/ckpoint_blcr.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "ckpoint.h"
 #include "ckpoint_blcr.h"
 #include <libcr.h>

Modified: mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "ckpoint.h"
 
 #if defined HAVE_BLCR

Modified: mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -9,7 +9,7 @@
 
 /** @file ckpoint.h */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 
 /*! \addtogroup ckpoint Checkpointing Library Interface
  * @{

Modified: mpich2/trunk/src/pm/hydra/tools/debugger/debugger.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/debugger/debugger.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/debugger/debugger.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "debugger.h"
 
 struct MPIR_PROCDESC *MPIR_proctable = NULL;

Modified: mpich2/trunk/src/pm/hydra/tools/demux/demux.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/demux/demux.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/demux/demux.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,8 +7,7 @@
 #ifndef DEMUX_H_INCLUDED
 #define DEMUX_H_INCLUDED
 
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
 
 /*! \addtogroup demux Demultiplexing Engine
  * @{

Modified: mpich2/trunk/src/pm/hydra/tools/demux/demux_internal.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/demux/demux_internal.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/demux/demux_internal.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,8 +7,7 @@
 #ifndef DEMUX_INTERNAL_H_INCLUDED
 #define DEMUX_INTERNAL_H_INCLUDED
 
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
 
 struct HYDT_dmxu_callback {
     int num_fds;

Modified: mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "hydt_ftb.h"
 
 static FTB_client_handle_t ch;

Modified: mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb_dummy.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb_dummy.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb_dummy.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "hydt_ftb.h"
 
 HYD_status HYDT_ftb_init(void)

Modified: mpich2/trunk/src/pm/hydra/tools/nameserver/hydra_nameserver.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/nameserver/hydra_nameserver.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/nameserver/hydra_nameserver.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "demux.h"
 
 struct HYDT_ns_publish {

Modified: mpich2/trunk/src/pm/hydra/ui/Makefile.mk
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/Makefile.mk	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/ui/Makefile.mk	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,6 +4,8 @@
 #     See COPYRIGHT in top-level directory.
 #
 
+AM_CPPFLAGS += -I$(top_srcdir)/ui/include
+
 include ui/utils/Makefile.mk
 
 if hydra_ui_mpich

Added: mpich2/trunk/src/pm/hydra/ui/include/ui.h
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/include/ui.h	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/ui/include/ui.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -0,0 +1,16 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#ifndef UI_H_INCLUDED
+#define UI_H_INCLUDED
+
+struct HYD_ui_info {
+    int prepend_rank;
+};
+
+extern struct HYD_ui_info HYD_ui_info;
+
+#endif /* UI_H_INCLUDED */

Modified: mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.c
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,18 +4,21 @@
  *      See COPYRIGHT in top-level directory.
  */
 
+#include "hydra_server.h"
 #include "hydra.h"
-#include "hydra_utils.h"
 #include "mpiexec.h"
 #include "pmci.h"
 #include "bsci.h"
 #include "hydt_ftb.h"
 #include "demux.h"
+#include "ui.h"
 #include "uiu.h"
 
-struct HYD_handle HYD_handle = { {0} };
+struct HYD_server_info HYD_server_info = { {0} };
 
 struct HYD_exec *HYD_uii_mpx_exec_list = NULL;
+struct HYD_ui_info HYD_ui_info;
+struct HYD_ui_mpich_info HYD_ui_mpich_info;
 
 static void usage(void)
 {
@@ -129,21 +132,21 @@
          * and send a signal to ourselves. The signal callback does
          * the process cleanup instead. */
         cmd.type = HYD_CLEANUP;
-        HYDU_sock_write(HYD_handle.cleanup_pipe[1], &cmd, sizeof(cmd), &sent, &closed);
+        HYDU_sock_write(HYD_server_info.cleanup_pipe[1], &cmd, sizeof(cmd), &sent, &closed);
     }
     else if (sig == SIGUSR1 || sig == SIGALRM) {
-        if (HYD_handle.user_global.ckpoint_prefix == NULL) {
+        if (HYD_server_info.user_global.ckpoint_prefix == NULL) {
             HYDU_dump(stderr, "No checkpoint prefix provided\n");
             return;
         }
 
 #if HAVE_ALARM
-        if (HYD_handle.ckpoint_int != -1)
-            alarm(HYD_handle.ckpoint_int);
+        if (HYD_ui_mpich_info.ckpoint_int != -1)
+            alarm(HYD_ui_mpich_info.ckpoint_int);
 #endif /* HAVE_ALARM */
 
         cmd.type = HYD_CKPOINT;
-        HYDU_sock_write(HYD_handle.cleanup_pipe[1], &cmd, sizeof(cmd), &sent, &closed);
+        HYDU_sock_write(HYD_server_info.cleanup_pipe[1], &cmd, sizeof(cmd), &sent, &closed);
     }
     /* Ignore all other signals */
 
@@ -152,8 +155,8 @@
 }
 
 #define ordered(n1, n2) \
-    (((HYD_handle.sort_order == ASCENDING) && ((n1)->core_count <= (n2)->core_count)) || \
-     ((HYD_handle.sort_order == DESCENDING) && ((n1)->core_count >= (n2)->core_count)))
+    (((HYD_ui_mpich_info.sort_order == ASCENDING) && ((n1)->core_count <= (n2)->core_count)) || \
+     ((HYD_ui_mpich_info.sort_order == DESCENDING) && ((n1)->core_count >= (n2)->core_count)))
 
 static int compar(const void *_n1, const void *_n2)
 {
@@ -170,7 +173,7 @@
     else
         ret = 1;
 
-    if (HYD_handle.sort_order == DESCENDING)
+    if (HYD_ui_mpich_info.sort_order == DESCENDING)
         ret *= -1;
 
     return ret;
@@ -182,10 +185,10 @@
     int count, i;
     HYD_status status = HYD_SUCCESS;
 
-    for (count = 0, node = HYD_handle.node_list; node; node = node->next, count++);
+    for (count = 0, node = HYD_server_info.node_list; node; node = node->next, count++);
 
     HYDU_MALLOC(node_list, struct HYD_node **, count * sizeof(struct HYD_node *), status);
-    for (i = 0, node = HYD_handle.node_list; node; node = node->next, i++)
+    for (i = 0, node = HYD_server_info.node_list; node; node = node->next, i++)
         node_list[i] = node;
 
     qsort((void *) node_list, (size_t) count, sizeof(struct HYD_node *), compar);
@@ -196,7 +199,7 @@
         r1 = r1->next;
         r1->next = NULL;
     }
-    HYD_handle.node_list = new_list;
+    HYD_server_info.node_list = new_list;
 
     HYDU_FREE(node_list);
 
@@ -225,7 +228,7 @@
     status = HYDU_set_common_signals(signal_cb);
     HYDU_ERR_POP(status, "unable to set signal\n");
 
-    if (pipe(HYD_handle.cleanup_pipe) < 0)
+    if (pipe(HYD_server_info.cleanup_pipe) < 0)
         HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "pipe error\n");
 
     status = HYDT_ftb_init();
@@ -246,29 +249,30 @@
     /* Now we initialize engines that require us to know user
      * preferences */
 #if HAVE_ALARM
-    if (HYD_handle.ckpoint_int != -1)
-        alarm(HYD_handle.ckpoint_int);
+    if (HYD_ui_mpich_info.ckpoint_int != -1)
+        alarm(HYD_ui_mpich_info.ckpoint_int);
 #endif /* HAVE_ALARM */
 
-    status = HYDT_dmx_init(&HYD_handle.user_global.demux);
+    status = HYDT_dmx_init(&HYD_server_info.user_global.demux);
     HYDU_ERR_POP(status, "unable to initialize the demux engine\n");
 
-    status = HYDT_bsci_init(HYD_handle.user_global.rmk, HYD_handle.user_global.launcher,
-                            HYD_handle.user_global.launcher_exec,
-                            HYD_handle.user_global.enablex, HYD_handle.user_global.debug);
+    status =
+        HYDT_bsci_init(HYD_server_info.user_global.rmk, HYD_server_info.user_global.launcher,
+                       HYD_server_info.user_global.launcher_exec,
+                       HYD_server_info.user_global.enablex, HYD_server_info.user_global.debug);
     HYDU_ERR_POP(status, "unable to initialize the bootstrap server\n");
 
     reset_rmk = 0;
 
-    if (HYD_handle.node_list == NULL) {
+    if (HYD_server_info.node_list == NULL) {
         /* Node list is not created yet. The user might not have
          * provided the host file. Query the RMK. */
-        status = HYDT_bsci_query_node_list(&HYD_handle.node_list);
+        status = HYDT_bsci_query_node_list(&HYD_server_info.node_list);
         HYDU_ERR_POP(status, "unable to query the RMK for a node list\n");
 
-        if (HYD_handle.node_list == NULL) {
+        if (HYD_server_info.node_list == NULL) {
             /* The RMK didn't give us anything back; use localhost */
-            status = HYDU_add_to_node_list("localhost", 1, &HYD_handle.node_list);
+            status = HYDU_add_to_node_list("localhost", 1, &HYD_server_info.node_list);
             HYDU_ERR_POP(status, "unable to add to node list\n");
 
             reset_rmk = 1;
@@ -277,13 +281,13 @@
 
     /* Reset the host list to use only the number of processes per
      * node as specified by the ppn option. */
-    if (HYD_handle.ppn != -1)
-        for (node = HYD_handle.node_list; node; node = node->next)
-            node->core_count = HYD_handle.ppn;
+    if (HYD_ui_mpich_info.ppn != -1)
+        for (node = HYD_server_info.node_list; node; node = node->next)
+            node->core_count = HYD_ui_mpich_info.ppn;
 
     /* The RMK returned a node list. See if the user requested us to
      * manipulate it in some way */
-    if (HYD_handle.sort_order != NONE) {
+    if (HYD_ui_mpich_info.sort_order != NONE) {
         qsort_node_list();
         reset_rmk = 1;
     }
@@ -295,40 +299,41 @@
         status = HYDT_bsci_finalize();
         HYDU_ERR_POP(status, "unable to finalize bootstrap device\n");
 
-        status = HYDT_bsci_init("none", HYD_handle.user_global.launcher,
-                                HYD_handle.user_global.launcher_exec,
-                                HYD_handle.user_global.enablex, HYD_handle.user_global.debug);
+        status = HYDT_bsci_init("none", HYD_server_info.user_global.launcher,
+                                HYD_server_info.user_global.launcher_exec,
+                                HYD_server_info.user_global.enablex,
+                                HYD_server_info.user_global.debug);
         HYDU_ERR_POP(status, "unable to reinitialize the bootstrap server\n");
     }
 
-    HYD_handle.global_core_count = 0;
-    for (node = HYD_handle.node_list; node; node = node->next)
-        HYD_handle.global_core_count += node->core_count;
+    HYD_server_info.global_core_count = 0;
+    for (node = HYD_server_info.node_list; node; node = node->next)
+        HYD_server_info.global_core_count += node->core_count;
 
     /* If the number of processes is not given, we allocate all the
      * available nodes to each executable */
     for (exec = HYD_uii_mpx_exec_list; exec; exec = exec->next) {
         if (exec->proc_count == -1) {
-            if (HYD_handle.global_core_count == 0)
+            if (HYD_server_info.global_core_count == 0)
                 exec->proc_count = 1;
             else
-                exec->proc_count = HYD_handle.global_core_count;
+                exec->proc_count = HYD_server_info.global_core_count;
 
             /* If we didn't get anything from the user, take whatever
              * the RMK gave */
-            HYD_handle.pg_list.pg_process_count += exec->proc_count;
+            HYD_server_info.pg_list.pg_process_count += exec->proc_count;
         }
     }
 
-    status = HYDU_list_inherited_env(&HYD_handle.user_global.global_env.inherited);
+    status = HYDU_list_inherited_env(&HYD_server_info.user_global.global_env.inherited);
     HYDU_ERR_POP(status, "unable to get the inherited env list\n");
 
-    status = HYDU_create_proxy_list(HYD_uii_mpx_exec_list, HYD_handle.node_list,
-                                    &HYD_handle.pg_list, 0);
+    status = HYDU_create_proxy_list(HYD_uii_mpx_exec_list, HYD_server_info.node_list,
+                                    &HYD_server_info.pg_list, 0);
     HYDU_ERR_POP(status, "unable to create proxy list\n");
 
     /* See if the node list contains a remotely accessible localhost */
-    for (proxy = HYD_handle.pg_list.proxy_list; proxy; proxy = proxy->next) {
+    for (proxy = HYD_server_info.pg_list.proxy_list; proxy; proxy = proxy->next) {
         int is_local, remote_access;
 
         status = HYDU_sock_is_local(proxy->node.hostname, &is_local);
@@ -345,26 +350,26 @@
     }
 
     if (proxy)
-        HYD_handle.local_hostname = HYDU_strdup(proxy->node.hostname);
+        HYD_server_info.local_hostname = HYDU_strdup(proxy->node.hostname);
 
-    if (HYD_handle.user_global.debug)
+    if (HYD_server_info.user_global.debug)
         HYD_uiu_print_params();
 
     if (MPL_env2int("MPIEXEC_TIMEOUT", &timeout) == 0)
         timeout = -1;   /* Infinite timeout */
 
-    if (HYD_handle.user_global.debug)
+    if (HYD_server_info.user_global.debug)
         HYDU_dump(stdout, "Timeout set to %d (-1 means infinite)\n", timeout);
 
     /* Check if the user wants us to use a port within a certain
      * range. */
-    if (MPL_env2str("MPIEXEC_PORTRANGE", (const char **) &HYD_handle.port_range) ||
-        MPL_env2str("MPIEXEC_PORT_RANGE", (const char **) &HYD_handle.port_range) ||
-        MPL_env2str("MPICH_PORT_RANGE", (const char **) &HYD_handle.port_range))
-        HYD_handle.port_range = HYDU_strdup(HYD_handle.port_range);
+    if (MPL_env2str("MPIEXEC_PORTRANGE", (const char **) &HYD_server_info.port_range) ||
+        MPL_env2str("MPIEXEC_PORT_RANGE", (const char **) &HYD_server_info.port_range) ||
+        MPL_env2str("MPICH_PORT_RANGE", (const char **) &HYD_server_info.port_range))
+        HYD_server_info.port_range = HYDU_strdup(HYD_server_info.port_range);
 
-    if (HYD_handle.print_rank_map) {
-        for (proxy = HYD_handle.pg_list.proxy_list; proxy; proxy = proxy->next) {
+    if (HYD_ui_mpich_info.print_rank_map) {
+        for (proxy = HYD_server_info.pg_list.proxy_list; proxy; proxy = proxy->next) {
             HYDU_dump_noprefix(stdout, "(%s:", proxy->node.hostname);
 
             process_id = 0;
@@ -374,7 +379,7 @@
                                        HYDU_local_to_global_id(process_id++,
                                                                proxy->start_pid,
                                                                proxy->node.core_count,
-                                                               HYD_handle.global_core_count));
+                                                               HYD_server_info.global_core_count));
                     if (i < exec->proc_count - 1 || exec->next)
                         HYDU_dump_noprefix(stdout, ",");
                 }
@@ -384,8 +389,8 @@
     }
 
     /* Add the stdout/stdin/stderr callback handlers */
-    HYD_handle.stdout_cb = HYD_uiu_stdout_cb;
-    HYD_handle.stderr_cb = HYD_uiu_stderr_cb;
+    HYD_server_info.stdout_cb = HYD_uiu_stdout_cb;
+    HYD_server_info.stderr_cb = HYD_uiu_stderr_cb;
 
     /* Launch the processes */
     status = HYD_pmci_launch_procs();
@@ -396,10 +401,10 @@
     HYDU_ERR_POP(status, "process manager error waiting for completion\n");
 
     /* Check for the exit status for all the processes */
-    if (HYD_handle.print_all_exitcodes)
+    if (HYD_ui_mpich_info.print_all_exitcodes)
         HYDU_dump(stdout, "Exit codes: ");
     exit_status = 0;
-    for (proxy = HYD_handle.pg_list.proxy_list; proxy; proxy = proxy->next) {
+    for (proxy = HYD_server_info.pg_list.proxy_list; proxy; proxy = proxy->next) {
         if (proxy->exit_status == NULL) {
             /* We didn't receive the exit status for this proxy */
             exit_status |= 1;
@@ -410,11 +415,11 @@
         for (exec = proxy->exec_list; exec; exec = exec->next)
             proc_count += exec->proc_count;
         for (i = 0; i < proc_count; i++) {
-            if (HYD_handle.print_all_exitcodes) {
+            if (HYD_ui_mpich_info.print_all_exitcodes) {
                 HYDU_dump_noprefix(stdout, "[%d]",
                                    HYDU_local_to_global_id(i, proxy->start_pid,
                                                            proxy->node.core_count,
-                                                           HYD_handle.global_core_count));
+                                                           HYD_server_info.global_core_count));
                 HYDU_dump_noprefix(stdout, "%d", WEXITSTATUS(proxy->exit_status[i]));
                 if (i < proc_count - 1)
                     HYDU_dump_noprefix(stdout, ",");
@@ -422,7 +427,7 @@
             exit_status |= proxy->exit_status[i];
         }
     }
-    if (HYD_handle.print_all_exitcodes)
+    if (HYD_ui_mpich_info.print_all_exitcodes)
         HYDU_dump_noprefix(stdout, "\n");
 
     /* Call finalize functions for lower layers to cleanup their resources */
@@ -433,11 +438,11 @@
     HYDU_ERR_POP(status, "error finalizing FTB\n");
 
 #if defined ENABLE_PROFILING
-    if (HYD_handle.enable_profiling) {
+    if (HYD_server_info.enable_profiling) {
         HYDU_dump_noprefix(stdout, "\n");
         HYD_DRAW_LINE(80);
         HYDU_dump(stdout, "Number of PMI calls seen by the server: %d\n",
-                  HYD_handle.num_pmi_calls);
+                  HYD_server_info.num_pmi_calls);
         HYD_DRAW_LINE(80);
         HYDU_dump_noprefix(stdout, "\n");
     }

Modified: mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.h
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,8 +7,24 @@
 #ifndef MPIEXEC_H_INCLUDED
 #define MPIEXEC_H_INCLUDED
 
-#include "hydra.h"
+#include "hydra_server.h"
 
+struct HYD_ui_mpich_info {
+    int ppn;
+    int ckpoint_int;
+    int print_rank_map;
+    int print_all_exitcodes;
+    int ranks_per_proc;
+
+    enum HYD_sort_order {
+        NONE = 0,
+        ASCENDING = 1,
+        DESCENDING = 2
+    } sort_order;
+};
+
+extern struct HYD_ui_mpich_info HYD_ui_mpich_info;
+
 HYD_status HYD_uii_mpx_get_parameters(char **t_argv);
 
 extern struct HYD_exec *HYD_uii_mpx_exec_list;

Modified: mpich2/trunk/src/pm/hydra/ui/mpich/utils.c
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/mpich/utils.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/ui/mpich/utils.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,13 +4,24 @@
  *      See COPYRIGHT in top-level directory.
  */
 
+#include "hydra_server.h"
 #include "hydra.h"
-#include "hydra_utils.h"
 #include "mpiexec.h"
+#include "ui.h"
 #include "uiu.h"
 
 static int hostname_propagation = -1;
 
+static void init_ui_mpich_info(void)
+{
+    HYD_ui_mpich_info.ppn = -1;
+    HYD_ui_mpich_info.ckpoint_int = -1;
+    HYD_ui_mpich_info.print_rank_map = -1;
+    HYD_ui_mpich_info.print_all_exitcodes = -1;
+    HYD_ui_mpich_info.ranks_per_proc = -1;
+    HYD_ui_mpich_info.sort_order = NONE;
+}
+
 static HYD_status get_current_exec(struct HYD_exec **exec)
 {
     HYD_status status = HYD_SUCCESS;
@@ -79,7 +90,7 @@
         env_value = HYDU_strdup(str[1]);
     }
 
-    HYDU_append_env_to_list(env_name, env_value, &HYD_handle.user_global.global_env.user);
+    HYDU_append_env_to_list(env_name, env_value, &HYD_server_info.user_global.global_env.user);
 
     if (str[0])
         HYDU_FREE(str[0]);
@@ -112,12 +123,12 @@
     int len;
     HYD_status status = HYD_SUCCESS;
 
-    HYDU_ERR_CHKANDJUMP(status, HYD_handle.user_global.global_env.prop,
+    HYDU_ERR_CHKANDJUMP(status, HYD_server_info.user_global.global_env.prop,
                         HYD_INTERNAL_ERROR, "duplicate environment setting\n");
 
     len = strlen("list:") + strlen(**argv) + 1;
-    HYDU_MALLOC(HYD_handle.user_global.global_env.prop, char *, len, status);
-    HYDU_snprintf(HYD_handle.user_global.global_env.prop, len, "list:%s", **argv);
+    HYDU_MALLOC(HYD_server_info.user_global.global_env.prop, char *, len, status);
+    HYDU_snprintf(HYD_server_info.user_global.global_env.prop, len, "list:%s", **argv);
     (*argv)++;
 
   fn_exit:
@@ -136,7 +147,7 @@
 
 static HYD_status genvnone_fn(char *arg, char ***argv)
 {
-    return HYDU_set_str(arg, argv, &HYD_handle.user_global.global_env.prop, "none");
+    return HYDU_set_str(arg, argv, &HYD_server_info.user_global.global_env.prop, "none");
 }
 
 static void genvall_help_fn(void)
@@ -148,7 +159,7 @@
 
 static HYD_status genvall_fn(char *arg, char ***argv)
 {
-    return HYDU_set_str(arg, argv, &HYD_handle.user_global.global_env.prop, "all");
+    return HYDU_set_str(arg, argv, &HYD_server_info.user_global.global_env.prop, "all");
 }
 
 static void mfile_help_fn(void)
@@ -161,15 +172,16 @@
 {
     HYD_status status = HYD_SUCCESS;
 
-    HYDU_ERR_CHKANDJUMP(status, HYD_handle.node_list, HYD_INTERNAL_ERROR,
+    HYDU_ERR_CHKANDJUMP(status, HYD_server_info.node_list, HYD_INTERNAL_ERROR,
                         "duplicate host file setting\n");
 
     if (strcmp(**argv, "HYDRA_USE_LOCALHOST")) {
-        status = HYDU_parse_hostfile(**argv, &HYD_handle.node_list, HYDU_process_mfile_token);
+        status =
+            HYDU_parse_hostfile(**argv, &HYD_server_info.node_list, HYDU_process_mfile_token);
         HYDU_ERR_POP(status, "error parsing hostfile\n");
     }
     else {
-        status = HYDU_add_to_node_list("localhost", 1, &HYD_handle.node_list);
+        status = HYDU_add_to_node_list("localhost", 1, &HYD_server_info.node_list);
         HYDU_ERR_POP(status, "unable to add to node list\n");
     }
 
@@ -194,7 +206,7 @@
     int count = 0;
     HYD_status status = HYD_SUCCESS;
 
-    HYDU_ERR_CHKANDJUMP(status, HYD_handle.node_list, HYD_INTERNAL_ERROR,
+    HYDU_ERR_CHKANDJUMP(status, HYD_server_info.node_list, HYD_INTERNAL_ERROR,
                         "duplicate host file or host list setting\n");
 
     hostlist[count] = strtok(**argv, ",");
@@ -212,7 +224,7 @@
         procs = strtok(NULL, ":");
         np = procs ? atoi(procs) : 1;
 
-        status = HYDU_add_to_node_list(h, np, &HYD_handle.node_list);
+        status = HYDU_add_to_node_list(h, np, &HYD_server_info.node_list);
         HYDU_ERR_POP(status, "unable to add to node list\n");
     }
 
@@ -233,7 +245,7 @@
 
 static HYD_status ppn_fn(char *arg, char ***argv)
 {
-    return HYDU_set_int_and_incr(arg, argv, &HYD_handle.ppn);
+    return HYDU_set_int_and_incr(arg, argv, &HYD_ui_mpich_info.ppn);
 }
 
 static void profile_help_fn(void)
@@ -250,7 +262,7 @@
     HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "profiling support not compiled in\n");
 #endif /* ENABLE_PROFILING */
 
-    status = HYDU_set_int(arg, argv, &HYD_handle.enable_profiling, 1);
+    status = HYDU_set_int(arg, argv, &HYD_server_info.enable_profiling, 1);
     HYDU_ERR_POP(status, "error enabling profiling\n");
 
   fn_exit:
@@ -268,7 +280,7 @@
 
 static HYD_status prepend_rank_fn(char *arg, char ***argv)
 {
-    return HYDU_set_int(arg, argv, &HYD_handle.user_global.prepend_rank, 1);
+    return HYDU_set_int(arg, argv, &HYD_ui_info.prepend_rank, 1);
 }
 
 static void wdir_help_fn(void)
@@ -549,7 +561,7 @@
     status = HYDU_set_int_and_incr(arg, argv, &exec->proc_count);
     HYDU_ERR_POP(status, "error getting executable process count\n");
 
-    HYD_handle.pg_list.pg_process_count += exec->proc_count;
+    HYD_server_info.pg_list.pg_process_count += exec->proc_count;
 
   fn_exit:
     return status;
@@ -568,7 +580,7 @@
 
 static HYD_status launcher_fn(char *arg, char ***argv)
 {
-    return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.launcher);
+    return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.launcher);
 }
 
 static void launcher_exec_help_fn(void)
@@ -581,7 +593,7 @@
 
 static HYD_status launcher_exec_fn(char *arg, char ***argv)
 {
-    return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.launcher_exec);
+    return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.launcher_exec);
 }
 
 static void enablex_help_fn(void)
@@ -593,7 +605,8 @@
 
 static HYD_status enablex_fn(char *arg, char ***argv)
 {
-    return HYDU_set_int(arg, argv, &HYD_handle.user_global.enablex, !strcmp(arg, "enable-x"));
+    return HYDU_set_int(arg, argv, &HYD_server_info.user_global.enablex,
+                        !strcmp(arg, "enable-x"));
 }
 
 static void rmk_help_fn(void)
@@ -606,7 +619,7 @@
 
 static HYD_status rmk_fn(char *arg, char ***argv)
 {
-    return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.rmk);
+    return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.rmk);
 }
 
 static void ranks_per_proc_help_fn(void)
@@ -617,7 +630,7 @@
 
 static HYD_status ranks_per_proc_fn(char *arg, char ***argv)
 {
-    return HYDU_set_int_and_incr(arg, argv, &HYD_handle.ranks_per_proc);
+    return HYDU_set_int_and_incr(arg, argv, &HYD_ui_mpich_info.ranks_per_proc);
 }
 
 static void binding_help_fn(void)
@@ -647,7 +660,7 @@
 
 static HYD_status binding_fn(char *arg, char ***argv)
 {
-    return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.binding);
+    return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.binding);
 }
 
 static void bindlib_help_fn(void)
@@ -660,7 +673,7 @@
 
 static HYD_status bindlib_fn(char *arg, char ***argv)
 {
-    return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.bindlib);
+    return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.bindlib);
 }
 
 static void ckpoint_interval_help_fn(void)
@@ -671,7 +684,7 @@
 
 static HYD_status ckpoint_interval_fn(char *arg, char ***argv)
 {
-    return HYDU_set_int_and_incr(arg, argv, &HYD_handle.ckpoint_int);
+    return HYDU_set_int_and_incr(arg, argv, &HYD_ui_mpich_info.ckpoint_int);
 }
 
 static void ckpoint_prefix_help_fn(void)
@@ -682,7 +695,7 @@
 
 static HYD_status ckpoint_prefix_fn(char *arg, char ***argv)
 {
-    return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.ckpoint_prefix);
+    return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.ckpoint_prefix);
 }
 
 static void ckpoint_num_help_fn(void)
@@ -693,7 +706,7 @@
 
 static HYD_status ckpoint_num_fn(char *arg, char ***argv)
 {
-    return HYDU_set_int_and_incr(arg, argv, &HYD_handle.user_global.ckpoint_num);
+    return HYDU_set_int_and_incr(arg, argv, &HYD_server_info.user_global.ckpoint_num);
 }
 
 static void ckpointlib_help_fn(void)
@@ -706,7 +719,7 @@
 
 static HYD_status ckpointlib_fn(char *arg, char ***argv)
 {
-    return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.ckpointlib);
+    return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.ckpointlib);
 }
 
 static void demux_help_fn(void)
@@ -719,7 +732,7 @@
 
 static HYD_status demux_fn(char *arg, char ***argv)
 {
-    return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.demux);
+    return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.demux);
 }
 
 static void verbose_help_fn(void)
@@ -730,7 +743,7 @@
 
 static HYD_status verbose_fn(char *arg, char ***argv)
 {
-    return HYDU_set_int(arg, argv, &HYD_handle.user_global.debug, 1);
+    return HYDU_set_int(arg, argv, &HYD_server_info.user_global.debug, 1);
 }
 
 static void info_help_fn(void)
@@ -790,7 +803,7 @@
 
 static HYD_status print_rank_map_fn(char *arg, char ***argv)
 {
-    return HYDU_set_int(arg, argv, &HYD_handle.print_rank_map, 1);
+    return HYDU_set_int(arg, argv, &HYD_ui_mpich_info.print_rank_map, 1);
 }
 
 static void print_all_exitcodes_help_fn(void)
@@ -801,7 +814,7 @@
 
 static HYD_status print_all_exitcodes_fn(char *arg, char ***argv)
 {
-    return HYDU_set_int(arg, argv, &HYD_handle.print_all_exitcodes, 1);
+    return HYDU_set_int(arg, argv, &HYD_ui_mpich_info.print_all_exitcodes, 1);
 }
 
 static void iface_help_fn(void)
@@ -812,7 +825,7 @@
 
 static HYD_status iface_fn(char *arg, char ***argv)
 {
-    return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.iface);
+    return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.iface);
 }
 
 static void nameserver_help_fn(void)
@@ -823,7 +836,7 @@
 
 static HYD_status nameserver_fn(char *arg, char ***argv)
 {
-    return HYDU_set_str_and_incr(arg, argv, &HYD_handle.nameserver);
+    return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.nameserver);
 }
 
 static void auto_cleanup_help_fn(void)
@@ -835,7 +848,7 @@
 
 static HYD_status auto_cleanup_fn(char *arg, char ***argv)
 {
-    return HYDU_set_int(arg, argv, &HYD_handle.user_global.auto_cleanup,
+    return HYDU_set_int(arg, argv, &HYD_server_info.user_global.auto_cleanup,
                         !strcmp(arg, "enable-auto-cleanup"));
 }
 
@@ -865,10 +878,10 @@
 
     if (!strcmp(**argv, "ASCENDING") || !strcmp(**argv, "ascending") ||
         !strcmp(**argv, "UP") || !strcmp(**argv, "up"))
-        HYD_handle.sort_order = ASCENDING;
+        HYD_ui_mpich_info.sort_order = ASCENDING;
     else if (!strcmp(**argv, "DESCENDING") || !strcmp(**argv, "descending") ||
-        !strcmp(**argv, "DOWN") || !strcmp(**argv, "down"))
-        HYD_handle.sort_order = DESCENDING;
+             !strcmp(**argv, "DOWN") || !strcmp(**argv, "down"))
+        HYD_ui_mpich_info.sort_order = DESCENDING;
     else
         HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "unrecognized sort order\n");
 
@@ -971,55 +984,57 @@
 
     /* If exec_list is not NULL, make sure local executable is set */
     for (exec = HYD_uii_mpx_exec_list; exec; exec = exec->next) {
-        if (exec->exec[0] == NULL && HYD_handle.user_global.ckpoint_prefix == NULL)
+        if (exec->exec[0] == NULL && HYD_server_info.user_global.ckpoint_prefix == NULL)
             HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "no executable specified\n");
 
         status = HYDU_correct_wdir(&exec->wdir);
         HYDU_ERR_POP(status, "unable to correct wdir\n");
     }
 
-    if (HYD_handle.print_rank_map == -1)
-        HYD_handle.print_rank_map = 0;
+    if (HYD_ui_mpich_info.print_rank_map == -1)
+        HYD_ui_mpich_info.print_rank_map = 0;
 
-    if (HYD_handle.print_all_exitcodes == -1)
-        HYD_handle.print_all_exitcodes = 0;
+    if (HYD_ui_mpich_info.print_all_exitcodes == -1)
+        HYD_ui_mpich_info.print_all_exitcodes = 0;
 
-    if (HYD_handle.ranks_per_proc == -1)
-        HYD_handle.ranks_per_proc = 1;
+    if (HYD_ui_mpich_info.ranks_per_proc == -1)
+        HYD_ui_mpich_info.ranks_per_proc = 1;
 
-    if (HYD_handle.enable_profiling == -1)
-        HYD_handle.enable_profiling = 0;
+    if (HYD_ui_info.prepend_rank == -1)
+        HYD_ui_info.prepend_rank = 0;
 
-    if (HYD_handle.user_global.prepend_rank == -1)
-        HYD_handle.user_global.prepend_rank = 0;
+    if (HYD_server_info.enable_profiling == -1)
+        HYD_server_info.enable_profiling = 0;
 
-    if (HYD_handle.user_global.debug == -1 &&
-        MPL_env2bool("HYDRA_DEBUG", &HYD_handle.user_global.debug) == 0)
-        HYD_handle.user_global.debug = 0;
+    if (HYD_server_info.user_global.debug == -1 &&
+        MPL_env2bool("HYDRA_DEBUG", &HYD_server_info.user_global.debug) == 0)
+        HYD_server_info.user_global.debug = 0;
 
-    HYD_GET_ENV_STR_VAL(HYD_handle.user_global.iface, "HYDRA_IFACE", NULL);
+    HYD_GET_ENV_STR_VAL(HYD_server_info.user_global.iface, "HYDRA_IFACE", NULL);
 
-    if (HYD_handle.node_list == NULL && MPL_env2str("HYDRA_HOST_FILE", (const char **) &tmp)) {
-        status = HYDU_parse_hostfile(tmp, &HYD_handle.node_list, HYDU_process_mfile_token);
+    if (HYD_server_info.node_list == NULL &&
+        MPL_env2str("HYDRA_HOST_FILE", (const char **) &tmp)) {
+        status =
+            HYDU_parse_hostfile(tmp, &HYD_server_info.node_list, HYDU_process_mfile_token);
         HYDU_ERR_POP(status, "error parsing hostfile\n");
     }
 
     /* Check environment for setting the inherited environment */
-    if (HYD_handle.user_global.global_env.prop == NULL &&
+    if (HYD_server_info.user_global.global_env.prop == NULL &&
         MPL_env2str("HYDRA_ENV", (const char **) &tmp))
-        HYD_handle.user_global.global_env.prop =
+        HYD_server_info.user_global.global_env.prop =
             !strcmp(tmp, "all") ? HYDU_strdup("all") : HYDU_strdup("none");
 
-    if (HYD_handle.user_global.auto_cleanup == -1)
-        HYD_handle.user_global.auto_cleanup = 1;
+    if (HYD_server_info.user_global.auto_cleanup == -1)
+        HYD_server_info.user_global.auto_cleanup = 1;
 
     /* Make sure this is either a restart or there is an executable to
      * launch */
-    if (HYD_uii_mpx_exec_list == NULL && HYD_handle.user_global.ckpoint_prefix == NULL)
+    if (HYD_uii_mpx_exec_list == NULL && HYD_server_info.user_global.ckpoint_prefix == NULL)
         HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "no executable provided\n");
 
     if (hostname_propagation || hostname_propagation == -1)
-        HYD_handle.interface_env_name = HYDU_strdup("MPICH_INTERFACE_HOSTNAME");
+        HYD_server_info.interface_env_name = HYDU_strdup("MPICH_INTERFACE_HOSTNAME");
 
   fn_exit:
     return status;
@@ -1040,6 +1055,7 @@
     HYDU_FUNC_ENTER();
 
     HYD_uiu_init_params();
+    init_ui_mpich_info();
 
     argv++;
     do {
@@ -1077,8 +1093,8 @@
     post = HYDU_strdup(progname);
     loc = strrchr(post, '/');
     if (!loc) { /* If there is no path */
-        HYD_handle.base_path = NULL;
-        status = HYDU_find_in_path(progname, &HYD_handle.base_path);
+        HYD_server_info.base_path = NULL;
+        status = HYDU_find_in_path(progname, &HYD_server_info.base_path);
         HYDU_ERR_POP(status, "error while searching for executable in the user path\n");
     }
     else {      /* There is a path */
@@ -1090,12 +1106,12 @@
             tmp[1] = HYDU_strdup("/");
             tmp[2] = HYDU_strdup(post);
             tmp[3] = NULL;
-            status = HYDU_str_alloc_and_join(tmp, &HYD_handle.base_path);
+            status = HYDU_str_alloc_and_join(tmp, &HYD_server_info.base_path);
             HYDU_ERR_POP(status, "unable to join strings\n");
             HYDU_free_strlist(tmp);
         }
         else {  /* absolute */
-            HYD_handle.base_path = HYDU_strdup(post);
+            HYD_server_info.base_path = HYDU_strdup(post);
         }
     }
     HYDU_FREE(post);
@@ -1105,14 +1121,14 @@
 
     /* If the user set the checkpoint prefix, set env var to enable
      * checkpointing on the processes  */
-    if (HYD_handle.user_global.ckpoint_prefix)
+    if (HYD_server_info.user_global.ckpoint_prefix)
         HYDU_append_env_to_list("MPICH_ENABLE_CKPOINT", "1",
-                                &HYD_handle.user_global.global_env.system);
+                                &HYD_server_info.user_global.global_env.system);
 
     /* Preset common environment options for disabling STDIO buffering
      * in Fortran */
     HYDU_append_env_to_list("GFORTRAN_UNBUFFERED_PRECONNECTED", "y",
-                            &HYD_handle.user_global.global_env.system);
+                            &HYD_server_info.user_global.global_env.system);
 
   fn_exit:
     HYDU_FUNC_EXIT();

Modified: mpich2/trunk/src/pm/hydra/ui/utils/uiu.c
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/utils/uiu.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/ui/utils/uiu.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,77 +4,69 @@
  *      See COPYRIGHT in top-level directory.
  */
 
+#include "hydra_server.h"
 #include "hydra.h"
-#include "hydra_utils.h"
+#include "ui.h"
 #include "uiu.h"
 
 void HYD_uiu_init_params(void)
 {
-    HYDU_init_user_global(&HYD_handle.user_global);
+    HYDU_init_user_global(&HYD_server_info.user_global);
 
-    HYD_handle.ppn = -1;
+    HYD_server_info.base_path = NULL;
 
-    HYD_handle.base_path = NULL;
+    HYD_server_info.port_range = NULL;
+    HYD_server_info.interface_env_name = NULL;
 
-    HYD_handle.port_range = NULL;
-    HYD_handle.interface_env_name = NULL;
+    HYD_server_info.nameserver = NULL;
+    HYD_server_info.local_hostname = NULL;
 
-    HYD_handle.nameserver = NULL;
-    HYD_handle.local_hostname = NULL;
+    HYD_server_info.stdout_cb = NULL;
+    HYD_server_info.stderr_cb = NULL;
 
-    HYD_handle.ckpoint_int = -1;
+    HYD_server_info.node_list = NULL;
+    HYD_server_info.global_core_count = 0;
 
-    HYD_handle.print_rank_map = -1;
-    HYD_handle.print_all_exitcodes = -1;
+    HYDU_init_pg(&HYD_server_info.pg_list, 0);
 
-    HYD_handle.ranks_per_proc = -1;
+    HYD_server_info.pg_list.pgid = 0;
+    HYD_server_info.pg_list.next = NULL;
 
-    HYD_handle.stdout_cb = NULL;
-    HYD_handle.stderr_cb = NULL;
-
-    HYD_handle.node_list = NULL;
-    HYD_handle.global_core_count = 0;
-
-    HYDU_init_pg(&HYD_handle.pg_list, 0);
-
-    HYD_handle.pg_list.pgid = 0;
-    HYD_handle.pg_list.next = NULL;
-
-    HYD_handle.func_depth = 0;
-
 #if defined ENABLE_PROFILING
-    HYD_handle.enable_profiling = -1;
-    HYD_handle.num_pmi_calls = 0;
+    HYD_server_info.enable_profiling = -1;
+    HYD_server_info.num_pmi_calls = 0;
 #endif /* ENABLE_PROFILING */
+
+    HYD_ui_info.prepend_rank = -1;
 }
 
 void HYD_uiu_free_params(void)
 {
-    HYDU_finalize_user_global(&HYD_handle.user_global);
+    HYDU_finalize_user_global(&HYD_server_info.user_global);
 
-    if (HYD_handle.base_path)
-        HYDU_FREE(HYD_handle.base_path);
+    if (HYD_server_info.base_path)
+        HYDU_FREE(HYD_server_info.base_path);
 
-    if (HYD_handle.port_range)
-        HYDU_FREE(HYD_handle.port_range);
+    if (HYD_server_info.port_range)
+        HYDU_FREE(HYD_server_info.port_range);
 
-    if (HYD_handle.interface_env_name)
-        HYDU_FREE(HYD_handle.interface_env_name);
+    if (HYD_server_info.interface_env_name)
+        HYDU_FREE(HYD_server_info.interface_env_name);
 
-    if (HYD_handle.nameserver)
-        HYDU_FREE(HYD_handle.nameserver);
+    if (HYD_server_info.nameserver)
+        HYDU_FREE(HYD_server_info.nameserver);
 
-    if (HYD_handle.local_hostname)
-        HYDU_FREE(HYD_handle.local_hostname);
+    if (HYD_server_info.local_hostname)
+        HYDU_FREE(HYD_server_info.local_hostname);
 
-    if (HYD_handle.node_list)
-        HYDU_free_node_list(HYD_handle.node_list);
+    if (HYD_server_info.node_list)
+        HYDU_free_node_list(HYD_server_info.node_list);
 
-    if (HYD_handle.pg_list.proxy_list)
-        HYDU_free_proxy_list(HYD_handle.pg_list.proxy_list);
+    if (HYD_server_info.pg_list.proxy_list)
+        HYDU_free_proxy_list(HYD_server_info.pg_list.proxy_list);
 
-    if (HYD_handle.pg_list.next)
-        HYDU_free_pg_list(HYD_handle.pg_list.next);
+    if (HYD_server_info.pg_list.next)
+        HYDU_free_pg_list(HYD_server_info.pg_list.next);
 
     /* Re-initialize everything to default values */
     HYD_uiu_init_params();
@@ -95,30 +87,30 @@
     HYDU_dump_noprefix(stdout, "\n");
     HYDU_dump_noprefix(stdout, "mpiexec options:\n");
     HYDU_dump_noprefix(stdout, "----------------\n");
-    HYDU_dump_noprefix(stdout, "  Base path: %s\n", HYD_handle.base_path);
-    HYDU_dump_noprefix(stdout, "  Launcher: %s\n", HYD_handle.user_global.launcher);
-    HYDU_dump_noprefix(stdout, "  Debug level: %d\n", HYD_handle.user_global.debug);
-    HYDU_dump_noprefix(stdout, "  Enable X: %d\n", HYD_handle.user_global.enablex);
+    HYDU_dump_noprefix(stdout, "  Base path: %s\n", HYD_server_info.base_path);
+    HYDU_dump_noprefix(stdout, "  Launcher: %s\n", HYD_server_info.user_global.launcher);
+    HYDU_dump_noprefix(stdout, "  Debug level: %d\n", HYD_server_info.user_global.debug);
+    HYDU_dump_noprefix(stdout, "  Enable X: %d\n", HYD_server_info.user_global.enablex);
 
     HYDU_dump_noprefix(stdout, "\n");
     HYDU_dump_noprefix(stdout, "  Global environment:\n");
     HYDU_dump_noprefix(stdout, "  -------------------\n");
-    for (env = HYD_handle.user_global.global_env.inherited; env; env = env->next)
+    for (env = HYD_server_info.user_global.global_env.inherited; env; env = env->next)
         HYDU_dump_noprefix(stdout, "    %s=%s\n", env->env_name, env->env_value);
 
-    if (HYD_handle.user_global.global_env.system) {
+    if (HYD_server_info.user_global.global_env.system) {
         HYDU_dump_noprefix(stdout, "\n");
         HYDU_dump_noprefix(stdout, "  Hydra internal environment:\n");
         HYDU_dump_noprefix(stdout, "  ---------------------------\n");
-        for (env = HYD_handle.user_global.global_env.system; env; env = env->next)
+        for (env = HYD_server_info.user_global.global_env.system; env; env = env->next)
             HYDU_dump_noprefix(stdout, "    %s=%s\n", env->env_name, env->env_value);
     }
 
-    if (HYD_handle.user_global.global_env.user) {
+    if (HYD_server_info.user_global.global_env.user) {
         HYDU_dump_noprefix(stdout, "\n");
         HYDU_dump_noprefix(stdout, "  User set environment:\n");
         HYDU_dump_noprefix(stdout, "  ---------------------\n");
-        for (env = HYD_handle.user_global.global_env.user; env; env = env->next)
+        for (env = HYD_server_info.user_global.global_env.user; env; env = env->next)
             HYDU_dump_noprefix(stdout, "    %s=%s\n", env->env_name, env->env_value);
     }
 
@@ -127,7 +119,7 @@
     HYDU_dump_noprefix(stdout, "    Proxy information:\n");
     HYDU_dump_noprefix(stdout, "    *********************\n");
     i = 1;
-    for (proxy = HYD_handle.pg_list.proxy_list; proxy; proxy = proxy->next) {
+    for (proxy = HYD_server_info.pg_list.proxy_list; proxy; proxy = proxy->next) {
         HYDU_dump_noprefix(stdout, "      Proxy ID: %2d\n", i++);
         HYDU_dump_noprefix(stdout, "      -----------------\n");
         HYDU_dump_noprefix(stdout, "        Proxy name: %s\n", proxy->node.hostname);
@@ -159,7 +151,7 @@
 
     HYDU_FUNC_ENTER();
 
-    if (HYD_handle.user_global.prepend_rank == 0) {
+    if (HYD_ui_info.prepend_rank == 0) {
         status = HYDU_sock_write(STDOUT_FILENO, buf, buflen, &sent, &closed);
         HYDU_ERR_POP(status, "unable to write data to stdout\n");
         HYDU_ASSERT(!closed, status);
@@ -194,7 +186,7 @@
 
     HYDU_FUNC_ENTER();
 
-    if (HYD_handle.user_global.prepend_rank == 0) {
+    if (HYD_ui_info.prepend_rank == 0) {
         status = HYDU_sock_write(STDERR_FILENO, buf, buflen, &sent, &closed);
         HYDU_ERR_POP(status, "unable to write data to stderr\n");
         HYDU_ASSERT(!closed, status);

Modified: mpich2/trunk/src/pm/hydra/ui/utils/uiu.h
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/utils/uiu.h	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/ui/utils/uiu.h	2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
 #ifndef UIU_H_INCLUDED
 #define UIU_H_INCLUDED
 
-#include "hydra.h"
+#include "hydra_server.h"
 
 void HYD_uiu_init_params(void);
 void HYD_uiu_free_params(void);

Modified: mpich2/trunk/src/pm/hydra/utils/alloc/alloc.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/alloc/alloc.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/alloc/alloc.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 
 void HYDU_init_user_global(struct HYD_user_global *user_global)
 {
@@ -24,7 +24,6 @@
 
     user_global->enablex = -1;
     user_global->debug = -1;
-    user_global->prepend_rank = -1;
 
     user_global->auto_cleanup = -1;
 

Modified: mpich2/trunk/src/pm/hydra/utils/args/args.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/args/args.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/args/args.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 
 static int exists(char *filename)
 {
@@ -302,7 +302,7 @@
 
 HYD_status HYDU_parse_hostfile(char *hostfile, struct HYD_node **node_list,
                                HYD_status(*process_token) (char *token, int newline,
-                                                           struct HYD_node **node_list))
+                                                           struct HYD_node ** node_list))
 {
     char line[HYD_TMP_STRLEN], **tokens;
     FILE *fp;

Modified: mpich2/trunk/src/pm/hydra/utils/dbg/dbg.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/dbg/dbg.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/dbg/dbg.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 
 char *HYD_dbg_prefix = (char *) "unknown";
 

Modified: mpich2/trunk/src/pm/hydra/utils/env/env.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/env/env.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/env/env.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bsci.h"
 
 HYD_status HYDU_env_to_str(struct HYD_env *env, char **str)

Modified: mpich2/trunk/src/pm/hydra/utils/launch/launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/launch/launch.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/launch/launch.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "bind.h"
 
 HYD_status HYDU_create_process(char **client_arg, struct HYD_env *env_list,

Modified: mpich2/trunk/src/pm/hydra/utils/others/others.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/others/others.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/others/others.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 
 int HYDU_local_to_global_id(int local_id, int start_pid, int core_count, int global_core_count)
 {

Modified: mpich2/trunk/src/pm/hydra/utils/signals/signals.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/signals/signals.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/signals/signals.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 
 HYD_status HYDU_set_signal(int signum, void (*handler) (int))
 {

Modified: mpich2/trunk/src/pm/hydra/utils/sock/sock.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/sock/sock.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/sock/sock.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 #include "demux.h"
 
 struct fwd_hash {

Modified: mpich2/trunk/src/pm/hydra/utils/string/string.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/string/string.c	2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/string/string.c	2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "hydra_utils.h"
+#include "hydra.h"
 
 HYD_status HYDU_list_append_strlist(char **src_strlist, char **dest_strlist)
 {



More information about the mpich2-commits mailing list