wirecheck.c

来自「lustre 1.6.5 source code」· C语言 代码 · 共 1,346 行 · 第 1/3 页

C
1,346
字号
        BLANK_LINE();        CHECK_STRUCT(llog_log_hdr);        CHECK_MEMBER(llog_log_hdr, llh_hdr);        CHECK_MEMBER(llog_log_hdr, llh_timestamp);        CHECK_MEMBER(llog_log_hdr, llh_count);        CHECK_MEMBER(llog_log_hdr, llh_bitmap_offset);        CHECK_MEMBER(llog_log_hdr, llh_size);        CHECK_MEMBER(llog_log_hdr, llh_flags);        CHECK_MEMBER(llog_log_hdr, llh_cat_idx);        CHECK_MEMBER(llog_log_hdr, llh_tgtuuid);        CHECK_MEMBER(llog_log_hdr, llh_reserved);        CHECK_MEMBER(llog_log_hdr, llh_bitmap);        CHECK_MEMBER(llog_log_hdr, llh_tail);}static voidcheck_llog_cookie(void){        BLANK_LINE();        CHECK_STRUCT(llog_cookie);        CHECK_MEMBER(llog_cookie, lgc_lgl);        CHECK_MEMBER(llog_cookie, lgc_subsys);        CHECK_MEMBER(llog_cookie, lgc_index);        CHECK_MEMBER(llog_cookie, lgc_padding);}static voidcheck_llogd_body(void){        BLANK_LINE();        CHECK_STRUCT(llogd_body);        CHECK_MEMBER(llogd_body, lgd_logid);        CHECK_MEMBER(llogd_body, lgd_ctxt_idx);        CHECK_MEMBER(llogd_body, lgd_llh_flags);        CHECK_MEMBER(llogd_body, lgd_index);        CHECK_MEMBER(llogd_body, lgd_saved_index);        CHECK_MEMBER(llogd_body, lgd_len);        CHECK_MEMBER(llogd_body, lgd_cur_offset);        CHECK_CVALUE(LLOG_ORIGIN_HANDLE_CREATE);        CHECK_CVALUE(LLOG_ORIGIN_HANDLE_NEXT_BLOCK);        CHECK_CVALUE(LLOG_ORIGIN_HANDLE_READ_HEADER);        CHECK_CVALUE(LLOG_ORIGIN_HANDLE_WRITE_REC);        CHECK_CVALUE(LLOG_ORIGIN_HANDLE_CLOSE);        CHECK_CVALUE(LLOG_ORIGIN_CONNECT);        CHECK_CVALUE(LLOG_CATINFO);        CHECK_CVALUE(LLOG_ORIGIN_HANDLE_PREV_BLOCK);        CHECK_CVALUE(LLOG_ORIGIN_HANDLE_DESTROY);}static voidcheck_llogd_conn_body(void){        BLANK_LINE();        CHECK_STRUCT(llogd_conn_body);        CHECK_MEMBER(llogd_conn_body, lgdc_gen);        CHECK_MEMBER(llogd_conn_body, lgdc_logid);        CHECK_MEMBER(llogd_conn_body, lgdc_ctxt_idx);}static voidcheck_mds_extent_desc(void){        BLANK_LINE();        CHECK_STRUCT(mds_extent_desc);        CHECK_MEMBER(mds_extent_desc, med_start);        CHECK_MEMBER(mds_extent_desc, med_len);        CHECK_MEMBER(mds_extent_desc, med_lmm);}static voidcheck_llog_array_rec(void){        BLANK_LINE();        CHECK_STRUCT(llog_array_rec);        CHECK_MEMBER(llog_array_rec, lmr_hdr);        CHECK_MEMBER(llog_array_rec, lmr_med);        CHECK_MEMBER(llog_array_rec, lmr_tail);}static voidcheck_qunit_data(void){        BLANK_LINE();        CHECK_STRUCT(qunit_data);        CHECK_MEMBER(qunit_data, qd_id);        CHECK_MEMBER(qunit_data, qd_flags);        CHECK_MEMBER(qunit_data, qd_count);        CHECK_MEMBER(qunit_data, qd_qunit);        CHECK_MEMBER(qunit_data, padding );}static voidcheck_qunit_data_old2(void){        BLANK_LINE();        CHECK_STRUCT(qunit_data_old2);        CHECK_MEMBER(qunit_data_old2, qd_id);        CHECK_MEMBER(qunit_data_old2, qd_flags);        CHECK_MEMBER(qunit_data_old2, qd_count);}static voidcheck_qunit_data_old(void){        BLANK_LINE();        CHECK_STRUCT(qunit_data_old);        CHECK_MEMBER(qunit_data_old, qd_id);        CHECK_MEMBER(qunit_data_old, qd_type);        CHECK_MEMBER(qunit_data_old, qd_count);        CHECK_MEMBER(qunit_data_old, qd_isblk);}static voidcheck_mgs_target_info(void){        BLANK_LINE();        CHECK_STRUCT(mgs_target_info);        CHECK_MEMBER(mgs_target_info, mti_lustre_ver);        CHECK_MEMBER(mgs_target_info, mti_stripe_index);        CHECK_MEMBER(mgs_target_info, mti_config_ver);        CHECK_MEMBER(mgs_target_info, mti_flags);        CHECK_MEMBER(mgs_target_info, mti_nid_count);        CHECK_MEMBER(mgs_target_info, mti_fsname);        CHECK_MEMBER(mgs_target_info, mti_svname);        CHECK_MEMBER(mgs_target_info, mti_uuid);        CHECK_MEMBER(mgs_target_info, mti_nids);        CHECK_MEMBER(mgs_target_info, mti_params);}static voidcheck_lustre_disk_data(void){        BLANK_LINE();        CHECK_STRUCT(lustre_disk_data);        CHECK_MEMBER(lustre_disk_data, ldd_magic);        CHECK_MEMBER(lustre_disk_data, ldd_feature_compat);        CHECK_MEMBER(lustre_disk_data, ldd_feature_rocompat);        CHECK_MEMBER(lustre_disk_data, ldd_feature_incompat);        CHECK_MEMBER(lustre_disk_data, ldd_config_ver);        CHECK_MEMBER(lustre_disk_data, ldd_flags);        CHECK_MEMBER(lustre_disk_data, ldd_svindex);        CHECK_MEMBER(lustre_disk_data, ldd_mount_type);        CHECK_MEMBER(lustre_disk_data, ldd_fsname);        CHECK_MEMBER(lustre_disk_data, ldd_svname);        CHECK_MEMBER(lustre_disk_data, ldd_uuid);        CHECK_MEMBER(lustre_disk_data, ldd_userdata);        CHECK_MEMBER(lustre_disk_data, ldd_mount_opts);        CHECK_MEMBER(lustre_disk_data, ldd_params);}static voidcheck_posix_acl_xattr_entry(void){        BLANK_LINE();        CHECK_STRUCT_TYPEDEF(posix_acl_xattr_entry);        CHECK_MEMBER_TYPEDEF(posix_acl_xattr_entry, e_tag);        CHECK_MEMBER_TYPEDEF(posix_acl_xattr_entry, e_perm);        CHECK_MEMBER_TYPEDEF(posix_acl_xattr_entry, e_id);}static voidcheck_posix_acl_xattr_header(void){        BLANK_LINE();        CHECK_STRUCT_TYPEDEF(posix_acl_xattr_header);        CHECK_MEMBER_TYPEDEF(posix_acl_xattr_header, a_version);        CHECK_MEMBER_TYPEDEF(posix_acl_xattr_header, a_entries);}static voidcheck_quota_adjust_qunit(void){        BLANK_LINE();        CHECK_STRUCT(quota_adjust_qunit);        CHECK_MEMBER(quota_adjust_qunit, qaq_flags);        CHECK_MEMBER(quota_adjust_qunit, qaq_id);        CHECK_MEMBER(quota_adjust_qunit, qaq_bunit_sz);        CHECK_MEMBER(quota_adjust_qunit, qaq_iunit_sz);}static voidsystem_string (char *cmdline, char *str, int len){        int   fds[2];        int   rc;        pid_t pid;        rc = pipe(fds);        if (rc != 0)                abort();        pid = fork();        if (pid == 0) {                /* child */                int   fd = fileno(stdout);                rc = dup2(fds[1], fd);                if (rc != fd)                        abort();                exit(system(cmdline));                /* notreached */        } else if ((int)pid < 0) {                abort();        } else {                FILE *f = fdopen(fds[0], "r");                if (f == NULL)                        abort();                close(fds[1]);                if (fgets(str, len, f) == NULL)                        abort();                if (waitpid(pid, &rc, 0) != pid)                        abort();                if (!WIFEXITED(rc) || WEXITSTATUS(rc) != 0)                        abort();                if (strnlen(str, len) == len)                        str[len - 1] = 0;                if (str[strlen(str) - 1] == '\n')                        str[strlen(str) - 1] = 0;                fclose(f);        }}intmain(int argc, char **argv){        char unameinfo[80];        char gccinfo[80];        system_string("uname -a", unameinfo, sizeof(unameinfo));        system_string(CC " -v 2>&1 | tail -1", gccinfo, sizeof(gccinfo));        printf ("void lustre_assert_wire_constants(void)\n"                "{\n"                "        /* Wire protocol assertions generated by 'wirecheck'\n"                "         * (make -C lustre/utils newwiretest)\n"                "         * running on %s\n"                "         * with %s */\n"                "\n", unameinfo, gccinfo);        BLANK_LINE ();        COMMENT("Constants...");        CHECK_DEFINE(LUSTRE_MSG_MAGIC_V1);        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);        CHECK_VALUE(PTL_RPC_MSG_REPLY);        CHECK_VALUE(MSG_LAST_REPLAY);        CHECK_VALUE(MSG_RESENT);        CHECK_VALUE(MSG_REPLAY);        CHECK_VALUE(MSG_CONNECT_RECOVERING);        CHECK_VALUE(MSG_CONNECT_RECONNECT);        CHECK_VALUE(MSG_CONNECT_REPLAYABLE);        CHECK_VALUE(OST_REPLY);        CHECK_VALUE(OST_GETATTR);        CHECK_VALUE(OST_SETATTR);        CHECK_VALUE(OST_READ);        CHECK_VALUE(OST_WRITE);        CHECK_VALUE(OST_CREATE);        CHECK_VALUE(OST_DESTROY);        CHECK_VALUE(OST_GET_INFO);        CHECK_VALUE(OST_CONNECT);        CHECK_VALUE(OST_DISCONNECT);        CHECK_VALUE(OST_PUNCH);        CHECK_VALUE(OST_OPEN);        CHECK_VALUE(OST_CLOSE);        CHECK_VALUE(OST_STATFS);        CHECK_VALUE(OST_SYNC);        CHECK_VALUE(OST_QUOTACHECK);        CHECK_VALUE(OST_QUOTACTL);        CHECK_VALUE(OST_QUOTA_ADJUST_QUNIT);        CHECK_VALUE(OST_LAST_OPC);        CHECK_DEFINE(OBD_OBJECT_EOF);        CHECK_VALUE(MDS_GETATTR);        CHECK_VALUE(MDS_GETATTR_NAME);        CHECK_VALUE(MDS_CLOSE);        CHECK_VALUE(MDS_REINT);        CHECK_VALUE(MDS_READPAGE);        CHECK_VALUE(MDS_CONNECT);        CHECK_VALUE(MDS_DISCONNECT);        CHECK_VALUE(MDS_GETSTATUS);        CHECK_VALUE(MDS_STATFS);        CHECK_VALUE(MDS_PIN);        CHECK_VALUE(MDS_UNPIN);        CHECK_VALUE(MDS_SYNC);        CHECK_VALUE(MDS_DONE_WRITING);        CHECK_VALUE(MDS_SET_INFO);        CHECK_VALUE(MDS_QUOTACHECK);        CHECK_VALUE(MDS_QUOTACTL);        CHECK_VALUE(MDS_LAST_OPC);        CHECK_VALUE(REINT_SETATTR);        CHECK_VALUE(REINT_CREATE);        CHECK_VALUE(REINT_LINK);        CHECK_VALUE(REINT_UNLINK);        CHECK_VALUE(REINT_RENAME);        CHECK_VALUE(REINT_OPEN);        CHECK_VALUE(REINT_MAX);        CHECK_VALUE(MGS_CONNECT);        CHECK_VALUE(MGS_DISCONNECT);        CHECK_VALUE(MGS_EXCEPTION);        CHECK_VALUE(MGS_TARGET_REG);        CHECK_VALUE(MGS_TARGET_DEL);        CHECK_VALUE(MGS_SET_INFO);        CHECK_VALUE(DISP_IT_EXECD);        CHECK_VALUE(DISP_LOOKUP_EXECD);        CHECK_VALUE(DISP_LOOKUP_NEG);        CHECK_VALUE(DISP_LOOKUP_POS);        CHECK_VALUE(DISP_OPEN_CREATE);        CHECK_VALUE(DISP_OPEN_OPEN);        CHECK_VALUE(MDS_STATUS_CONN);        CHECK_VALUE(MDS_STATUS_LOV);        CHECK_VALUE(LDLM_ENQUEUE);        CHECK_VALUE(LDLM_CONVERT);        CHECK_VALUE(LDLM_CANCEL);        CHECK_VALUE(LDLM_BL_CALLBACK);        CHECK_VALUE(LDLM_CP_CALLBACK);        CHECK_VALUE(LDLM_GL_CALLBACK);        CHECK_VALUE(LDLM_LAST_OPC);        CHECK_VALUE(LCK_EX);        CHECK_VALUE(LCK_PW);        CHECK_VALUE(LCK_PR);        CHECK_VALUE(LCK_CW);        CHECK_VALUE(LCK_CR);        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);        CHECK_CVALUE(LDLM_FLOCK);        CHECK_CVALUE(LDLM_IBITS);        CHECK_VALUE(OBD_PING);        CHECK_VALUE(OBD_LOG_CANCEL);        CHECK_VALUE(OBD_QC_CALLBACK);        CHECK_VALUE(OBD_LAST_OPC);        CHECK_VALUE(QUOTA_DQACQ);        CHECK_VALUE(QUOTA_DQREL);        CHECK_VALUE(MGS_CONNECT);        CHECK_VALUE(MGS_DISCONNECT);        CHECK_VALUE(MGS_EXCEPTION);           CHECK_VALUE(MGS_TARGET_REG);        CHECK_VALUE(MGS_TARGET_DEL);        CHECK_VALUE(MGS_SET_INFO);        COMMENT("Sizes and Offsets");        BLANK_LINE();        CHECK_STRUCT(obd_uuid);        check_lustre_handle();        check_lustre_msg_v1();        check_lustre_msg_v2();        printf("        LASSERT(offsetof(struct lustre_msg_v1, lm_magic) == "               "offsetof(struct lustre_msg_v2, lm_magic));\n");        check_ptlrpc_body();        check_obd_connect_data();        check_obdo();        check_lov_mds_md_v1();        check_lov_mds_md_join();        check_obd_statfs();        check_obd_ioobj();        check_obd_quotactl();        check_niobuf_remote();        check_ost_body();        check_ll_fid();        check_mds_status_req();        check_mds_body();        check_mds_rec_setattr();        check_mds_rec_create();        check_mds_rec_link();        check_mds_rec_unlink();        check_mds_rec_rename();        check_mds_rec_join();        check_lov_desc();        check_ldlm_res_id();        check_ldlm_extent();        check_ldlm_flock();        check_ldlm_inodebits();        check_ldlm_intent();        check_ldlm_resource_desc();        check_ldlm_lock_desc();        check_ldlm_request();        check_ldlm_reply();        check_ldlm_lvb();        check_llog_logid();        check_llog_catid();        check_llog_rec_hdr();        check_llog_rec_tail();        check_llog_logid_rec();        check_llog_create_rec();        check_llog_orphan_rec();        check_llog_unlink_rec();        check_llog_setattr_rec();        check_llog_size_change_rec();        check_llog_gen();        check_llog_gen_rec();        check_llog_log_hdr();        check_llog_cookie();        check_llogd_body();        check_llogd_conn_body();        check_llog_array_rec();        check_mds_extent_desc();        check_qunit_data();        check_qunit_data_old2();        check_qunit_data_old();        check_quota_adjust_qunit();        check_mgs_target_info();        check_lustre_disk_data();        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();        printf("#endif\n");        printf("}\n\n");        return(0);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?