SIONlib  2.0.0-rc.2
Scalable I/O library for parallel access to task-local files
sion_const.h
1 /****************************************************************************
2 ** SIONLIB http://www.fz-juelich.de/jsc/sionlib **
3 *****************************************************************************
4 ** Copyright (c) 2008-2019 **
5 ** Forschungszentrum Juelich, Juelich Supercomputing Centre **
6 ** **
7 ** See the file COPYRIGHT in the package base directory for details **
8 ****************************************************************************/
9 
10 /* *INDENT-OFF* */
11 /* clang-format off */
12 
18 #ifndef SION_SION_CONST_H
19 #define SION_SION_CONST_H
20 
21 /* return codes for functions signaling success */
22 #define SION_SUCCESS 1
23 #define SION_NOT_SUCCESS 0
24 
25 /* return codes for functions signaling success (used in for callback functions) */
26 #define SION_STD_SUCCESS 0
27 #define SION_STD_NOT_SUCCESS 1
28 
29 /* return codes for functions returning identifier (sid) */
30 #define SION_SMALLEST_VALID_ID 0
31 #define SION_ID_UNDEF -1
32 #define SION_ID_NOT_VALID -1
33 #define SION_UNKNOWN -1
34 #define SION_AUTOMATIC -1
35 
36 /* return codes for functions returning size information */
37 #define SION_SIZE_NOT_VALID -1
38 
39 /* return codes for functions wrapping fwrite/fread */
40 #define SION_ANSI_SIZE_NOT_VALID 0
41 
42 /* SION version information */
44 #define SION_VERSION_MAJOR 2
45 #define SION_VERSION_MINOR 0
47 #define SION_VERSION_PATCH 0
49 #define SION_MAIN_VERSION SION_VERSION_MAJOR
51 #define SION_SUB_VERSION SION_VERSION_MINOR
53 #define SION_VERSION_PATCHLEVEL SION_VERSION_PATCH
55 
56 /* file format version history:
57  3 -> startpointer are calculated by chunksize
58  and fsblksize, --> alignment
59  4 -> chunksize will be expanded for aligning
60  up to sionlib version 1.4
61  5 -> able to store key value data
62  6 -> remove metadata block at end of file */
63 #define SION_FILEFORMAT_VERSION 6
64 
65 #ifndef SVN_REV
66 /* include Makefile.svnrev in Makefile and add
67  CFLAGS += -DSVN_REV='"$(SVN_REV)"'
68  to enable SVN_REV */
69 #define SVN_REV "Unknown"
70 #endif
71 #define SION_SVN_VERSION SVN_REV
72 
73 #define SION_LVERSION_PREFIX ""
74 
75 /* SION constants */
77 #define SION_CURRENT_RANK -101
78 
79 #define SION_CURRENT_BLK -102
80 
81 #define SION_CURRENT_CHUNK -102
82 
83 #define SION_CURRENT_BLOCK -102
84 
85 #define SION_CURRENT_POS -103
86 
87 #define SION_ABSOLUTE_POS -104
88 
89 #define SION_END_POS -105
90 
91 /* for sion_dup */
93 #define SION_DUP_ALL -201
94 
95 #define SION_DUP_RANK -202
96 
97 #define SION_DUP_RANK_KEY -203
98 
99 /* for key value */
101 #define SION_KEYVAL_NONE 50
102 
103 #define SION_KEYVAL_INLINE 51
104 
105 #define SION_KEYVAL_META 52
106 
107 #define SION_KEYVAL_HASH 53
108 
109 #define SION_KEYVAL_UNKNOWN 54
110 
111 #define SION_KEYVAL_NOTSET 55
112 
113 /* for callback routines of generic interface */
115 #define _SION_INT32 10
116 
117 #define _SION_INT64 11
118 
119 #define _SION_CHAR 12
120 
121 /* role of task, for sion_get_io_info */
122 #define SION_ROLE_NONE 0
123 #define SION_ROLE_COLLECTOR 1
124 #define SION_ROLE_SENDER 2
125 #define SION_ROLE_WRITER 4
126 #define SION_ROLE_NOWRITER 8
127 #define SION_ROLE_READER 16
128 #define SION_ROLE_NOREADER 32
129 #define SION_ROLE_COLLECTOR_READER 64
130 
131 /* flag for for sion_get_io_info_spec */
132 #define SION_GET_IO_INFO_FLAG_NONE 0
133 
134 #endif
135 
138 /* clang-format on */
139 /* *INDENT-ON* */