📄 hubmd.h
字号:
* the 8 protection values in the word was bad and the AE overrun bit * * indicates whether multiple AE errors were received. * * If the UCE and AE valid bits are clear, but the CE valid bit is * * set, the address field contains a pointer to the Hspec address of * * the offending directory entry, the syndrome field contains the bad * * syndrome, and the CE overrun bit indicates whether multiple * * single-bit errors were received. * * * ************************************************************************/#ifdef LITTLE_ENDIANtypedef union md_dir_error_u { bdrkreg_t md_dir_error_regval; struct { bdrkreg_t de_reserved_3 : 3; bdrkreg_t de_hspec_addr : 30; bdrkreg_t de_reserved_2 : 7; bdrkreg_t de_bad_syn : 7; bdrkreg_t de_reserved_1 : 1; bdrkreg_t de_bad_protect : 4; bdrkreg_t de_prot_index : 3; bdrkreg_t de_reserved : 1; bdrkreg_t de_ace_overrun : 1; bdrkreg_t de_ce_overrun : 1; bdrkreg_t de_ae_overrun : 1; bdrkreg_t de_uce_overrun : 1; bdrkreg_t de_ace_valid : 1; bdrkreg_t de_ce_valid : 1; bdrkreg_t de_ae_valid : 1; bdrkreg_t de_uce_valid : 1; } md_dir_error_fld_s;} md_dir_error_u_t;#elsetypedef union md_dir_error_u { bdrkreg_t md_dir_error_regval; struct { bdrkreg_t de_uce_valid : 1; bdrkreg_t de_ae_valid : 1; bdrkreg_t de_ce_valid : 1; bdrkreg_t de_ace_valid : 1; bdrkreg_t de_uce_overrun : 1; bdrkreg_t de_ae_overrun : 1; bdrkreg_t de_ce_overrun : 1; bdrkreg_t de_ace_overrun : 1; bdrkreg_t de_reserved : 1; bdrkreg_t de_prot_index : 3; bdrkreg_t de_bad_protect : 4; bdrkreg_t de_reserved_1 : 1; bdrkreg_t de_bad_syn : 7; bdrkreg_t de_reserved_2 : 7; bdrkreg_t de_hspec_addr : 30; bdrkreg_t de_reserved_3 : 3; } md_dir_error_fld_s;} md_dir_error_u_t;#endif/************************************************************************ * * * Description: Contains information on uncorrectable and * * correctable directory ECC errors, along with protection ECC * * errors. The priority of ECC errors latched is: uncorrectable * * directory, protection error, correctable directory. Thus the valid * * bits signal: * * 1xxx: uncorrectable directory ECC error (UCE) * * 01xx: access protection double bit error (AE) * * 001x: correctable directory ECC error (CE) * * 0001: access protection correctable error (ACE) * * If the UCE valid bit is set, the address field contains a pointer * * to the Hspec address of the offending directory entry, the * * syndrome field contains the bad syndrome, and the UCE overrun bit * * indicates whether multiple double-bit errors were received. * * If the UCE valid bit is clear but the AE valid bit is set, the * * address field contains a pointer to the Hspec address of the * * offending protection entry, the Bad Protection field contains the * * 4-bit bad protection value, the PROT_INDEX field shows which of * * the 8 protection values in the word was bad and the AE overrun bit * * indicates whether multiple AE errors were received. * * If the UCE and AE valid bits are clear, but the CE valid bit is * * set, the address field contains a pointer to the Hspec address of * * the offending directory entry, the syndrome field contains the bad * * syndrome, and the CE overrun bit indicates whether multiple * * single-bit errors were received. * * * ************************************************************************/#ifdef LITTLE_ENDIANtypedef union md_dir_error_clr_u { bdrkreg_t md_dir_error_clr_regval; struct { bdrkreg_t dec_reserved_3 : 3; bdrkreg_t dec_hspec_addr : 30; bdrkreg_t dec_reserved_2 : 7; bdrkreg_t dec_bad_syn : 7; bdrkreg_t dec_reserved_1 : 1; bdrkreg_t dec_bad_protect : 4; bdrkreg_t dec_prot_index : 3; bdrkreg_t dec_reserved : 1; bdrkreg_t dec_ace_overrun : 1; bdrkreg_t dec_ce_overrun : 1; bdrkreg_t dec_ae_overrun : 1; bdrkreg_t dec_uce_overrun : 1; bdrkreg_t dec_ace_valid : 1; bdrkreg_t dec_ce_valid : 1; bdrkreg_t dec_ae_valid : 1; bdrkreg_t dec_uce_valid : 1; } md_dir_error_clr_fld_s;} md_dir_error_clr_u_t;#elsetypedef union md_dir_error_clr_u { bdrkreg_t md_dir_error_clr_regval; struct { bdrkreg_t dec_uce_valid : 1; bdrkreg_t dec_ae_valid : 1; bdrkreg_t dec_ce_valid : 1; bdrkreg_t dec_ace_valid : 1; bdrkreg_t dec_uce_overrun : 1; bdrkreg_t dec_ae_overrun : 1; bdrkreg_t dec_ce_overrun : 1; bdrkreg_t dec_ace_overrun : 1; bdrkreg_t dec_reserved : 1; bdrkreg_t dec_prot_index : 3; bdrkreg_t dec_bad_protect : 4; bdrkreg_t dec_reserved_1 : 1; bdrkreg_t dec_bad_syn : 7; bdrkreg_t dec_reserved_2 : 7; bdrkreg_t dec_hspec_addr : 30; bdrkreg_t dec_reserved_3 : 3; } md_dir_error_clr_fld_s;} md_dir_error_clr_u_t;#endif/************************************************************************ * * * Contains information on requests that encounter no valid protocol * * table entry. * * * ************************************************************************/#ifdef LITTLE_ENDIANtypedef union md_protocol_error_u { bdrkreg_t md_protocol_error_regval; struct { bdrkreg_t pe_overrun : 1; bdrkreg_t pe_pointer_me : 1; bdrkreg_t pe_reserved_1 : 1; bdrkreg_t pe_address : 30; bdrkreg_t pe_reserved : 1; bdrkreg_t pe_ptr1_btmbits : 3; bdrkreg_t pe_dir_format : 2; bdrkreg_t pe_dir_state : 3; bdrkreg_t pe_priority : 1; bdrkreg_t pe_access : 1; bdrkreg_t pe_msg_type : 8; bdrkreg_t pe_initiator : 11; bdrkreg_t pe_valid : 1; } md_protocol_error_fld_s;} md_protocol_error_u_t;#elsetypedef union md_protocol_error_u { bdrkreg_t md_protocol_error_regval; struct { bdrkreg_t pe_valid : 1; bdrkreg_t pe_initiator : 11; bdrkreg_t pe_msg_type : 8; bdrkreg_t pe_access : 1; bdrkreg_t pe_priority : 1; bdrkreg_t pe_dir_state : 3; bdrkreg_t pe_dir_format : 2; bdrkreg_t pe_ptr1_btmbits : 3; bdrkreg_t pe_reserved : 1; bdrkreg_t pe_address : 30; bdrkreg_t pe_reserved_1 : 1; bdrkreg_t pe_pointer_me : 1; bdrkreg_t pe_overrun : 1; } md_protocol_error_fld_s;} md_protocol_error_u_t;#endif/************************************************************************ * * * Contains information on requests that encounter no valid protocol * * table entry. * * * ************************************************************************/#ifdef LITTLE_ENDIANtypedef union md_protocol_err_clr_u { bdrkreg_t md_protocol_err_clr_regval; struct { bdrkreg_t pec_overrun : 1; bdrkreg_t pec_pointer_me : 1; bdrkreg_t pec_reserved_1 : 1; bdrkreg_t pec_address : 30; bdrkreg_t pec_reserved : 1; bdrkreg_t pec_ptr1_btmbits : 3; bdrkreg_t pec_dir_format : 2; bdrkreg_t pec_dir_state : 3; bdrkreg_t pec_priority : 1; bdrkreg_t pec_access : 1; bdrkreg_t pec_msg_type : 8; bdrkreg_t pec_initiator : 11; bdrkreg_t pec_valid : 1; } md_protocol_err_clr_fld_s;} md_protocol_err_clr_u_t;#elsetypedef union md_protocol_err_clr_u { bdrkreg_t md_protocol_err_clr_regval; struct { bdrkreg_t pec_valid : 1; bdrkreg_t pec_initiator : 11; bdrkreg_t pec_msg_type : 8; bdrkreg_t pec_access : 1; bdrkreg_t pec_priority : 1; bdrkreg_t pec_dir_state : 3; bdrkreg_t pec_dir_format : 2; bdrkreg_t pec_ptr1_btmbits : 3; bdrkreg_t pec_reserved : 1; bdrkreg_t pec_address : 30; bdrkreg_t pec_reserved_1 : 1; bdrkreg_t pec_pointer_me : 1; bdrkreg_t pec_overrun : 1; } md_protocol_err_clr_fld_s;} md_protocol_err_clr_u_t;#endif/************************************************************************ * * * Contains the address of the page and the requestor which caused a * * migration threshold to be exceeded. Also contains the type of * * threshold exceeded and an overrun bit. For Value mode type * * interrupts, it indicates whether the local or the remote counter * * triggered the interrupt. Unlike most registers, when the overrun * * bit is set the register contains information on the most recent * * (the last) migration candidate. * * * ************************************************************************/#ifdef LITTLE_ENDIANtypedef union md_mig_candidate_u { bdrkreg_t md_mig_candidate_regval; struct { bdrkreg_t mc_address : 21; bdrkreg_t mc_initiator : 11; bdrkreg_t mc_overrun : 1; bdrkreg_t mc_type : 1; bdrkreg_t mc_local : 1; bdrkreg_t mc_reserved : 28; bdrkreg_t mc_valid : 1; } md_mig_candidate_fld_s;} md_mig_candidate_u_t;#elsetypedef union md_mig_candidate_u { bdrkreg_t md_mig_candidate_regval; struct { bdrkreg_t mc_valid : 1; bdrkreg_t mc_reserved : 28; bdrkreg_t mc_local : 1; bdrkreg_t mc_type : 1; bdrkreg_t mc_overrun : 1; bdrkreg_t mc_initiator : 11; bdrkreg_t mc_address : 21; } md_mig_candidate_fld_s;} md_mig_candidate_u_t;#endif/************************************************************************ * * * Contains the address of the page and the requestor which caused a * * migration threshold to be exceeded. Also contains the type of * * threshold exceeded and an overrun bit. For Value mode type * * interrupts, it indicates whether the local or the remote counter * * triggered the interrupt. Unlike most registers, when the overrun * * bit is set the register contains information on the most recent * * (the last) migration candidate. * * * ************************************************************************/#ifdef LITTLE_ENDIANtypedef union md_mig_candidate_clr_u { bdrkreg_t md_mig_candidate_clr_regval; struct { bdrkreg_t mcc_address : 21; bdrkreg_t mcc_initiator : 11; bdrkreg_t mcc_overrun : 1; bdrkreg_t mcc_type : 1; bdrkreg_t mcc_local : 1; bdrkreg_t mcc_reserved : 28; bdrkreg_t mcc_valid : 1; } md_mig_candidate_clr_fld_s;} md_mig_candidate_clr_u_t;#elsetypedef union md_mig_candidate_clr_u { bdrkreg_t md_mig_candidate_clr_regval; struct { bdrkreg_t mcc_valid : 1; bdrkreg_t mcc_reserved : 28; bdrkreg_t mcc_local : 1; bdrkreg_t mcc_type : 1; bdrkreg_t mcc_overrun : 1; bdrkreg_t mcc_initiator : 11; bdrkreg_t mcc_address : 21; } md_mig_candidate_clr_fld_s;} md_mig_candidate_clr_u_t;#endif/************************************************************************ * * * Controls the generation of page-migration interrupts and loading * * of the MIGRATION_CANDIDATE register for pages which are using the * * difference between the requestor and home counts. If the * * difference is greater-than or equal to than the threshold * * contained in the register, and the valid bit is set, the migration * * candidate is loaded (and an interrupt generated if enabled by the * * page migration mode). * * * *************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -