Whamcloud - gitweb
Branch HEAD
[fs/lustre-release.git] / lustre / utils / wirecheck.c
index bd8aa1a..99c80a7 100644 (file)
@@ -1,6 +1,39 @@
 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
  * vim:expandtab:shiftwidth=8:tabstop=8:
+ *
+ * GPL HEADER START
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 only,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License version 2 for more details (a copy is included
+ * in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License
+ * version 2 along with this program; If not, see
+ * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ * GPL HEADER END
  */
+/*
+ * Copyright  2008 Sun Microsystems, Inc. All rights reserved
+ * Use is subject to license terms.
+ */
+/*
+ * This file is part of Lustre, http://www.lustre.org/
+ * Lustre is a trademark of Sun Microsystems, Inc.
+ */
+
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -110,8 +143,8 @@ check_lustre_msg_v2(void)
         CHECK_MEMBER(lustre_msg_v2, lm_secflvr);
         CHECK_MEMBER(lustre_msg_v2, lm_magic);
         CHECK_MEMBER(lustre_msg_v2, lm_repsize);
-        CHECK_MEMBER(lustre_msg_v2, lm_timeout);
-        CHECK_MEMBER(lustre_msg_v2, lm_padding_1);
+        CHECK_MEMBER(lustre_msg_v2, lm_cksum);
+        CHECK_MEMBER(lustre_msg_v2, lm_flags);
         CHECK_MEMBER(lustre_msg_v2, lm_padding_2);
         CHECK_MEMBER(lustre_msg_v2, lm_padding_3);
         CHECK_MEMBER(lustre_msg_v2, lm_buflens[0]);
@@ -134,8 +167,8 @@ check_ptlrpc_body(void)
         CHECK_MEMBER(ptlrpc_body, pb_flags);
         CHECK_MEMBER(ptlrpc_body, pb_op_flags);
         CHECK_MEMBER(ptlrpc_body, pb_conn_cnt);
-        CHECK_MEMBER(ptlrpc_body, pb_padding_1);
-        CHECK_MEMBER(ptlrpc_body, pb_padding_2);
+        CHECK_MEMBER(ptlrpc_body, pb_timeout);
+        CHECK_MEMBER(ptlrpc_body, pb_service_time);
         CHECK_MEMBER(ptlrpc_body, pb_slv);
         CHECK_MEMBER(ptlrpc_body, pb_limit);
 }
@@ -213,9 +246,13 @@ check_obdo(void)
         CHECK_MEMBER(obdo, o_mds);
         CHECK_MEMBER(obdo, o_stripe_idx);
         CHECK_MEMBER(obdo, o_padding_1);
-        CHECK_MEMBER(obdo, o_inline);
-
-        CHECK_VALUE(OBD_INLINESZ);
+        CHECK_MEMBER(obdo, o_handle);
+        CHECK_MEMBER(obdo, o_lcookie);
+        CHECK_MEMBER(obdo, o_padding_2);
+        CHECK_MEMBER(obdo, o_padding_3);
+        CHECK_MEMBER(obdo, o_padding_4);
+        CHECK_MEMBER(obdo, o_padding_5);
+        CHECK_MEMBER(obdo, o_padding_6);       
 
         CHECK_CDEFINE(OBD_MD_FLID);
         CHECK_CDEFINE(OBD_MD_FLATIME);
@@ -231,7 +268,6 @@ check_obdo(void)
         CHECK_CDEFINE(OBD_MD_FLFLAGS);
         CHECK_CDEFINE(OBD_MD_FLNLINK);
         CHECK_CDEFINE(OBD_MD_FLGENER);
-        CHECK_CDEFINE(OBD_MD_FLINLINE);
         CHECK_CDEFINE(OBD_MD_FLRDEV);
         CHECK_CDEFINE(OBD_MD_FLEASIZE);
         CHECK_CDEFINE(OBD_MD_LINKNAME);
@@ -266,8 +302,8 @@ check_obdo(void)
         CHECK_CDEFINE(OBD_FL_TRUNCLOCK);
         CHECK_CDEFINE(OBD_FL_CKSUM_CRC32);
         CHECK_CDEFINE(OBD_FL_CKSUM_ADLER);
-        CHECK_CDEFINE(OBD_CKSUM_CRC32);
-        CHECK_CDEFINE(OBD_CKSUM_ADLER);
+        CHECK_CVALUE(OBD_CKSUM_CRC32);
+        CHECK_CVALUE(OBD_CKSUM_ADLER);
 }
 
 static void
@@ -308,6 +344,33 @@ check_lov_mds_md_join(void)
 }
 
 static void
+check_lov_mds_md_v3(void)
+{
+        BLANK_LINE();
+        CHECK_STRUCT(lov_mds_md_v3);
+        CHECK_MEMBER(lov_mds_md_v3, lmm_magic);
+        CHECK_MEMBER(lov_mds_md_v3, lmm_pattern);
+        CHECK_MEMBER(lov_mds_md_v3, lmm_object_id);
+        CHECK_MEMBER(lov_mds_md_v3, lmm_object_gr);
+        CHECK_MEMBER(lov_mds_md_v3, lmm_stripe_size);
+        CHECK_MEMBER(lov_mds_md_v3, lmm_stripe_count);
+        CHECK_MEMBER(lov_mds_md_v3, lmm_pool_name);
+        CHECK_MEMBER(lov_mds_md_v3, lmm_objects);
+
+        BLANK_LINE();
+        CHECK_STRUCT(lov_ost_data_v1);
+        CHECK_MEMBER(lov_ost_data_v1, l_object_id);
+        CHECK_MEMBER(lov_ost_data_v1, l_object_gr);
+        CHECK_MEMBER(lov_ost_data_v1, l_ost_gen);
+        CHECK_MEMBER(lov_ost_data_v1, l_ost_idx);
+
+        CHECK_CDEFINE(LOV_MAGIC_V3);
+
+        CHECK_VALUE(LOV_PATTERN_RAID0);
+        CHECK_VALUE(LOV_PATTERN_RAID1);
+}
+
+static void
 check_obd_statfs(void)
 {
         BLANK_LINE();
@@ -719,6 +782,19 @@ check_ldlm_lvb(void)
         CHECK_MEMBER(ost_lvb, lvb_blocks);
 }
 
+static void
+check_cfg_marker(void)
+{
+        BLANK_LINE();
+        CHECK_STRUCT(cfg_marker);
+        CHECK_MEMBER(cfg_marker, cm_step);
+        CHECK_MEMBER(cfg_marker, cm_flags);
+        CHECK_MEMBER(cfg_marker, cm_vers);
+        CHECK_MEMBER(cfg_marker, cm_createtime);
+        CHECK_MEMBER(cfg_marker, cm_canceltime);
+        CHECK_MEMBER(cfg_marker, cm_tgtname);
+        CHECK_MEMBER(cfg_marker, cm_comment);
+}
 
 static void
 check_llog_logid(void)
@@ -1010,7 +1086,6 @@ check_lustre_disk_data(void)
         CHECK_MEMBER(lustre_disk_data, ldd_params);
 }
 
-#ifdef LIBLUSTRE_POSIX_ACL
 static void
 check_posix_acl_xattr_entry(void)
 {
@@ -1029,7 +1104,50 @@ check_posix_acl_xattr_header(void)
         CHECK_MEMBER_TYPEDEF(posix_acl_xattr_header, a_version);
         CHECK_MEMBER_TYPEDEF(posix_acl_xattr_header, a_entries);
 }
-#endif
+
+static void
+check_ll_user_fiemap(void)
+{
+        BLANK_LINE();
+        CHECK_STRUCT(ll_user_fiemap);
+        CHECK_MEMBER(ll_user_fiemap, fm_start);
+        CHECK_MEMBER(ll_user_fiemap, fm_length);
+        CHECK_MEMBER(ll_user_fiemap, fm_flags);
+        CHECK_MEMBER(ll_user_fiemap, fm_mapped_extents);
+        CHECK_MEMBER(ll_user_fiemap, fm_extent_count);
+        CHECK_MEMBER(ll_user_fiemap, fm_reserved);
+        CHECK_MEMBER(ll_user_fiemap, fm_extents);
+
+        CHECK_CDEFINE(FIEMAP_FLAG_SYNC);
+        CHECK_CDEFINE(FIEMAP_FLAG_XATTR);
+        CHECK_CDEFINE(FIEMAP_FLAG_DEVICE_ORDER);
+}
+
+static void
+check_ll_fiemap_extent(void)
+{
+        BLANK_LINE();
+        CHECK_STRUCT(ll_fiemap_extent);
+        CHECK_MEMBER(ll_fiemap_extent, fe_logical);
+        CHECK_MEMBER(ll_fiemap_extent, fe_physical);
+        CHECK_MEMBER(ll_fiemap_extent, fe_length);
+        CHECK_MEMBER(ll_fiemap_extent, fe_flags);
+        CHECK_MEMBER(ll_fiemap_extent, fe_device);
+
+        CHECK_CDEFINE(FIEMAP_EXTENT_LAST);
+        CHECK_CDEFINE(FIEMAP_EXTENT_UNKNOWN);
+        CHECK_CDEFINE(FIEMAP_EXTENT_DELALLOC);
+        CHECK_CDEFINE(FIEMAP_EXTENT_NO_DIRECT);
+        CHECK_CDEFINE(FIEMAP_EXTENT_SECONDARY);
+        CHECK_CDEFINE(FIEMAP_EXTENT_NET);
+        CHECK_CDEFINE(FIEMAP_EXTENT_DATA_COMPRESSED);
+        CHECK_CDEFINE(FIEMAP_EXTENT_DATA_ENCRYPTED);
+        CHECK_CDEFINE(FIEMAP_EXTENT_NOT_ALIGNED);
+        CHECK_CDEFINE(FIEMAP_EXTENT_DATA_INLINE);
+        CHECK_CDEFINE(FIEMAP_EXTENT_DATA_TAIL);
+        CHECK_CDEFINE(FIEMAP_EXTENT_UNWRITTEN);
+        CHECK_CDEFINE(FIEMAP_EXTENT_MERGED);
+}
 
 static void
 system_string (char *cmdline, char *str, int len)
@@ -1094,7 +1212,7 @@ main(int argc, char **argv)
         printf ("void lustre_assert_wire_constants(void)\n"
                 "{\n"
                 "        /* Wire protocol assertions generated by 'wirecheck'\n"
-                "         * (make -C lustre/utils newwirecheck)\n"
+                "         * (make -C lustre/utils newwiretest)\n"
                 "         * running on %s\n"
                 "         * with %s */\n"
                 "\n", unameinfo, gccinfo);
@@ -1104,6 +1222,7 @@ main(int argc, char **argv)
         COMMENT("Constants...");
         CHECK_DEFINE(LUSTRE_MSG_MAGIC_V2);
         CHECK_DEFINE(PTLRPC_MSG_VERSION);
+        CHECK_VALUE(MSGHDR_AT_SUPPORT);
 
         CHECK_VALUE(PTL_RPC_MSG_REQUEST);
         CHECK_VALUE(PTL_RPC_MSG_ERR);
@@ -1197,6 +1316,7 @@ main(int argc, char **argv)
         CHECK_VALUE(LCK_NL);
         CHECK_VALUE(LCK_GROUP);
         CHECK_VALUE(LCK_MAXMODE);
+        CHECK_VALUE(LCK_MODE_NUM);
 
         CHECK_CVALUE(LDLM_PLAIN);
         CHECK_CVALUE(LDLM_EXTENT);
@@ -1227,6 +1347,7 @@ main(int argc, char **argv)
         check_obd_connect_data();
         check_obdo();
         check_lov_mds_md_v1();
+        check_lov_mds_md_v3();
         check_lov_mds_md_join();
         check_obd_statfs();
         check_obd_ioobj();
@@ -1253,6 +1374,7 @@ main(int argc, char **argv)
         check_ldlm_request();
         check_ldlm_reply();
         check_ldlm_lvb();
+        check_cfg_marker();
         check_llog_logid();
         check_llog_catid();
         check_llog_rec_hdr();
@@ -1275,10 +1397,15 @@ main(int argc, char **argv)
         check_qunit_data_old();
         check_mgs_target_info();
         check_lustre_disk_data();
-#ifdef LIBLUSTRE_POSIX_ACL
+        check_ll_user_fiemap();
+        check_ll_fiemap_extent();
+        printf("#ifdef LIBLUSTRE_POSIX_ACL\n");
+#ifndef LIBLUSTRE_POSIX_ACL
+#error build generator without LIBLUSTRE_POSIX_ACL defined - produce wrong check code.
+#endif
         check_posix_acl_xattr_entry();
         check_posix_acl_xattr_header();
-#endif
+        printf("#endif\n");
 
 
         printf("}\n\n");