This file is indexed.

/usr/include/lam/lam-ssi-cr.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
/*
 * 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-cr.h,v 1.8 2004/03/06 21:17:31 jsquyres Exp $
 *
 * Function:	- SSI CR header file.
 */

#ifndef LAM_SSI_CR_H
#define LAM_SSI_CR_H

#include <lam_config.h>

#include <mpi.h>
#include <app_mgmt.h>
#include <all_list.h>
#include <lam-ssi.h>


/**************************************************************************
 * Common to crlam and crmpi
 **************************************************************************/

/*
 * Global variables
 */
extern int lam_ssi_cr_verbose;
extern int lam_ssi_cr_did;


/**************************************************************************
 * Specific to crlam
 **************************************************************************/

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

#if defined(c_plusplus) || defined(__cplusplus)
extern "C" {
#endif
  int lam_ssi_crlam_base_checkpoint(struct _gps *, int);
  int lam_ssi_crlam_base_close(void);
  int lam_ssi_crlam_base_continue(void);
  int lam_ssi_crlam_base_create_restart_argv(char **, OPT *);
  int lam_ssi_crlam_base_open(OPT *, char *);
  int lam_ssi_crlam_base_restart(char *, char *);
  int lam_ssi_crlam_base_do_exec(char *, char *);
#if defined(c_plusplus) || defined(__cplusplus)
}
#endif


/*
 * Types for each function
 */

typedef int (*lam_ssi_crlam_checkpoint_fn_t)(void);
typedef int (*lam_ssi_crlam_continue_fn_t)(void);
typedef void (*lam_ssi_crlam_disable_checkpoint_fn_t)(void);
typedef void (*lam_ssi_crlam_enable_checkpoint_fn_t)(void);
typedef int (*lam_ssi_crlam_finalize_fn_t)(void);
typedef int (*lam_ssi_crlam_init_fn_t)(char *, char **, OPT *, 
                                       struct _gps *, int);
typedef int (*lam_ssi_crlam_restart_fn_t)(char *, char *);

typedef int (*lam_ssi_crlam_lamcheckpoint_fn_t)(pid_t);
typedef int (*lam_ssi_crlam_lamrestart_fn_t)(char *);

typedef const struct lam_ssi_crlam_actions_1_1_0 * 
  (*lam_ssi_crlam_query_fn_t)(int *);


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

typedef struct lam_ssi_crlam_1_1_0 {
  lam_ssi_1_0_0_t lscrl_meta_info;

  /* CRLAM API function pointers */

  lam_ssi_crlam_query_fn_t lscrl_query;

} lam_ssi_crlam_1_1_0_t;


typedef struct lam_ssi_crlam_actions_1_1_0 {

  /* CRLAM API functions pointers */

  lam_ssi_crlam_checkpoint_fn_t lscrla_checkpoint;
  lam_ssi_crlam_continue_fn_t lscrla_continue;
  lam_ssi_crlam_disable_checkpoint_fn_t lscrla_disable_checkpoint;
  lam_ssi_crlam_enable_checkpoint_fn_t lscrla_enable_checkpoint;
  lam_ssi_crlam_finalize_fn_t lscrla_finalize;
  lam_ssi_crlam_init_fn_t lscrla_init;
  lam_ssi_crlam_restart_fn_t lscrla_restart;

  /* To be invoked by lamcheckpoint and lamrestart, respectively */

  lam_ssi_crlam_lamcheckpoint_fn_t lscrla_lamcheckpoint;
  lam_ssi_crlam_lamrestart_fn_t lscrla_lamrestart;
} lam_ssi_crlam_actions_1_1_0_t;

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

typedef lam_ssi_crlam_1_1_0_t lam_ssi_crlam_t;
typedef lam_ssi_crlam_actions_1_1_0_t lam_ssi_crlam_actions_t;


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

extern const lam_ssi_t **lam_ssi_crlam_modules;


/*
 * Global variables
 */
extern lam_ssi_crlam_actions_t lam_ssi_crlam;
extern lam_ssi_crlam_t lam_ssi_crlam_base_module;


/**************************************************************************
 * Specific to crmpi
 **************************************************************************/

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

#if defined(c_plusplus) || defined(__cplusplus)
extern "C" {
#endif
  void lam_ssi_crmpi_base_app_suspend(void);
  int lam_ssi_crmpi_base_checkpoint(void);
  int lam_ssi_crmpi_base_close(void);
  int lam_ssi_crmpi_base_continue(void);
  void lam_ssi_crmpi_base_finalize_lock(void);
  void lam_ssi_crmpi_base_init_lock(void);
  int lam_ssi_crmpi_base_lock_mpi(void);
  int lam_ssi_crmpi_base_open(OPT *args);
  int lam_ssi_crmpi_base_query(void);                               
  int lam_ssi_crmpi_base_release_mpi(void);
  int lam_ssi_crmpi_base_restart(void);
#if defined(c_plusplus) || defined(__cplusplus)
}
#endif

/*
 * Types for each function
 */

typedef int (*lam_ssi_crmpi_finalize_fn_t)(void);

typedef const struct lam_ssi_crmpi_actions_1_0_0 * 
  (*lam_ssi_crmpi_init_fn_t)(void);
	
typedef void (*lam_ssi_crmpi_app_suspend_fn_t)(void);
typedef int (*lam_ssi_crmpi_query_fn_t)(int *priority, 
                                        int *thread_min, int *thread_max);


/*
 * Struct used to pass CRMPI SSI information from the each SSI instance
 * back to the SSI glue.
 */
typedef struct lam_ssi_crmpi_1_0_0 {
  lam_ssi_1_0_0_t lscrm_meta_info;

  /* CRMPI API function pointers */

  lam_ssi_crmpi_query_fn_t lscrm_query;
  lam_ssi_crmpi_init_fn_t lscrm_init;
} lam_ssi_crmpi_1_0_0_t;


typedef struct lam_ssi_crmpi_actions_1_0_0 {

  /* CRMPI API functions pointers */

  lam_ssi_crmpi_finalize_fn_t lscrma_finalize;
  lam_ssi_crmpi_app_suspend_fn_t lscrma_app_suspend;

} lam_ssi_crmpi_actions_1_0_0_t;
  
/*
 * Set the default type to use version 1.0.0 of the SSI CRMPI struct 
 */

typedef lam_ssi_crmpi_1_0_0_t lam_ssi_crmpi_t;
typedef lam_ssi_crmpi_actions_1_0_0_t lam_ssi_crmpi_actions_t;


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

extern const lam_ssi_t **lam_ssi_crmpi_modules;


/*
 * Global variables
 */
typedef enum {
  LAM_SSI_CRMPI_BASE_HANDLER_STATE_IDLE,
  LAM_SSI_CRMPI_BASE_HANDLER_STATE_WAITING,
  LAM_SSI_CRMPI_BASE_HANDLER_STATE_RUNNING,

  LAM_SSI_CRMPI_BASE_STATE_MAX
} lam_ssi_crmpi_base_handler_state_t; 
extern volatile lam_ssi_crmpi_base_handler_state_t
                lam_ssi_crmpi_base_handler_state; 

extern lam_ssi_crmpi_actions_t lam_ssi_crmpi;
extern lam_ssi_crmpi_t lam_ssi_crmpi_base_module;
extern LIST *lam_ssi_crmpi_base_opened;
extern LIST *lam_ssi_crmpi_base_available;


#endif /* LAM_SSI_CR_H */