summaryrefslogtreecommitdiff
path: root/libmultipath/config.h
blob: 5979ebdadc2ebf5469b55bc7d72b16816168fd37 (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
#ifndef _CONFIG_H
#define _CONFIG_H

#ifndef _VECTOR_H
#include "vector.h"
#endif

enum devtypes {
	DEV_NONE,
	DEV_DEVT,
	DEV_DEVNODE,
	DEV_DEVMAP
};

struct hwentry {
	int selector_args;
	int pgpolicy;
	int checker_index;
	int pgfailback;
	int rr_weight;

	char * vendor;
	char * product;
	char * selector;
	char * getuid;
	char * getprio;
	char * features;
	char * hwhandler;
};

struct mpentry {
	int selector_args;
	int pgpolicy;
	int pgfailback;
	int rr_weight;

	char * wwid;
	char * selector;
	char * getuid;
	char * alias;
};

struct config {
	int verbosity;
	int dry_run;
	int list;
	int pgpolicy_flag;
	int with_sysfs;
	int default_selector_args;
	int default_pgpolicy;
	int default_checker_index;
	int dev_type;
	int minio;
	int checkint;
	int max_checkint;
	int pgfailback;
	int remove;
	int rr_weight;

	char * dev;
	char * udev_dir;
	char * default_selector;
	char * default_getuid;
	char * default_getprio;
	char * default_features;
	char * default_hwhandler;

	vector mptable;
	vector hwtable;
	vector blist;
};

struct config * conf;

struct hwentry * find_hwe (vector hwtable, char * vendor, char * product);
struct mpentry * find_mpe (char * wwid);
char * get_mpe_wwid (char * alias);

struct mpentry * alloc_mpe (void);

void free_hwe (struct hwentry * hwe);
void free_hwtable (vector hwtable);
void free_mpe (struct mpentry * mpe);
void free_mptable (vector mptable);

int store_hwe (vector hwtable, char * vendor, char * product, int pgp,
		char * getuid);
int store_hwe_ext (vector hwtable, char * vendor, char * product, int pgp,
		char * getuid, char * getprio, char * hwhandler,
		char * features, char * checker, int pgfailback);

int load_config (char * file);
struct config * alloc_config (void);
void free_config (struct config * conf);

#endif