summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src/globals.h
blob: 4fbe22b2c282d5e73ee5b661f0cf4570d5ae62f1 (plain)
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
/*
  Copyright (c) 2008-2012 Red Hat, Inc. <http://www.redhat.com>
  This file is part of GlusterFS.

  This file is licensed to you under your choice of the GNU Lesser
  General Public License, version 3 or any later version (LGPLv3 or
  later), or the GNU General Public License, version 2 (GPLv2), in all
  cases as published by the Free Software Foundation.
*/

#ifndef _GLOBALS_H
#define _GLOBALS_H

#define GF_DEFAULT_BASE_PORT 24007
#define GF_DEFAULT_VOLFILE_TRANSPORT "tcp"

#define GF_GLOBAL_XLATOR_NAME "global"
#define GD_OP_VERSION_KEY "operating-version"
#define GD_MIN_OP_VERSION_KEY "minimum-operating-version"
#define GD_MAX_OP_VERSION_KEY "maximum-operating-version"

#define GF_PROTECT_FROM_EXTERNAL_WRITES "trusted.glusterfs.protect.writes"
#define GF_AVOID_OVERWRITE "glusterfs.avoid.overwrite"
#define GF_CLEAN_WRITE_PROTECTION "glusterfs.clean.writexattr"

/* Gluster versions - OP-VERSION mapping
 *
 * 3.3.x                - 1
 * 3.4.x                - 2
 * 3.5.0                - 3
 * 3.5.1                - 30501
 * 3.6.0                - 30600
 * 3.7.0                - 30700
 * 3.7.1                - 30701
 * 3.7.2                - 30702
 *
 * Starting with Gluster v3.6, the op-version will be multi-digit integer values
 * based on the Glusterfs version, instead of a simply incrementing integer
 * value. The op-version for a given X.Y.Z release will be an integer XYZ, with
 * Y and Z 2 digit always 2 digits wide and padded with 0 when needed. This
 * should allow for some gaps between two Y releases for backports of features
 * in Z releases.
 */
#define GD_OP_VERSION_MIN                                                      \
    1 /* MIN is the fresh start op-version, mostly                             \
         should not change */
#define GD_OP_VERSION_MAX                                                      \
    GD_OP_VERSION_6_0 /* MAX VERSION is the maximum                            \
                         count in VME table, should                            \
                         keep changing with                                    \
                         introduction of newer                                 \
                         versions */

#define GD_OP_VERSION_3_6_0 30600 /* Op-Version for GlusterFS 3.6.0 */

#define GD_OP_VERSION_3_7_0 30700 /* Op-version for GlusterFS 3.7.0 */

#define GD_OP_VERSION_3_7_1 30701 /* Op-version for GlusterFS 3.7.1 */

#define GD_OP_VERSION_3_7_2 30702 /* Op-version for GlusterFS 3.7.2 */

#define GD_OP_VERSION_3_7_3 30703 /* Op-version for GlusterFS 3.7.3 */

#define GD_OP_VERSION_3_7_4 30704 /* Op-version for GlusterFS 3.7.4 */

#define GD_OP_VERSION_3_7_5 30705 /* Op-version for GlusterFS 3.7.5 */

#define GD_OP_VERSION_3_7_6 30706 /* Op-version for GlusterFS 3.7.6 */

#define GD_OP_VERSION_3_7_7 30707 /* Op-version for GlusterFS 3.7.7 */

#define GD_OP_VERSION_3_7_10 30710 /* Op-version for GlusterFS 3.7.10 */

#define GD_OP_VERSION_3_7_12 30712 /* Op-version for GlusterFS 3.7.12 */

#define GD_OP_VERSION_3_8_0 30800 /* Op-version for GlusterFS 3.8.0 */

#define GD_OP_VERSION_3_8_3 30803 /* Op-version for GlusterFS 3.8.3 */

#define GD_OP_VERSION_3_8_4 30804 /* Op-version for GlusterFS 3.8.4 */

#define GD_OP_VERSION_3_9_0 30900 /* Op-version for GlusterFS 3.9.0 */

#define GD_OP_VERSION_3_9_1 30901 /* Op-version for GlusterFS 3.9.1 */

#define GD_OP_VERSION_3_10_0 31000 /* Op-version for GlusterFS 3.10.0 */

#define GD_OP_VERSION_3_10_1 31001 /* Op-version for GlusterFS 3.10.1 */

#define GD_OP_VERSION_3_10_2 31002 /* Op-version for GlusterFS 3.10.2 */

#define GD_OP_VERSION_3_11_0 31100 /* Op-version for GlusterFS 3.11.0 */

#define GD_OP_VERSION_3_11_1 31101 /* Op-version for GlusterFS 3.11.1 */

#define GD_OP_VERSION_3_12_0 31200 /* Op-version for GlusterFS 3.12.0 */

#define GD_OP_VERSION_3_12_2 31202 /* Op-version for GlusterFS 3.12.2 */

#define GD_OP_VERSION_3_12_3 31203 /* Op-version for GlusterFS 3.12.3 */

#define GD_OP_VERSION_3_13_0 31300 /* Op-version for GlusterFS 3.13.0 */

#define GD_OP_VERSION_3_13_1 31301 /* Op-version for GlusterFS 3.13.1 */

#define GD_OP_VERSION_3_13_2 31302 /* Op-version for GlusterFS 3.13.2 */

#define GD_OP_VERSION_4_0_0 40000 /* Op-version for GlusterFS 4.0.0 */

#define GD_OP_VERSION_4_1_0 40100 /* Op-version for GlusterFS 4.1.0 */

#define GD_OP_VERSION_5_0 50000 /* Op-version for GlusterFS 5.0 */

#define GD_OP_VERSION_6_0 60000 /* Op-version for GlusterFS 6.0 */

#define GD_OP_VER_PERSISTENT_AFR_XATTRS GD_OP_VERSION_3_6_0

#include "xlator.h"
#include "options.h"

/* THIS */
#define THIS (*__glusterfs_this_location())
#define DECLARE_OLD_THIS xlator_t *old_THIS = THIS

xlator_t **
__glusterfs_this_location(void);
xlator_t *
glusterfs_this_get(void);
int
glusterfs_this_set(xlator_t *);

extern xlator_t global_xlator;
extern struct volume_options global_xl_options[];

/* syncopctx */
void *
syncopctx_getctx(void);
int
syncopctx_setctx(void *ctx);

/* task */
void *
synctask_get(void);
int
synctask_set(void *);

/* uuid_buf */
char *
glusterfs_uuid_buf_get(void);
/* lkowner_buf */
char *
glusterfs_lkowner_buf_get(void);
/* leaseid buf */
char *
glusterfs_leaseid_buf_get(void);
char *
glusterfs_leaseid_exist(void);

/* init */
int
glusterfs_globals_init(glusterfs_ctx_t *ctx);

struct tvec_base *
glusterfs_ctx_tw_get(glusterfs_ctx_t *ctx);
void
glusterfs_ctx_tw_put(glusterfs_ctx_t *ctx);

extern const char *gf_fop_list[];
extern const char *gf_upcall_list[];

/* mem acct enable/disable */
int
gf_global_mem_acct_enable_get(void);
int
gf_global_mem_acct_enable_set(int val);
#endif /* !_GLOBALS_H */