struct hppa_pim_regs {
uint32_t pim_regs_r0;
uint32_t pim_regs_r1;
uint32_t pim_regs_r2;
uint32_t pim_regs_r3;
uint32_t pim_regs_r4;
uint32_t pim_regs_r5;
uint32_t pim_regs_r6;
uint32_t pim_regs_r7;
uint32_t pim_regs_r8;
uint32_t pim_regs_r9;
uint32_t pim_regs_r10;
uint32_t pim_regs_r11;
uint32_t pim_regs_r12;
uint32_t pim_regs_r13;
uint32_t pim_regs_r14;
uint32_t pim_regs_r15;
uint32_t pim_regs_r16;
uint32_t pim_regs_r17;
uint32_t pim_regs_r18;
uint32_t pim_regs_r19;
uint32_t pim_regs_r20;
uint32_t pim_regs_r21;
uint32_t pim_regs_r22;
uint32_t pim_regs_r23;
uint32_t pim_regs_r24;
uint32_t pim_regs_r25;
uint32_t pim_regs_r26;
uint32_t pim_regs_r27;
uint32_t pim_regs_r28;
uint32_t pim_regs_r29;
uint32_t pim_regs_r30;
uint32_t pim_regs_r31;
uint32_t pim_regs_cr0;
uint32_t pim_regs_cr1;
uint32_t pim_regs_cr2;
uint32_t pim_regs_cr3;
uint32_t pim_regs_cr4;
uint32_t pim_regs_cr5;
uint32_t pim_regs_cr6;
uint32_t pim_regs_cr7;
uint32_t pim_regs_cr8;
uint32_t pim_regs_cr9;
uint32_t pim_regs_cr10;
uint32_t pim_regs_cr11;
uint32_t pim_regs_cr12;
uint32_t pim_regs_cr13;
uint32_t pim_regs_cr14;
uint32_t pim_regs_cr15;
uint32_t pim_regs_cr16;
uint32_t pim_regs_cr17;
uint32_t pim_regs_cr18;
uint32_t pim_regs_cr19;
uint32_t pim_regs_cr20;
uint32_t pim_regs_cr21;
uint32_t pim_regs_cr22;
uint32_t pim_regs_cr23;
uint32_t pim_regs_cr24;
uint32_t pim_regs_cr25;
uint32_t pim_regs_cr26;
uint32_t pim_regs_cr27;
uint32_t pim_regs_cr28;
uint32_t pim_regs_cr29;
uint32_t pim_regs_cr30;
uint32_t pim_regs_cr31;
uint32_t pim_regs_sr0;
uint32_t pim_regs_sr1;
uint32_t pim_regs_sr2;
uint32_t pim_regs_sr3;
uint32_t pim_regs_sr4;
uint32_t pim_regs_sr5;
uint32_t pim_regs_sr6;
uint32_t pim_regs_sr7;
uint32_t pim_regs_iisq_tail;
uint32_t pim_regs_iioq_tail;
};
struct hppa_pim_checks {
uint32_t pim_check_type;
#define PIM_CHECK_CACHE (1 << 31)
#define PIM_CHECK_TLB (1 << 30)
#define PIM_CHECK_BUS (1 << 29)
#define PIM_CHECK_ASSISTS (1 << 28)
#define PIM_CHECK_BITS \
"\177\020" \
"b\037cache\0" \
"b\036tlb\0" \
"b\035bus\0" \
"b\034assists\0"
uint32_t pim_check_cpu_state;
#define PIM_CPU_IQV (1 << 31)
#define PIM_CPU_IQF (1 << 30)
#define PIM_CPU_IPV (1 << 29)
#define PIM_CPU_GRV (1 << 28)
#define PIM_CPU_CRV (1 << 27)
#define PIM_CPU_SRV (1 << 26)
#define PIM_CPU_TRV (1 << 25)
#define PIM_CPU_BITS \
"\177\020" \
"b\037iqv\0" \
"b\036iqf\0" \
"b\035ipv\0" \
"b\034grv\0" \
"b\033crv\0" \
"b\032srv\0" \
"b\031trv\0"
#define PIM_CPU_HPMC_TL(cs) (((cs) >> 4) & 0x3)
#define PIM_CPU_HPMC_HD (1 << 3)
#define PIM_CPU_HPMC_SIS (1 << 2)
#define PIM_CPU_HPMC_CS(cs) ((cs) & 0x3)
#define PIM_CPU_HPMC_BITS \
PIM_CPU_BITS \
"f\004\002tl\0" \
"b\003hd\0" \
"b\002sis\0" \
"f\000\002cs\0"
uint32_t pim_check_reserved_0;
uint32_t pim_check_cache;
#define PIM_CACHE_ICC (1 << 31)
#define PIM_CACHE_DCC (1 << 30)
#define PIM_CACHE_TC (1 << 29)
#define PIM_CACHE_DC (1 << 28)
#define PIM_CACHE_CRG (1 << 27)
#define PIM_CACHE_LC (1 << 26)
#define PIM_CACHE_RCC (1 << 25)
#define PIM_CACHE_PADD(cc) ((cc) & 0x000fffff)
#define PIM_CACHE_BITS \
"\177\020" \
"b\037icc\0" \
"b\036dcc\0" \
"b\035tc\0" \
"b\034dc\0" \
"b\033crg\0" \
"b\032lc\0" \
"b\031rcc\0" \
"f\000\030paddr\0"
uint32_t pim_check_tlb;
#define PIM_TLB_ITC (1 << 31)
#define PIM_TLB_DTC (1 << 30)
#define PIM_TLB_TRG (1 << 29)
#define PIM_TLB_TUC (1 << 28)
#define PIM_TLB_TNF (1 << 27)
#define PIM_TLB_BITS \
"\177\020" \
"b\037itc\0" \
"b\036dtc\0" \
"b\035trg\0" \
"b\034tuc\0" \
"b\033tnf\0" \
uint32_t pim_check_bus;
#define PIM_BUS_RSV (1 << 21)
#define PIM_BUS_RQV (1 << 20)
#define PIM_BUS_VAR(bc) (((bc) >> 16) & 0xf)
#define PIM_BUS_TYPE(bc) (((bc) >> 12) & 0xf)
#define PIM_BUS_SIZE(bc) (((bc) >> 8) & 0xf)
#define PIM_BUS_PIV (1 << 7)
#define PIM_BUS_BSV (1 << 6)
#define PIM_BUS_STAT(bc) ((bc) & 0x3f)
#define PIM_BUS_BITS \
"\177\020" \
"b\025rsv\0" \
"b\024rqv\0" \
"f\020\004var\0" \
"f\014\004type\0" \
"f\010\004size\0" \
"b\007piv\0" \
"b\006bsv\0" \
"f\000\006stat\0"
uint32_t pim_check_assist;
#define PIM_ASSIST_COC (1 << 31)
#define PIM_ASSIST_SC (1 << 30)
#define PIM_ASSIST_BITS "\020\037COC\036SC"
uint32_t pim_check_reserved_1;
uint32_t pim_check_assist_state;
uint32_t pim_check_responder;
uint32_t pim_check_requestor;
uint32_t pim_check_path_info;
};
struct hppa_pim_fpregs {
uint64_t pim_fpregs_fp0;
uint64_t pim_fpregs_fp1;
uint64_t pim_fpregs_fp2;
uint64_t pim_fpregs_fp3;
uint64_t pim_fpregs_fp4;
uint64_t pim_fpregs_fp5;
uint64_t pim_fpregs_fp6;
uint64_t pim_fpregs_fp7;
uint64_t pim_fpregs_fp8;
uint64_t pim_fpregs_fp9;
uint64_t pim_fpregs_fp10;
uint64_t pim_fpregs_fp11;
uint64_t pim_fpregs_fp12;
uint64_t pim_fpregs_fp13;
uint64_t pim_fpregs_fp14;
uint64_t pim_fpregs_fp15;
uint64_t pim_fpregs_fp16;
uint64_t pim_fpregs_fp17;
uint64_t pim_fpregs_fp18;
uint64_t pim_fpregs_fp19;
uint64_t pim_fpregs_fp20;
uint64_t pim_fpregs_fp21;
uint64_t pim_fpregs_fp22;
uint64_t pim_fpregs_fp23;
uint64_t pim_fpregs_fp24;
uint64_t pim_fpregs_fp25;
uint64_t pim_fpregs_fp26;
uint64_t pim_fpregs_fp27;
uint64_t pim_fpregs_fp28;
uint64_t pim_fpregs_fp29;
uint64_t pim_fpregs_fp30;
uint64_t pim_fpregs_fp31;
};
struct hppa_pim_hpmc {
struct hppa_pim_regs pim_hpmc_regs;
struct hppa_pim_checks pim_hpmc_checks;
struct hppa_pim_fpregs pim_hpmc_fpregs;
};
struct hppa_pim_lpmc {
uint32_t pim_lpmc_hversion_dep[74];
struct hppa_pim_checks pim_lpmc_checks;
struct hppa_pim_fpregs pim_lpmc_fpregs;
};
struct hppa_pim_toc {
struct hppa_pim_regs pim_toc_regs;
uint32_t pim_toc_hversion_dep;
uint32_t pim_toc_cpu_state;
};
struct hppa_pim64_regs {
uint64_t pim_regs_r0;
uint64_t pim_regs_r1;
uint64_t pim_regs_r2;
uint64_t pim_regs_r3;
uint64_t pim_regs_r4;
uint64_t pim_regs_r5;
uint64_t pim_regs_r6;
uint64_t pim_regs_r7;
uint64_t pim_regs_r8;
uint64_t pim_regs_r9;
uint64_t pim_regs_r10;
uint64_t pim_regs_r11;
uint64_t pim_regs_r12;
uint64_t pim_regs_r13;
uint64_t pim_regs_r14;
uint64_t pim_regs_r15;
uint64_t pim_regs_r16;
uint64_t pim_regs_r17;
uint64_t pim_regs_r18;
uint64_t pim_regs_r19;
uint64_t pim_regs_r20;
uint64_t pim_regs_r21;
uint64_t pim_regs_r22;
uint64_t pim_regs_r23;
uint64_t pim_regs_r24;
uint64_t pim_regs_r25;
uint64_t pim_regs_r26;
uint64_t pim_regs_r27;
uint64_t pim_regs_r28;
uint64_t pim_regs_r29;
uint64_t pim_regs_r30;
uint64_t pim_regs_r31;
uint64_t pim_regs_cr0;
uint64_t pim_regs_cr1;
uint64_t pim_regs_cr2;
uint64_t pim_regs_cr3;
uint64_t pim_regs_cr4;
uint64_t pim_regs_cr5;
uint64_t pim_regs_cr6;
uint64_t pim_regs_cr7;
uint64_t pim_regs_cr8;
uint64_t pim_regs_cr9;
uint64_t pim_regs_cr10;
uint64_t pim_regs_cr11;
uint64_t pim_regs_cr12;
uint64_t pim_regs_cr13;
uint64_t pim_regs_cr14;
uint64_t pim_regs_cr15;
uint64_t pim_regs_cr16;
uint64_t pim_regs_cr17;
uint64_t pim_regs_cr18;
uint64_t pim_regs_cr19;
uint64_t pim_regs_cr20;
uint64_t pim_regs_cr21;
uint64_t pim_regs_cr22;
uint64_t pim_regs_cr23;
uint64_t pim_regs_cr24;
uint64_t pim_regs_cr25;
uint64_t pim_regs_cr26;
uint64_t pim_regs_cr27;
uint64_t pim_regs_cr28;
uint64_t pim_regs_cr29;
uint64_t pim_regs_cr30;
uint64_t pim_regs_cr31;
uint64_t pim_regs_sr0;
uint64_t pim_regs_sr1;
uint64_t pim_regs_sr2;
uint64_t pim_regs_sr3;
uint64_t pim_regs_sr4;
uint64_t pim_regs_sr5;
uint64_t pim_regs_sr6;
uint64_t pim_regs_sr7;
uint64_t pim_regs_iisq_tail;
uint64_t pim_regs_iioq_tail;
};
struct hppa_pim64_checks {
uint32_t pim_check_type;
uint32_t pim_check_cpu_state;
uint32_t pim_check_cache;
uint32_t pim_check_tlb;
uint32_t pim_check_bus;
uint32_t pim_check_assist;
uint32_t pim_check_assist_state;
uint32_t pim_check_path_info;
uint64_t pim_check_responder;
uint64_t pim_check_requestor;
};
struct hppa_pim64_hpmc {
struct hppa_pim64_regs pim_hpmc_regs;
struct hppa_pim64_checks pim_hpmc_checks;
struct hppa_pim_fpregs pim_hpmc_fpregs;
};
struct hppa_pim64_lpmc {
uint64_t pim_lmpc_hversion_dep[74];
struct hppa_pim64_checks pim_lpmc_checks;
struct hppa_pim_fpregs pim_lpmc_fpregs;
};
struct hppa_pim64_toc {
struct hppa_pim64_regs pim_toc_regs;
uint32_t pim_toc_hversion_dep;
uint32_t pim_toc_cpu_state;
};