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