1 /*	$NetBSD: lvm-globals.c,v 1.2 2011/01/05 14:57:28 haad Exp $	*/
2 
3 /*
4  * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
5  * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
6  *
7  * This file is part of LVM2.
8  *
9  * This copyrighted material is made available to anyone wishing to use,
10  * modify, copy, or redistribute it subject to the terms and conditions
11  * of the GNU Lesser General Public License v.2.1.
12  *
13  * You should have received a copy of the GNU Lesser General Public License
14  * along with this program; if not, write to the Free Software Foundation,
15  * Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16  */
17 
18 #include "lib.h"
19 #include "device.h"
20 #include "memlock.h"
21 #include "lvm-string.h"
22 #include "lvm-file.h"
23 #include "defaults.h"
24 
25 #include <stdarg.h>
26 
27 static int _verbose_level = VERBOSE_BASE_LEVEL;
28 static int _test = 0;
29 static int _md_filtering = 0;
30 static int _pvmove = 0;
31 static int _full_scan_done = 0;	/* Restrict to one full scan during each cmd */
32 static int _trust_cache = 0; /* Don't scan when incomplete VGs encountered */
33 static int _debug_level = 0;
34 static int _log_cmd_name = 0;
35 static int _ignorelockingfailure = 0;
36 static int _security_level = SECURITY_LEVEL;
37 static char _cmd_name[30] = "";
38 static int _mirror_in_sync = 0;
39 static int _dmeventd_monitor = DEFAULT_DMEVENTD_MONITOR;
40 static int _ignore_suspended_devices = 0;
41 static int _error_message_produced = 0;
42 static unsigned _is_static = 0;
43 
44 #ifdef __NetBSD__
45 
46 static int _is_operator = 0;
47 
init_operator(int operator)48 void init_operator(int operator)
49 {
50 	_is_operator = operator;
51 }
52 
is_operator()53 int is_operator()
54 {
55 	return _is_operator;
56 }
57 #endif
58 
init_verbose(int level)59 void init_verbose(int level)
60 {
61 	_verbose_level = level;
62 }
63 
init_test(int level)64 void init_test(int level)
65 {
66 	if (!_test && level)
67 		log_print("Test mode: Metadata will NOT be updated.");
68 	_test = level;
69 }
70 
init_md_filtering(int level)71 void init_md_filtering(int level)
72 {
73 	_md_filtering = level;
74 }
75 
init_pvmove(int level)76 void init_pvmove(int level)
77 {
78 	_pvmove = level;
79 }
80 
init_full_scan_done(int level)81 void init_full_scan_done(int level)
82 {
83 	_full_scan_done = level;
84 }
85 
init_trust_cache(int trustcache)86 void init_trust_cache(int trustcache)
87 {
88 	_trust_cache = trustcache;
89 }
90 
init_ignorelockingfailure(int level)91 void init_ignorelockingfailure(int level)
92 {
93 	_ignorelockingfailure = level;
94 }
95 
init_security_level(int level)96 void init_security_level(int level)
97 {
98 	_security_level = level;
99 }
100 
init_mirror_in_sync(int in_sync)101 void init_mirror_in_sync(int in_sync)
102 {
103 	_mirror_in_sync = in_sync;
104 }
105 
init_dmeventd_monitor(int reg)106 void init_dmeventd_monitor(int reg)
107 {
108 	_dmeventd_monitor = reg;
109 }
110 
init_ignore_suspended_devices(int ignore)111 void init_ignore_suspended_devices(int ignore)
112 {
113 	_ignore_suspended_devices = ignore;
114 }
115 
init_cmd_name(int status)116 void init_cmd_name(int status)
117 {
118 	_log_cmd_name = status;
119 }
120 
init_is_static(unsigned value)121 void init_is_static(unsigned value)
122 {
123 	_is_static = value;
124 }
125 
set_cmd_name(const char * cmd)126 void set_cmd_name(const char *cmd)
127 {
128 	strncpy(_cmd_name, cmd, sizeof(_cmd_name));
129 	_cmd_name[sizeof(_cmd_name) - 1] = '\0';
130 }
131 
log_command_name()132 const char *log_command_name()
133 {
134 	if (!_log_cmd_name)
135 		return "";
136 
137 	return _cmd_name;
138 }
139 
init_error_message_produced(int value)140 void init_error_message_produced(int value)
141 {
142 	_error_message_produced = value;
143 }
144 
error_message_produced(void)145 int error_message_produced(void)
146 {
147 	return _error_message_produced;
148 }
149 
test_mode()150 int test_mode()
151 {
152 	return _test;
153 }
154 
md_filtering()155 int md_filtering()
156 {
157 	return _md_filtering;
158 }
159 
pvmove_mode()160 int pvmove_mode()
161 {
162 	return _pvmove;
163 }
164 
full_scan_done()165 int full_scan_done()
166 {
167 	return _full_scan_done;
168 }
169 
trust_cache()170 int trust_cache()
171 {
172 	return _trust_cache;
173 }
174 
ignorelockingfailure()175 int ignorelockingfailure()
176 {
177 	return _ignorelockingfailure;
178 }
179 
security_level()180 int security_level()
181 {
182 	return _security_level;
183 }
184 
mirror_in_sync(void)185 int mirror_in_sync(void)
186 {
187 	return _mirror_in_sync;
188 }
189 
dmeventd_monitor_mode(void)190 int dmeventd_monitor_mode(void)
191 {
192 	return _dmeventd_monitor;
193 }
194 
ignore_suspended_devices(void)195 int ignore_suspended_devices(void)
196 {
197 	return _ignore_suspended_devices;
198 }
199 
init_debug(int level)200 void init_debug(int level)
201 {
202 	_debug_level = level;
203 }
204 
verbose_level()205 int verbose_level()
206 {
207 	return _verbose_level;
208 }
209 
debug_level()210 int debug_level()
211 {
212 	return _debug_level;
213 }
214 
is_static(void)215 unsigned is_static(void)
216 {
217 	return _is_static;
218 }
219