5 extern command_t cmdlist[];
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);
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);
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);
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);
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);
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);
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);
70 extern int lctl_debug;
76 #define CDEBUG(mask, format, a...) \
78 if (lctl_debug & mask) { \
79 printf("(%s:%s L%d): " format, __FILE__, \
80 __FUNCTION__, __LINE__ , ## a); \
83 #else /* !LCTL_DEBUG */
84 # define CDEBUG(mask, format, a...) do {} while (0)
85 #endif /* LCTL_DEBUG */
91 #define CERROR(format, a...) \
93 fprintf(stderr, "(%s:%s L%d): " format, __FILE__, __FUNCTION__, \
97 /* So we can tell between error codes and devices */
100 #define IOCINIT(data) \
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); \
108 fprintf(stderr, "No device open, use device\n"); \
113 #define PORTALS_CONNECT \
118 g_pfd = open("/dev/portals", O_RDWR); \
120 fprintf(stderr, "error: failed to open /dev/portals: %s\n" \
121 "hint: the portals module may not be loaded\n", \
127 #define LUSTRE_CONNECT(func) \
132 fd = open("/dev/obd", O_RDWR); \
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)); \
141 #define difftime(a, b) \
142 ((double)((a)->tv_sec - (b)->tv_sec) + \
143 ((double)((a)->tv_usec - (b)->tv_usec) / 1000000))