SIONlib  1.7.0
Scalable I/O library for parallel access to task-local files
sion_generic_apidesc.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** SIONLIB http://www.fz-juelich.de/jsc/sionlib **
3 *****************************************************************************
4 ** Copyright (c) 2008-2016 **
5 ** Forschungszentrum Juelich, Juelich Supercomputing Centre **
6 ** **
7 ** See the file COPYRIGHT in the package base directory for details **
8 ****************************************************************************/
9 
14 #ifndef SION_SION_GENERIC_APIDESC
15 #define SION_SION_GENERIC_APIDESC
16 
17 #define SION_GENERIC_API_LEVEL_NONE 70
18 #define SION_GENERIC_API_LEVEL_STD 71
19 #define SION_GENERIC_API_LEVEL_FULL 72
20 
21 /* container describing API generated by the generic API */
23  int aid;
24  char *name;
25  int level;
26 
27  /* STD callbacks */
28  int (*create_lcg_cb)(void **, void *, int, int, int, int, int, int);
29  int (*free_lcg_cb)(void *);
30 
31  int (*barrier_cb)(void *);
32  int (*bcastr_cb)(void *,void *, int,int,int);
33  int (*gatherr_cb)(void *,void *,void *,int,int,int);
34  int (*gathervr_cb)(void *,void *,void *,int, int *, int, int);
35  int (*scatterr_cb)(void *,void *,void *,int, int, int);
36  int (*scattervr_cb)(void *,void *,void *,int, int *, int, int);
37  char *(*get_multi_filename_cb)(const char *,int);
38 
39  /* callbacks for coalescing */
40  int (*gather_execute_cb)(const void *, sion_int64*, int, sion_int64,
41  void *, int, int, int, int,
42  int process_cb(const void *,sion_int64 *, int));
43  int (*execute_scatter_cb)(void *, sion_int64*, int, sion_int64,
44  void *, int, int, int, int,
45  int process_cb(void *,sion_int64 *, int));
46  int (*get_capability_cb)(void *);
47 
48 };
50 
54 
55 
56 /* container describing additional data needed for each SION file opened with an API generated by the generic API */
58  _sion_generic_apidesc* apidesc;
59  int aid;
60  int grank;
61  int gsize;
62  int lrank;
63  int lsize;
64  int filenumber;
65  int numfiles;
66  void *comm_data_global;
67  void *comm_data_local;
68 };
70 
74 
76 
77 #endif
int _sion_generic_free_gendata(_sion_generic_gendata *sion_gendata)
Free sion gendata description.
int _sion_generic_init_gendata(_sion_generic_gendata *sion_gendata)
Initialize the sion file description.
int _sion_generic_free_apidesc(_sion_generic_apidesc *sion_apidesc)
free apidesc structure
_sion_generic_gendata * _sion_generic_alloc_gendata()
Allocates memory for internal sion api data structure needed for each SION file.
int _sion_generic_update_api_level(_sion_generic_apidesc *sion_gendata)
Update API level.
_sion_generic_apidesc * _sion_generic_alloc_apidesc()
Allocates memory for internal sion api desc structure.
int _sion_generic_init_apidesc(_sion_generic_apidesc *sion_apidesc)
Initialize the sion api description.