Whamcloud - gitweb
7397fcbf3584fea74f366cbeeb0b04f75c50da7e
[fs/lustre-release.git] / lustre / utils / wirecheck.c
1 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
2  * vim:expandtab:shiftwidth=8:tabstop=8:
3  */
4 #include <stdio.h>
5 #include <liblustre.h>
6 #include <linux/lustre_lib.h>
7 #include <linux/lustre_idl.h>
8
9 #define BLANK_LINE()                                            \
10 do {                                                            \
11         printf("\n");                                           \
12 } while(0)
13
14 #define COMMENT(c)                                              \
15 do {                                                            \
16         printf("        /* "c" */\n");                          \
17 } while(0)
18
19 #define STRINGIFY(a) #a
20
21 #define CHECK_DEFINE(a)                                         \
22 do {                                                            \
23         printf("        LASSERT("#a" == "STRINGIFY(a)");\n");   \
24 } while(0)
25
26 #define CHECK_VALUE(a)                                          \
27 do {                                                            \
28         printf("        LASSERT("#a" == %d);\n", a);            \
29 } while(0)
30
31 #define CHECK_MEMBER_OFFSET(s,m)                                \
32 do {                                                            \
33         CHECK_VALUE(offsetof(struct s, m));                     \
34 } while(0)
35
36 #define CHECK_MEMBER_SIZEOF(s,m)                                \
37 do {                                                            \
38         CHECK_VALUE((int)sizeof(((struct s *)0)->m));           \
39 } while(0)
40
41 #define CHECK_MEMBER(s,m)                                       \
42 do {                                                            \
43         CHECK_MEMBER_OFFSET(s, m);                              \
44                 CHECK_MEMBER_SIZEOF(s, m);                      \
45 } while(0)
46
47 #define CHECK_STRUCT(s)                                         \
48 do {                                                            \
49         COMMENT("Checks for struct "#s);                        \
50                 CHECK_VALUE((int)sizeof(struct s));             \
51 } while(0)
52
53
54
55 void check1(void)
56 {
57 #define VALUE 1234567
58
59         CHECK_VALUE(VALUE);
60         CHECK_DEFINE(VALUE);
61 }
62
63 void
64 check_lustre_handle(void)
65 {
66         BLANK_LINE();
67         CHECK_STRUCT(lustre_handle);
68         CHECK_MEMBER(lustre_handle, cookie);
69 }
70
71 void
72 check_lustre_msg(void)
73 {
74         BLANK_LINE();
75         CHECK_STRUCT(lustre_msg);
76         CHECK_MEMBER(lustre_msg, handle);
77         CHECK_MEMBER(lustre_msg, magic);
78         CHECK_MEMBER(lustre_msg, type);
79         CHECK_MEMBER(lustre_msg, version);
80         CHECK_MEMBER(lustre_msg, opc);
81         CHECK_MEMBER(lustre_msg, last_xid);
82         CHECK_MEMBER(lustre_msg, last_committed);
83         CHECK_MEMBER(lustre_msg, transno);
84         CHECK_MEMBER(lustre_msg, status);
85         CHECK_MEMBER(lustre_msg, flags);
86         CHECK_MEMBER(lustre_msg, bufcount);
87         CHECK_MEMBER(lustre_msg, buflens[7]);
88 }
89
90 void
91 check_obdo(void)
92 {
93         BLANK_LINE();
94         CHECK_STRUCT(obdo);
95         CHECK_MEMBER(obdo, o_id);
96         CHECK_MEMBER(obdo, o_gr);
97         CHECK_MEMBER(obdo, o_atime);
98         CHECK_MEMBER(obdo, o_mtime);
99         CHECK_MEMBER(obdo, o_ctime);
100         CHECK_MEMBER(obdo, o_size);
101         CHECK_MEMBER(obdo, o_blocks);
102         CHECK_MEMBER(obdo, o_rdev);
103         CHECK_MEMBER(obdo, o_blksize);
104         CHECK_MEMBER(obdo, o_mode);
105         CHECK_MEMBER(obdo, o_uid);
106         CHECK_MEMBER(obdo, o_gid);
107         CHECK_MEMBER(obdo, o_flags);
108         CHECK_MEMBER(obdo, o_nlink);
109         CHECK_MEMBER(obdo, o_generation);
110         CHECK_MEMBER(obdo, o_valid);
111         CHECK_MEMBER(obdo, o_obdflags);
112         CHECK_MEMBER(obdo, o_easize);
113         CHECK_MEMBER(obdo, o_inline);
114
115         CHECK_VALUE(OBD_MD_FLID);
116         CHECK_VALUE(OBD_MD_FLATIME);
117         CHECK_VALUE(OBD_MD_FLMTIME);
118         CHECK_VALUE(OBD_MD_FLCTIME);
119         CHECK_VALUE(OBD_MD_FLSIZE);
120         CHECK_VALUE(OBD_MD_FLBLOCKS);
121         CHECK_VALUE(OBD_MD_FLBLKSZ);
122         CHECK_VALUE(OBD_MD_FLMODE);
123         CHECK_VALUE(OBD_MD_FLTYPE);
124         CHECK_VALUE(OBD_MD_FLUID);
125         CHECK_VALUE(OBD_MD_FLGID);
126         CHECK_VALUE(OBD_MD_FLFLAGS);
127         CHECK_VALUE(OBD_MD_FLOBDFLG);
128         CHECK_VALUE(OBD_MD_FLNLINK);
129         CHECK_VALUE(OBD_MD_FLGENER);
130         CHECK_VALUE(OBD_MD_FLINLINE);
131         CHECK_VALUE(OBD_MD_FLRDEV);
132         CHECK_VALUE(OBD_MD_FLEASIZE);
133         CHECK_VALUE(OBD_MD_LINKNAME);
134         CHECK_VALUE(OBD_MD_FLHANDLE);
135         CHECK_VALUE(OBD_MD_FLCKSUM);
136         CHECK_VALUE(OBD_MD_FLQOS);
137         CHECK_VALUE(OBD_MD_FLOSCOPQ);
138         CHECK_VALUE(OBD_MD_FLCOOKIE);
139         CHECK_VALUE(OBD_MD_FLGROUP);
140 }
141
142 void
143 check_lov_mds_md_v1(void)
144 {
145         BLANK_LINE();
146         CHECK_STRUCT(lov_mds_md_v1);
147         CHECK_MEMBER(lov_mds_md_v1, lmm_magic);
148         CHECK_MEMBER(lov_mds_md_v1, lmm_pattern);
149         CHECK_MEMBER(lov_mds_md_v1, lmm_object_id);
150         CHECK_MEMBER(lov_mds_md_v1, lmm_object_gr);
151         CHECK_MEMBER(lov_mds_md_v1, lmm_stripe_size);
152         CHECK_MEMBER(lov_mds_md_v1, lmm_stripe_count);
153         CHECK_MEMBER(lov_mds_md_v1, lmm_objects);
154
155         BLANK_LINE();
156         CHECK_STRUCT(lov_ost_data_v1);
157         CHECK_MEMBER(lov_ost_data_v1, l_object_id);
158         CHECK_MEMBER(lov_ost_data_v1, l_object_gr);
159         CHECK_MEMBER(lov_ost_data_v1, l_ost_gen);
160         CHECK_MEMBER(lov_ost_data_v1, l_ost_idx);
161
162         CHECK_VALUE(LOV_MAGIC_V0);
163         CHECK_VALUE(LOV_MAGIC_V1);
164
165         CHECK_VALUE(LOV_PATTERN_RAID0);
166         CHECK_VALUE(LOV_PATTERN_RAID1);
167 }
168
169 void
170 check_obd_statfs(void)
171 {
172         BLANK_LINE();
173         CHECK_STRUCT(obd_statfs);
174         CHECK_MEMBER(obd_statfs, os_type);
175         CHECK_MEMBER(obd_statfs, os_blocks);
176         CHECK_MEMBER(obd_statfs, os_bfree);
177         CHECK_MEMBER(obd_statfs, os_bavail);
178         CHECK_MEMBER(obd_statfs, os_ffree);
179         CHECK_MEMBER(obd_statfs, os_fsid);
180         CHECK_MEMBER(obd_statfs, os_bsize);
181         CHECK_MEMBER(obd_statfs, os_namelen);
182         CHECK_MEMBER(obd_statfs, os_spare);
183 }
184
185 void
186 check_obd_ioobj(void)
187 {
188         BLANK_LINE();
189         CHECK_STRUCT(obd_ioobj);
190         CHECK_MEMBER(obd_ioobj, ioo_id);
191         CHECK_MEMBER(obd_ioobj, ioo_gr);
192         CHECK_MEMBER(obd_ioobj, ioo_type);
193         CHECK_MEMBER(obd_ioobj, ioo_bufcnt);
194 }
195
196 void
197 check_niobuf_remote(void)
198 {
199         BLANK_LINE();
200         CHECK_STRUCT(niobuf_remote);
201         CHECK_MEMBER(niobuf_remote, offset);
202         CHECK_MEMBER(niobuf_remote, len);
203         CHECK_MEMBER(niobuf_remote, flags);
204
205         CHECK_VALUE(OBD_BRW_READ);
206         CHECK_VALUE(OBD_BRW_WRITE);
207         CHECK_VALUE(OBD_BRW_CREATE);
208         CHECK_VALUE(OBD_BRW_SYNC);
209 }
210
211 void
212 check_ost_body(void)
213 {
214         BLANK_LINE();
215         CHECK_STRUCT(ost_body);
216         CHECK_MEMBER(ost_body, oa);
217 }
218
219 void
220 check_ll_fid(void)
221 {
222         BLANK_LINE();
223         CHECK_STRUCT(ll_fid);
224         CHECK_MEMBER(ll_fid, id);
225         CHECK_MEMBER(ll_fid, generation);
226         CHECK_MEMBER(ll_fid, f_type);
227 }
228
229 void
230 check_mds_status_req(void)
231 {
232         BLANK_LINE();
233         CHECK_STRUCT(mds_status_req);
234         CHECK_MEMBER(mds_status_req, flags);
235         CHECK_MEMBER(mds_status_req, repbuf);
236 }
237
238 void
239 check_mds_body(void)
240 {
241         BLANK_LINE();
242         CHECK_STRUCT(mds_body);
243         CHECK_MEMBER(mds_body, fid1);
244         CHECK_MEMBER(mds_body, fid2);
245         CHECK_MEMBER(mds_body, handle);
246         CHECK_MEMBER(mds_body, size);
247         CHECK_MEMBER(mds_body, blocks);
248         CHECK_MEMBER(mds_body, io_epoch);
249         CHECK_MEMBER(mds_body, ino);
250         CHECK_MEMBER(mds_body, valid);
251         CHECK_MEMBER(mds_body, fsuid);
252         CHECK_MEMBER(mds_body, fsgid);
253         CHECK_MEMBER(mds_body, capability);
254         CHECK_MEMBER(mds_body, mode);
255         CHECK_MEMBER(mds_body, uid);
256         CHECK_MEMBER(mds_body, gid);
257         CHECK_MEMBER(mds_body, mtime);
258         CHECK_MEMBER(mds_body, ctime);
259         CHECK_MEMBER(mds_body, atime);
260         CHECK_MEMBER(mds_body, flags);
261         CHECK_MEMBER(mds_body, rdev);
262         CHECK_MEMBER(mds_body, nlink);
263         CHECK_MEMBER(mds_body, generation);
264         CHECK_MEMBER(mds_body, suppgid);
265         CHECK_MEMBER(mds_body, eadatasize);
266
267         CHECK_VALUE(FMODE_READ);
268         CHECK_VALUE(FMODE_WRITE);
269         CHECK_VALUE(FMODE_EXEC);
270         CHECK_VALUE(MDS_OPEN_CREAT);
271         CHECK_VALUE(MDS_OPEN_EXCL);
272         CHECK_VALUE(MDS_OPEN_APPEND);
273         CHECK_VALUE(MDS_OPEN_SYNC);
274         CHECK_VALUE(MDS_OPEN_DIRECTORY);
275         CHECK_VALUE(MDS_OPEN_DELAY_CREATE);
276         CHECK_VALUE(MDS_OPEN_HAS_EA);
277 }
278
279 void
280 check_mds_rec_setattr(void)
281 {
282         BLANK_LINE();
283         CHECK_STRUCT(mds_rec_setattr);
284         CHECK_MEMBER(mds_rec_setattr, sa_opcode);
285         CHECK_MEMBER(mds_rec_setattr, sa_fsuid);
286         CHECK_MEMBER(mds_rec_setattr, sa_fsgid);
287         CHECK_MEMBER(mds_rec_setattr, sa_cap);
288         CHECK_MEMBER(mds_rec_setattr, sa_suppgid);
289         CHECK_MEMBER(mds_rec_setattr, sa_valid);
290         CHECK_MEMBER(mds_rec_setattr, sa_fid);
291         CHECK_MEMBER(mds_rec_setattr, sa_mode);
292         CHECK_MEMBER(mds_rec_setattr, sa_uid);
293         CHECK_MEMBER(mds_rec_setattr, sa_gid);
294         CHECK_MEMBER(mds_rec_setattr, sa_attr_flags);
295         CHECK_MEMBER(mds_rec_setattr, sa_size);
296         CHECK_MEMBER(mds_rec_setattr, sa_atime);
297         CHECK_MEMBER(mds_rec_setattr, sa_mtime);
298         CHECK_MEMBER(mds_rec_setattr, sa_ctime);
299 }
300
301 void
302 check_mds_rec_create(void)
303 {
304         BLANK_LINE();
305         CHECK_STRUCT(mds_rec_create);
306         CHECK_MEMBER(mds_rec_create, cr_opcode);
307         CHECK_MEMBER(mds_rec_create, cr_fsuid);
308         CHECK_MEMBER(mds_rec_create, cr_fsgid);
309         CHECK_MEMBER(mds_rec_create, cr_cap);
310         CHECK_MEMBER(mds_rec_create, cr_flags);
311         CHECK_MEMBER(mds_rec_create, cr_mode);
312         CHECK_MEMBER(mds_rec_create, cr_fid);
313         CHECK_MEMBER(mds_rec_create, cr_replayfid);
314         CHECK_MEMBER(mds_rec_create, cr_time);
315         CHECK_MEMBER(mds_rec_create, cr_rdev);
316         CHECK_MEMBER(mds_rec_create, cr_suppgid);
317 }
318
319 void
320 check_mds_rec_link(void)
321 {
322         BLANK_LINE();
323         CHECK_STRUCT(mds_rec_link);
324         CHECK_MEMBER(mds_rec_link, lk_opcode);
325         CHECK_MEMBER(mds_rec_link, lk_fsuid);
326         CHECK_MEMBER(mds_rec_link, lk_fsgid);
327         CHECK_MEMBER(mds_rec_link, lk_cap);
328         CHECK_MEMBER(mds_rec_link, lk_suppgid1);
329         CHECK_MEMBER(mds_rec_link, lk_suppgid2);
330         CHECK_MEMBER(mds_rec_link, lk_fid1);
331         CHECK_MEMBER(mds_rec_link, lk_fid2);
332         CHECK_MEMBER(mds_rec_link, lk_time);
333 }
334
335 void
336 check_mds_rec_unlink(void)
337 {
338         BLANK_LINE();
339         CHECK_STRUCT(mds_rec_unlink);
340         CHECK_MEMBER(mds_rec_unlink, ul_opcode);
341         CHECK_MEMBER(mds_rec_unlink, ul_fsuid);
342         CHECK_MEMBER(mds_rec_unlink, ul_fsgid);
343         CHECK_MEMBER(mds_rec_unlink, ul_cap);
344         CHECK_MEMBER(mds_rec_unlink, ul_suppgid);
345         CHECK_MEMBER(mds_rec_unlink, ul_mode);
346         CHECK_MEMBER(mds_rec_unlink, ul_fid1);
347         CHECK_MEMBER(mds_rec_unlink, ul_fid2);
348         CHECK_MEMBER(mds_rec_unlink, ul_time);
349 }
350
351 void
352 check_mds_rec_rename(void)
353 {
354         BLANK_LINE();
355         CHECK_STRUCT(mds_rec_rename);
356         CHECK_MEMBER(mds_rec_rename, rn_opcode);
357         CHECK_MEMBER(mds_rec_rename, rn_fsuid);
358         CHECK_MEMBER(mds_rec_rename, rn_fsgid);
359         CHECK_MEMBER(mds_rec_rename, rn_cap);
360         CHECK_MEMBER(mds_rec_rename, rn_suppgid1);
361         CHECK_MEMBER(mds_rec_rename, rn_suppgid2);
362         CHECK_MEMBER(mds_rec_rename, rn_fid1);
363         CHECK_MEMBER(mds_rec_rename, rn_fid2);
364         CHECK_MEMBER(mds_rec_rename, rn_time);
365 }
366
367 void
368 check_lov_desc(void)
369 {
370         BLANK_LINE();
371         CHECK_STRUCT(lov_desc);
372         CHECK_MEMBER(lov_desc, ld_tgt_count);
373         CHECK_MEMBER(lov_desc, ld_active_tgt_count);
374         CHECK_MEMBER(lov_desc, ld_default_stripe_count);
375         CHECK_MEMBER(lov_desc, ld_pattern);
376         CHECK_MEMBER(lov_desc, ld_default_stripe_size);
377         CHECK_MEMBER(lov_desc, ld_default_stripe_offset);
378         CHECK_MEMBER(lov_desc, ld_uuid);
379 }
380
381 void
382 check_ldlm_res_id(void)
383 {
384         BLANK_LINE();
385         CHECK_STRUCT(ldlm_res_id);
386         CHECK_MEMBER(ldlm_res_id, name[RES_NAME_SIZE]);
387 }
388
389 void
390 check_ldlm_extent(void)
391 {
392         BLANK_LINE();
393         CHECK_STRUCT(ldlm_extent);
394         CHECK_MEMBER(ldlm_extent, start);
395         CHECK_MEMBER(ldlm_extent, end);
396 }
397
398 void
399 check_ldlm_flock(void)
400 {
401         BLANK_LINE();
402         CHECK_STRUCT(ldlm_flock);
403         CHECK_MEMBER(ldlm_flock, start);
404         CHECK_MEMBER(ldlm_flock, end);
405         CHECK_MEMBER(ldlm_flock, blocking_export);
406         CHECK_MEMBER(ldlm_flock, blocking_pid);
407         CHECK_MEMBER(ldlm_flock, pid);
408 }
409
410 void
411 check_ldlm_intent(void)
412 {
413         BLANK_LINE();
414         CHECK_STRUCT(ldlm_intent);
415         CHECK_MEMBER(ldlm_intent, opc);
416 }
417
418 void
419 check_ldlm_resource_desc(void)
420 {
421         BLANK_LINE();
422         CHECK_STRUCT(ldlm_resource_desc);
423         CHECK_MEMBER(ldlm_resource_desc, lr_type);
424         CHECK_MEMBER(ldlm_resource_desc, lr_name);
425         CHECK_MEMBER(ldlm_resource_desc, lr_version[RES_VERSION_SIZE]);
426 }
427
428 void
429 check_ldlm_lock_desc(void)
430 {
431         BLANK_LINE();
432         CHECK_STRUCT(ldlm_lock_desc);
433         CHECK_MEMBER(ldlm_lock_desc, l_resource);
434         CHECK_MEMBER(ldlm_lock_desc, l_req_mode);
435         CHECK_MEMBER(ldlm_lock_desc, l_granted_mode);
436         CHECK_MEMBER(ldlm_lock_desc, l_policy_data);
437         CHECK_MEMBER(ldlm_lock_desc, l_version[RES_VERSION_SIZE]);
438 }
439
440 void
441 check_ldlm_request(void)
442 {
443         BLANK_LINE();
444         CHECK_STRUCT(ldlm_request);
445         CHECK_MEMBER(ldlm_request, lock_flags);
446         CHECK_MEMBER(ldlm_request, lock_desc);
447         CHECK_MEMBER(ldlm_request, lock_handle1);
448         CHECK_MEMBER(ldlm_request, lock_handle2);
449 }
450
451 void
452 check_ldlm_reply(void)
453 {
454         BLANK_LINE();
455         CHECK_STRUCT(ldlm_reply);
456         CHECK_MEMBER(ldlm_reply, lock_flags);
457         CHECK_MEMBER(ldlm_reply, lock_mode);
458         CHECK_MEMBER(ldlm_reply, lock_resource_name);
459         CHECK_MEMBER(ldlm_reply, lock_handle);
460         CHECK_MEMBER(ldlm_reply, lock_policy_data);
461         CHECK_MEMBER(ldlm_reply, lock_policy_res1);
462         CHECK_MEMBER(ldlm_reply, lock_policy_res2);
463 }
464
465 void
466 check_ptlbd_op(void)
467 {
468         BLANK_LINE();
469         CHECK_STRUCT(ptlbd_op);
470         CHECK_MEMBER(ptlbd_op, op_cmd);
471         CHECK_MEMBER(ptlbd_op, op_lun);
472         CHECK_MEMBER(ptlbd_op, op_niob_cnt);
473         CHECK_MEMBER(ptlbd_op, op__padding);
474         CHECK_MEMBER(ptlbd_op, op_block_cnt);
475 }
476
477 void
478 check_ptlbd_niob(void)
479 {
480         BLANK_LINE();
481         CHECK_STRUCT(ptlbd_niob);
482         CHECK_MEMBER(ptlbd_niob, n_xid);
483         CHECK_MEMBER(ptlbd_niob, n_block_nr);
484         CHECK_MEMBER(ptlbd_niob, n_offset);
485         CHECK_MEMBER(ptlbd_niob, n_length);
486 }
487
488 void
489 check_ptlbd_rsp(void)
490 {
491         BLANK_LINE();
492         CHECK_STRUCT(ptlbd_rsp);
493         CHECK_MEMBER(ptlbd_rsp, r_status);
494         CHECK_MEMBER(ptlbd_rsp, r_error_cnt);
495 }
496
497 void
498 check_llog_logid(void)
499 {
500         BLANK_LINE();
501         CHECK_STRUCT(llog_logid);
502         CHECK_MEMBER(llog_logid, lgl_oid);
503         CHECK_MEMBER(llog_logid, lgl_ogr);
504         CHECK_MEMBER(llog_logid, lgl_ogen);
505
506         CHECK_VALUE(OST_SZ_REC);
507         CHECK_VALUE(OST_RAID1_REC);
508         CHECK_VALUE(MDS_UNLINK_REC);
509         CHECK_VALUE(OBD_CFG_REC);
510         CHECK_VALUE(PTL_CFG_REC);
511         CHECK_VALUE(LLOG_HDR_MAGIC);
512         CHECK_VALUE(LLOG_LOGID_MAGIC);
513 }
514
515 void
516 check_llog_rec_hdr(void)
517 {
518         BLANK_LINE();
519         CHECK_STRUCT(llog_rec_hdr);
520         CHECK_MEMBER(llog_rec_hdr, lrh_len);
521         CHECK_MEMBER(llog_rec_hdr, lrh_index);
522         CHECK_MEMBER(llog_rec_hdr, lrh_type);
523 }
524
525 void
526 check_llog_rec_tail(void)
527 {
528         BLANK_LINE();
529         CHECK_STRUCT(llog_rec_tail);
530         CHECK_MEMBER(llog_rec_tail, lrt_len);
531         CHECK_MEMBER(llog_rec_tail, lrt_index);
532 }
533
534 void
535 check_llog_log_hdr(void)
536 {
537         BLANK_LINE();
538         CHECK_STRUCT(llog_log_hdr);
539         CHECK_MEMBER(llog_log_hdr, llh_hdr);
540         CHECK_MEMBER(llog_log_hdr, llh_timestamp);
541         CHECK_MEMBER(llog_log_hdr, llh_count);
542         CHECK_MEMBER(llog_log_hdr, llh_bitmap_offset);
543         CHECK_MEMBER(llog_log_hdr, llh_size);
544         CHECK_MEMBER(llog_log_hdr, llh_flags);
545         CHECK_MEMBER(llog_log_hdr, llh_cat_idx);
546         CHECK_MEMBER(llog_log_hdr, llh_tgtuuid);
547         CHECK_MEMBER(llog_log_hdr, llh_reserved);
548         CHECK_MEMBER(llog_log_hdr, llh_bitmap);
549         CHECK_MEMBER(llog_log_hdr, llh_tail);
550 }
551
552 void
553 check_llog_cookie(void)
554 {
555         BLANK_LINE();
556         CHECK_STRUCT(llog_cookie);
557         CHECK_MEMBER(llog_cookie, lgc_lgl);
558         CHECK_MEMBER(llog_cookie, lgc_subsys);
559         CHECK_MEMBER(llog_cookie, lgc_index);
560 }
561
562 void
563 check_llogd_body(void)
564 {
565         BLANK_LINE();
566         CHECK_STRUCT(llogd_body);
567         CHECK_MEMBER(llogd_body, lgd_logid);
568         CHECK_MEMBER(llogd_body, lgd_ctxt_idx);
569         CHECK_MEMBER(llogd_body, lgd_llh_flags);
570         CHECK_MEMBER(llogd_body, lgd_index);
571         CHECK_MEMBER(llogd_body, lgd_saved_index);
572         CHECK_MEMBER(llogd_body, lgd_len);
573         CHECK_MEMBER(llogd_body, lgd_cur_offset);
574
575         CHECK_VALUE(LLOG_ORIGIN_HANDLE_CREATE);
576         CHECK_VALUE(LLOG_ORIGIN_HANDLE_NEXT_BLOCK);
577         CHECK_VALUE(LLOG_ORIGIN_HANDLE_READ_HEADER);
578         CHECK_VALUE(LLOG_ORIGIN_HANDLE_WRITE_REC);
579         CHECK_VALUE(LLOG_ORIGIN_HANDLE_CLOSE);
580 }
581
582 void
583 check_llog_ctxt_gen(void)
584 {
585         BLANK_LINE();
586         CHECK_STRUCT(llog_ctxt_gen);
587         CHECK_MEMBER(llog_ctxt_gen, mnt_cnt);
588         CHECK_MEMBER(llog_ctxt_gen, conn_cnt);
589 }
590
591 void
592 check_llogd_conn_body(void)
593 {
594         BLANK_LINE();
595         CHECK_STRUCT(llogd_conn_body);
596         CHECK_MEMBER(llogd_conn_body, lgdc_gen);
597         CHECK_MEMBER(llogd_conn_body, lgdc_logid);
598         CHECK_MEMBER(llogd_conn_body, lgdc_ctxt_idx);
599 }
600
601 int
602 main(int argc, char **argv)
603 {
604         printf("void lustre_assert_wire_constants(void)\n"
605                "{\n");
606
607         COMMENT("Wire protocol assertions generated by 'wirecheck'");
608         BLANK_LINE();
609
610         COMMENT("Constants...");
611         CHECK_DEFINE(PTLRPC_MSG_MAGIC);
612         CHECK_DEFINE(PTLRPC_MSG_VERSION);
613
614         CHECK_VALUE(PTL_RPC_MSG_REQUEST);
615         CHECK_VALUE(PTL_RPC_MSG_ERR);
616         CHECK_VALUE(PTL_RPC_MSG_REPLY);
617
618         CHECK_VALUE(MSG_LAST_REPLAY);
619         CHECK_VALUE(MSG_RESENT);
620
621         CHECK_VALUE(MSG_CONNECT_RECOVERING);
622         CHECK_VALUE(MSG_CONNECT_RECONNECT);
623         CHECK_VALUE(MSG_CONNECT_REPLAYABLE);
624
625         CHECK_VALUE(OST_REPLY);
626         CHECK_VALUE(OST_GETATTR);
627         CHECK_VALUE(OST_SETATTR);
628         CHECK_VALUE(OST_READ);
629         CHECK_VALUE(OST_WRITE);
630         CHECK_VALUE(OST_CREATE);
631         CHECK_VALUE(OST_DESTROY);
632         CHECK_VALUE(OST_GET_INFO);
633         CHECK_VALUE(OST_CONNECT);
634         CHECK_VALUE(OST_DISCONNECT);
635         CHECK_VALUE(OST_PUNCH);
636         CHECK_VALUE(OST_OPEN);
637         CHECK_VALUE(OST_CLOSE);
638         CHECK_VALUE(OST_STATFS);
639         CHECK_VALUE(OST_SAN_READ);
640         CHECK_VALUE(OST_SAN_WRITE);
641         CHECK_VALUE(OST_SYNC);
642         CHECK_VALUE(OST_LAST_OPC);
643         CHECK_VALUE(OST_FIRST_OPC);
644
645         CHECK_VALUE(OBD_FL_INLINEDATA);
646         CHECK_VALUE(OBD_FL_OBDMDEXISTS);
647
648         CHECK_DEFINE(OBD_OBJECT_EOF);
649
650         CHECK_VALUE(OST_REQ_HAS_OA1);
651
652         CHECK_VALUE(MDS_GETATTR);
653         CHECK_VALUE(MDS_GETATTR_NAME);
654         CHECK_VALUE(MDS_CLOSE);
655         CHECK_VALUE(MDS_REINT);
656         CHECK_VALUE(MDS_READPAGE);
657         CHECK_VALUE(MDS_CONNECT);
658         CHECK_VALUE(MDS_DISCONNECT);
659         CHECK_VALUE(MDS_GETSTATUS);
660         CHECK_VALUE(MDS_STATFS);
661         CHECK_VALUE(MDS_LAST_OPC);
662         CHECK_VALUE(MDS_FIRST_OPC);
663
664         CHECK_VALUE(REINT_SETATTR);
665         CHECK_VALUE(REINT_CREATE);
666         CHECK_VALUE(REINT_LINK);
667         CHECK_VALUE(REINT_UNLINK);
668         CHECK_VALUE(REINT_RENAME);
669         CHECK_VALUE(REINT_OPEN);
670         CHECK_VALUE(REINT_MAX);
671
672         CHECK_VALUE(DISP_IT_EXECD);
673         CHECK_VALUE(DISP_LOOKUP_EXECD);
674         CHECK_VALUE(DISP_LOOKUP_NEG);
675         CHECK_VALUE(DISP_LOOKUP_POS);
676         CHECK_VALUE(DISP_OPEN_CREATE);
677         CHECK_VALUE(DISP_OPEN_OPEN);
678
679         CHECK_VALUE(MDS_STATUS_CONN);
680         CHECK_VALUE(MDS_STATUS_LOV);
681
682         CHECK_VALUE(MDS_OPEN_HAS_EA);
683
684         CHECK_VALUE(LDLM_ENQUEUE);
685         CHECK_VALUE(LDLM_CONVERT);
686         CHECK_VALUE(LDLM_CANCEL);
687         CHECK_VALUE(LDLM_BL_CALLBACK);
688         CHECK_VALUE(LDLM_CP_CALLBACK);
689         CHECK_VALUE(LDLM_LAST_OPC);
690         CHECK_VALUE(LDLM_FIRST_OPC);
691
692         CHECK_VALUE(PTLBD_QUERY);
693         CHECK_VALUE(PTLBD_READ);
694         CHECK_VALUE(PTLBD_WRITE);
695         CHECK_VALUE(PTLBD_FLUSH);
696         CHECK_VALUE(PTLBD_CONNECT);
697         CHECK_VALUE(PTLBD_DISCONNECT);
698         CHECK_VALUE(PTLBD_LAST_OPC);
699         CHECK_VALUE(PTLBD_FIRST_OPC);
700
701         CHECK_VALUE(OBD_PING);
702
703         COMMENT("Sizes and Offsets");
704         BLANK_LINE();
705         check_lustre_handle();
706         check_lustre_msg();
707         check_obdo();
708         check_lov_mds_md_v1();
709         check_obd_statfs();
710         check_obd_ioobj();
711         check_niobuf_remote();
712         check_ost_body();
713         check_ll_fid();
714         check_mds_status_req();
715         check_mds_body();
716         check_mds_rec_setattr();
717         check_mds_rec_create();
718         check_mds_rec_link();
719         check_mds_rec_unlink();
720         check_mds_rec_rename();
721         check_lov_desc();
722         check_ldlm_res_id();
723         check_ldlm_extent();
724         check_ldlm_flock();
725         check_ldlm_intent();
726         check_ldlm_resource_desc();
727         check_ldlm_lock_desc();
728         check_ldlm_request();
729         check_ldlm_reply();
730         check_ptlbd_op();
731         check_ptlbd_niob();
732         check_ptlbd_rsp();
733         check_llog_logid();
734         check_llog_rec_hdr();
735         check_llog_rec_tail();
736         check_llog_log_hdr();
737         check_llog_cookie();
738         check_llogd_body();
739         check_llogd_conn_body();
740
741         printf("}\n\n");
742
743         return(0);
744 }