This file is indexed.

/usr/include/lam/lam-ssi-boot.h is in lam4-dev 7.1.4-3.1build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
/*
 * Copyright (c) 2001-2004 The Trustees of Indiana University.  
 *                         All rights reserved.
 * Copyright (c) 1998-2001 University of Notre Dame. 
 *                         All rights reserved.
 * Copyright (c) 1994-1998 The Ohio State University.  
 *                         All rights reserved.
 * 
 * This file is part of the LAM/MPI software package.  For license
 * information, see the LICENSE file in the top level directory of the
 * LAM/MPI source distribution.
 * 
 * $HEADER$
 *
 * $Id: lam-ssi-boot.h,v 1.8 2004/03/06 21:17:31 jsquyres Exp $
 *
 * Interface for the boot module for the LAM/MPI SSI project.
 */

#ifndef LAM_SSI_BOOT_H
#define LAM_SSI_BOOT_H


#include <lam_config.h>

#include <lam-ssi.h>
#include <lamnet.h>
#include <all_opt.h>
#include <all_list.h>


/*
 * Global functions for SSI overall boot open and close
 */

typedef enum {
  LAM_SSI_BOOT_LOCATION_ROOT,
  LAM_SSI_BOOT_LOCATION_INTERIOR,
  LAM_SSI_BOOT_LOCATION_LEAF,

  LAM_SSI_BOOT_LOCATION_MAX
} lam_ssi_boot_location_t;


#if defined(c_plusplus) || defined(__cplusplus)
extern "C" {
#endif
  int lam_ssi_boot_open(OPT *aod);
  int lam_ssi_boot_select(lam_ssi_boot_location_t where);
  int lam_ssi_boot_close(void);
#if defined(c_plusplus) || defined(__cplusplus)
}
#endif


/***********************************************************************
 *
 * Initialization / finalization
 *
 * Setup the module and decide if it will run or not.
 *
 **********************************************************************/

typedef const struct lam_ssi_boot_actions_1_1_0 *
  (*lam_ssi_boot_init_fn_t)(lam_ssi_boot_location_t where, int *priority);
typedef int (*lam_ssi_boot_finalize_fn_t)(void);


/***********************************************************************
 *
 * User interface
 *
 * What lamboot and others call directly.  See the SSI boot docs for
 * descriptions of these functions.
 *
 **********************************************************************/

typedef enum {
  LAM_SSI_BOOT_PROC_LAMD,
  LAM_SSI_BOOT_PROC_RECON,
  LAM_SSI_BOOT_PROC_WIPE,

  LAM_SSI_BOOT_PROC_MAX
} lam_ssi_boot_proc_t;

typedef int (*lam_ssi_boot_parse_options_fn_t)(OPT *aod, int boot_schema_args);
typedef int (*lam_ssi_boot_allocate_nodes_fn_t)
     (struct lamnode **nodes, int *nnodes, int *origin);
typedef int (*lam_ssi_boot_verify_nodes_fn_t)
     (struct lamnode *nodes, int nnodes);
typedef int (*lam_ssi_boot_prepare_boot_fn_t)(void);
typedef int (*lam_ssi_boot_start_rte_procs_fn_t)
     (struct lamnode *nodes, int nnodes, lam_ssi_boot_proc_t which,
      int *num_started);
typedef int (*lam_ssi_boot_deallocate_nodes_fn_t)
     (struct lamnode **nodes, int *nnodes);


/***********************************************************************
 *
 * Internal interface
 *
 * Things that should never be called outside of the boot SSI modules.
 * These functions are mainly used by the booting algorithms.
 *
 **********************************************************************/

typedef int (*lam_ssi_boot_start_application_fn_t)
     (char ***argv, int *argc, int num_procs, struct lamnode *node);
typedef int (*lam_ssi_boot_start_rte_proc_fn_t)
     (struct lamnode *node, lam_ssi_boot_proc_t which);


/***********************************************************************
 *
 * Startup protocol interface
 *
 * Mainly for starting lamds.  Send information about the
 * newly-started lamd, and receive information about the universe.
 *
 **********************************************************************/

typedef int (*lam_ssi_boot_get_nodeid_fn_t)(OPT *aod);
typedef int (*lam_ssi_boot_open_srv_connection_fn_t)
     (struct lamnode *nodes, int nnodes);
typedef int (*lam_ssi_boot_send_lamd_info_fn_t)(OPT *aod, int dli_port);
typedef int (*lam_ssi_boot_receive_lamd_info_fn_t)
     (struct lamnode *nodes, int nnodes);
typedef int (*lam_ssi_boot_close_srv_connection_fn_t)(void);
typedef int (*lam_ssi_boot_send_universe_info_fn_t)
     (struct lamnode *nodes, int nnodes, int which);
typedef int (*lam_ssi_boot_receive_universe_info_t)
     (struct lamnode **universe, int *universe_size);

/***********************************************************************
 *
 * End of API function typedefs
 *
 **********************************************************************/


/*
 * Algorithm functions provided to all boot SSI modules
 */

typedef int (*lam_ssi_boot_alg_fn_t)
     (struct lamnode *nodes, int nnodes, int want_startup_protocol,
      lam_ssi_boot_proc_t which, int *num_started);

int lam_ssi_boot_base_alg_linear(struct lamnode *nodes, int nnodes, 
				 int want_startup_protocol,
				 lam_ssi_boot_proc_t which,
				 int *num_started);
int lam_ssi_boot_base_alg_linear_windowed(struct lamnode *nodes, int nnodes, 
                                          int want_startup_protocol,
                                          lam_ssi_boot_proc_t which,
                                          int *num_started);
int lam_ssi_boot_base_alg_thread(struct lamnode *nodes, int nnodes, 
				 int want_startup_protocol,
				 lam_ssi_boot_proc_t which,
				 int *num_started);
int lam_ssi_boot_base_alg_tree(struct lamnode *nodes, int nnodes, 
			       int want_startup_protocol,
			       lam_ssi_boot_proc_t which,
			       int *num_started);


/* 
 * Startup protocol functions based on TCP sockets; any boot SSI
 * module can use these
 */

int lam_ssi_boot_base_get_nodeid(OPT *aod);
int lam_ssi_boot_base_open_srv_connection(struct lamnode *nodes, int nnodes);
int lam_ssi_boot_base_send_lamd_info(OPT *aod, int dli_port);
int lam_ssi_boot_base_send_lamd_info_args(OPT *aod,
                                          unsigned char agent_haddr[4],
                                          int agent_port, int node_id, 
                                          int dli_port, int num_cpus);
int lam_ssi_boot_base_receive_lamd_info(struct lamnode *nodes, int nnodes);
int lam_ssi_boot_base_close_srv_connection(void);

int lam_ssi_boot_base_send_universe_info(struct lamnode *nodes,
					 int nnodes, int which);
int lam_ssi_boot_base_receive_universe_info(struct lamnode **universe,
					    int *universe_size);


/*
 * Utiltity functions for use in boot SSI modules
 */

int lam_ssi_boot_base_append_path(char *prefix, char *dir, char *fname,
				  int *argcnt, char ***arglist);

char *lam_ssi_boot_base_find_boot_schema(OPT *aod);
char *lam_ssi_boot_base_find_hostname(OPT *aod);
char *lam_ssi_boot_base_find_prefix(LIST *keyval);
char *lam_ssi_boot_build_inet_topo(struct lamnode *dest_node, 
				   struct lamnode origin_node,
				   int origin);
int lam_ssi_boot_do_common_args(OPT *aod, int *argc, char ***argv);
int lam_ssi_boot_base_check_priority(char *module_name, int base, 
				     int want_default, int *priority);
int lam_ssi_boot_base_ioexecvp(char **cmdv, int showout, char *outbuff,
			       int outbuffsize, int stderr_is_err);
char *lam_ssi_boot_base_lamgrow(char *hostname, struct lamnode **nodes,
                                int *nnodes, int *origin);


/*
 * Struct used to pass boot SSI information from the each SSI instance
 * back to the SSI glue.
 */

typedef struct lam_ssi_boot_1_1_0 {
  lam_ssi_1_0_0_t lsb_meta_info;

  /* Initialize / finalize functions */

  lam_ssi_boot_init_fn_t lsb_init;
  lam_ssi_boot_finalize_fn_t lsb_finalize;
} lam_ssi_boot_1_1_0_t;


typedef struct lam_ssi_boot_actions_1_1_0 {

  /* Boot API function pointers */

  lam_ssi_boot_parse_options_fn_t lsba_parse_options;
  lam_ssi_boot_allocate_nodes_fn_t lsba_allocate_nodes;
  lam_ssi_boot_verify_nodes_fn_t lsba_verify_nodes;
  lam_ssi_boot_prepare_boot_fn_t lsba_prepare_boot;
  lam_ssi_boot_start_rte_procs_fn_t lsba_start_rte_procs;
  lam_ssi_boot_deallocate_nodes_fn_t lsba_deallocate_nodes;

  lam_ssi_boot_start_application_fn_t lsba_start_application;
  lam_ssi_boot_start_rte_proc_fn_t lsba_start_rte_proc;

  lam_ssi_boot_get_nodeid_fn_t lsba_get_nodeid;
  lam_ssi_boot_open_srv_connection_fn_t lsba_open_srv_connection;
  lam_ssi_boot_send_lamd_info_fn_t lsba_send_lamd_info;
  lam_ssi_boot_receive_lamd_info_fn_t lsba_receive_lamd_info;
  lam_ssi_boot_close_srv_connection_fn_t lsba_close_srv_connection;

  lam_ssi_boot_send_universe_info_fn_t lsba_send_universe_info;
  lam_ssi_boot_receive_universe_info_t lsba_receive_universe_info;

} lam_ssi_boot_actions_1_1_0_t;


/*
 * Set the default type to use version 1.1.0 of the SSI boot struct 
 */

typedef lam_ssi_boot_1_1_0_t lam_ssi_boot_t;
typedef lam_ssi_boot_actions_1_1_0_t lam_ssi_boot_actions_t;


/*
 * Global variables
 */

extern int lam_ssi_boot_verbose;
extern int lam_ssi_boot_did;
extern int lam_ssi_boot_base_server_port;
extern lam_ssi_boot_actions_t lam_ssi_boot;
extern lam_ssi_boot_t lam_ssi_boot_base_module;
extern LIST *lam_ssi_boot_base_opened;
extern OPT *lam_ssi_boot_optd;
extern int lam_ssi_boot_base_param_promisc;
extern int lam_ssi_boot_base_param_window_size;


/*
 * Global instance of array of pointers to lam_ssi_boot_t.  Will
 * effectively be filled in by configure.
 */

extern const lam_ssi_t **lam_ssi_boot_modules;


#endif /* #ifndef LAM_SSI_BOOT_H */