6b288d4b3e7c9bad7f711e1ef7b06dc461043fa4
[multipath-tools/.git] / multipathd / cli.h
1 enum {
2         __LIST,
3         __ADD,
4         __DEL,
5         __SWITCH,
6         __SUSPEND,
7         __RESUME,
8         __REINSTATE,
9         __FAIL,
10         __RESIZE,
11         __RESET,
12         __RELOAD,
13         __DISABLEQ,
14         __RESTOREQ,
15         __PATHS,
16         __MAPS,
17         __PATH,
18         __MAP,
19         __GROUP,
20         __RECONFIGURE,
21         __DAEMON,
22         __STATUS,
23         __STATS,
24         __TOPOLOGY,
25         __CONFIG,
26         __BLACKLIST,
27         __DEVICES,
28         __FMT,
29         __WILDCARDS,
30         __QUIT,
31         __SHUTDOWN,
32         __GETPRSTATUS,
33         __SETPRSTATUS,
34         __UNSETPRSTATUS,
35 };
36
37 #define LIST            (1 << __LIST)
38 #define ADD             (1 << __ADD)
39 #define DEL             (1 << __DEL)
40 #define SWITCH          (1 << __SWITCH)
41 #define SUSPEND         (1 << __SUSPEND)
42 #define RESUME          (1 << __RESUME)
43 #define REINSTATE       (1 << __REINSTATE)
44 #define FAIL            (1 << __FAIL)
45 #define RESIZE          (1 << __RESIZE)
46 #define RESET           (1 << __RESET)
47 #define RELOAD          (1 << __RELOAD)
48 #define DISABLEQ        (1 << __DISABLEQ)
49 #define RESTOREQ        (1 << __RESTOREQ)
50 #define PATHS           (1 << __PATHS)
51 #define MAPS            (1 << __MAPS)
52 #define PATH            (1 << __PATH)
53 #define MAP             (1 << __MAP)
54 #define GROUP           (1 << __GROUP)
55 #define RECONFIGURE     (1 << __RECONFIGURE)
56 #define DAEMON          (1 << __DAEMON)
57 #define STATUS          (1 << __STATUS)
58 #define STATS           (1 << __STATS)
59 #define TOPOLOGY        (1 << __TOPOLOGY)
60 #define CONFIG          (1 << __CONFIG)
61 #define BLACKLIST       (1 << __BLACKLIST)
62 #define DEVICES         (1 << __DEVICES)
63 #define FMT             (1 << __FMT)
64 #define COUNT           (1 << __COUNT)
65 #define WILDCARDS       (1 << __WILDCARDS)
66 #define QUIT            (1 << __QUIT)
67 #define SHUTDOWN        (1 << __SHUTDOWN)
68 #define GETPRSTATUS     (1UL << __GETPRSTATUS)
69 #define SETPRSTATUS     (1UL << __SETPRSTATUS)
70 #define UNSETPRSTATUS   (1UL << __UNSETPRSTATUS)
71
72 #define INITIAL_REPLY_LEN       1100
73
74 struct key {
75         char * str;
76         char * param;
77         unsigned long code;
78         int has_param;
79 };
80
81 struct handler {
82         unsigned long fingerprint;
83         int (*fn)(void *, char **, int *, void *);
84 };
85
86 int alloc_handlers (void);
87 int add_handler (unsigned long fp, int (*fn)(void *, char **, int *, void *));
88 int set_handler_callback (unsigned long fp, int (*fn)(void *, char **, int *, void *));
89 int parse_cmd (char * cmd, char ** reply, int * len, void *);
90 int load_keys (void);
91 char * get_keyparam (vector v, unsigned long code);
92 void free_keys (vector vec);
93 void free_handlers (void);
94 int cli_init (void);
95 void cli_exit(void);
96 char * key_generator (const char * str, int state);