SIONlib  2.0.0-rc.1
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-2018 **
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 */
43 #define SION_MAIN_VERSION 2
44 #define SION_SUB_VERSION 0
45 #define SION_VERSION_PATCHLEVEL 0
46 
47 /* file format version history:
48  3 -> startpointer are calculated by chunksize
49  and fsblksize, --> alignment
50  4 -> chunksize will be expanded for aligning
51  up to sionlib version 1.4
52  5 -> able to store key value data
53  6 -> remove metadata block at end of file */
54 #define SION_FILEFORMAT_VERSION 6
55 
56 #ifndef SVN_REV
57 /* include Makefile.svnrev in Makefile and add
58  CFLAGS += -DSVN_REV='"$(SVN_REV)"'
59  to enable SVN_REV */
60 #define SVN_REV "Unknown"
61 #endif
62 #define SION_SVN_VERSION SVN_REV
63 
64 #define SION_LVERSION_PREFIX ""
65 
66 /* SION constants */
68 #define SION_CURRENT_RANK -101
69 
70 #define SION_CURRENT_BLK -102
71 
72 #define SION_CURRENT_CHUNK -102
73 
74 #define SION_CURRENT_BLOCK -102
75 
76 #define SION_CURRENT_POS -103
77 
78 #define SION_ABSOLUTE_POS -104
79 
80 #define SION_END_POS -105
81 
82 /* for sion_dup */
84 #define SION_DUP_ALL -201
85 
86 #define SION_DUP_RANK -202
87 
88 #define SION_DUP_RANK_KEY -203
89 
90 /* for key value */
92 #define SION_KEYVAL_NONE 50
93 
94 #define SION_KEYVAL_INLINE 51
95 
96 #define SION_KEYVAL_META 52
97 
98 #define SION_KEYVAL_HASH 53
99 
100 #define SION_KEYVAL_UNKNOWN 54
101 
102 #define SION_KEYVAL_NOTSET 55
103 
104 /* for callback routines of generic interface */
106 #define _SION_INT32 10
107 
108 #define _SION_INT64 11
109 
110 #define _SION_CHAR 12
111 
112 /* role of task, for sion_get_io_info */
113 #define SION_ROLE_NONE 0
114 #define SION_ROLE_COLLECTOR 1
115 #define SION_ROLE_SENDER 2
116 #define SION_ROLE_WRITER 4
117 #define SION_ROLE_NOWRITER 8
118 #define SION_ROLE_READER 16
119 #define SION_ROLE_NOREADER 32
120 #define SION_ROLE_COLLECTOR_READER 64
121 
122 /* flag for for sion_get_io_info_spec */
123 #define SION_GET_IO_INFO_FLAG_NONE 0
124 
125 #endif
126 
129 /* clang-format on */
130 /* *INDENT-ON* */