Whamcloud - gitweb
revert configure.in
[fs/lustre-release.git] / lustre / utils / lctl.h
1 #ifndef _LCTL_H_
2 #define _LCTL_H_
3
4 #include "parser.h"
5 extern command_t cmdlist[];
6
7 /* Network configuration commands */ 
8 int jt_net_network(int argc, char **argv);
9 int jt_net_connect(int argc, char **argv);
10 int jt_net_disconnect(int argc, char **argv);
11 int jt_net_add_uuid(int argc, char **argv);
12 int jt_net_del_uuid(int argc, char **argv);
13 int jt_net_mynid(int argc, char **argv);
14 int jt_net_add_route(int argc, char **argv);
15 int jt_net_del_route(int argc, char **argv);
16 int jt_net_route_list(int argc, char **argv);
17 int jt_net_recv_mem(int argc, char **argv);
18 int jt_net_send_mem(int argc, char **argv);
19 int jt_net_nagle(int argc, char **argv);
20
21 /* Device selection commands */
22 int jt_opt_device(int argc, char **argv);
23 int jt_dev_newdev(int argc, char **argv);
24 int jt_dev_uuid2dev(int argc, char **argv);
25 int jt_dev_name2dev(int argc, char **argv);
26 int jt_dev_device(int argc, char **argv);
27 int jt_dev_list(int argc, char **argv);
28
29 /* Device configuration commands */
30 int jt_dev_attach(int argc, char **argv);
31 int jt_dev_setup(int argc, char **argv);
32 int jt_dev_cleanup(int argc, char **argv);
33 int jt_dev_detach(int argc, char **argv);
34 int jt_dev_lov_config(int argc, char **argv);
35
36 /* Device operations */
37 int jt_dev_probe(int argc, char **argv);
38 int jt_dev_close(int argc, char **argv);
39 int jt_dev_getattr(int argc, char **argv);
40 int jt_dev_setattr(int argc, char **argv);
41 int jt_dev_test_getattr(int argc, char **argv);
42 int jt_dev_test_brw(int argc, char **argv);
43 int jt_dev_test_ldlm(int argc, char **argv);
44
45 /* Debug commands */
46 int jt_debug_kernel(int argc, char **argv);
47 int jt_debug_file(int argc, char **argv);
48 int jt_debug_clear(int argc, char **argv);
49 int jt_debug_mark(int argc, char **argv);
50 int jt_debug_filter(int argc, char **argv);
51 int jt_debug_show(int argc, char **argv);
52 int jt_debug_list(int argc, char **argv);
53 int jt_debug_modules(int argc, char **argv);
54 int jt_debug_panic(int argc, char **argv);
55 int jt_debug_lctl(int argc, char **argv);
56
57 int do_disconnect(char *func, int verbose);
58 int network_setup(int argc, char **argv);
59 int device_setup(int argc, char **argv);
60 int debug_setup(int argc, char **argv);
61
62 int jt_opt_threads(int argc, char **argv);
63 char *cmdname(char *func);
64 int get_verbose(const char *arg);
65 int be_verbose(int verbose, struct timeval *next_time,
66                int num, int *next_num, int num_total);
67
68 #define LCTL_DEBUG
69 #ifdef LCTL_DEBUG
70 extern int lctl_debug;
71 #define D_LCTL 1
72
73 #ifdef CDEBUG
74 #undef CDEBUG
75 #endif
76 #define CDEBUG(mask, format, a...)                                    \
77         do {                                                            \
78                 if (lctl_debug & mask) {                           \
79                         printf("(%s:%s L%d): " format, __FILE__,        \
80                                __FUNCTION__, __LINE__ , ## a);          \
81                 }                                                       \
82         } while (0)
83 #else  /* !LCTL_DEBUG */
84 #  define CDEBUG(mask, format, a...) do {} while (0)
85 #endif /* LCTL_DEBUG */
86
87
88 #ifdef CERROR
89 #undef CERROR
90 #endif
91 #define CERROR(format, a...)                                    \
92 do {                                                            \
93         fprintf(stderr, "(%s:%s L%d): " format, __FILE__, __FUNCTION__, \
94                __LINE__ , ## a);                                \
95 } while (0)
96
97 /* So we can tell between error codes and devices */
98 #define N2D_OFF         0x100
99
100 #define IOCINIT(data)                                                   \
101 do {                                                                    \
102         memset(&data, 0, sizeof(data));                                 \
103         data.ioc_version = OBD_IOCTL_VERSION;                           \
104         data.ioc_addr = conn_addr;                                      \
105         data.ioc_cookie = conn_cookie;                                  \
106         data.ioc_len = sizeof(data);                                    \
107         if (fd < 0) {                                                   \
108                 fprintf(stderr, "No device open, use device\n");        \
109                 return 1;                                               \
110         }                                                               \
111 } while (0)
112
113 #define PORTALS_CONNECT                                                 \
114 do {                                                                    \
115         if (g_pfd != -1)                                                \
116                 break;                                                  \
117                                                                         \
118         g_pfd = open("/dev/portals", O_RDWR);                           \
119         if (g_pfd < 0) {                                                \
120                 fprintf(stderr, "error: failed to open /dev/portals: %s\n" \
121                         "hint: the portals module may not be loaded\n",    \
122                         strerror(errno));                               \
123                 return -1;                                              \
124         }                                                               \
125 } while(0)
126
127 #define LUSTRE_CONNECT(func)                                            \
128 do {                                                                    \
129         if (fd != -1)                                                   \
130                 break;                                                  \
131                                                                         \
132         fd = open("/dev/obd", O_RDWR);                                  \
133         if (fd < 0) {                                                   \
134                 fprintf(stderr, "error: %s failed to open /dev/obd: %s\n" \
135                         "hint: the lustre modules may not be loaded\n",   \
136                         cmdname(func), strerror(errno));                \
137                 return -1;                                              \
138         }                                                               \
139 } while(0)
140
141 #define difftime(a, b)                                                  \
142         ((double)((a)->tv_sec - (b)->tv_sec) +                          \
143         ((double)((a)->tv_usec - (b)->tv_usec) / 1000000))
144
145
146 typedef struct {
147         char *name;
148         int num;
149 } name2num_t;
150
151
152 #endif
153