Changeset View
Changeset View
Standalone View
Standalone View
head/sys/arm64/arm64/identcpu.c
Show First 20 Lines • Show All 910 Lines • ▼ Show 20 Lines | static struct mrs_user_reg user_regs[] = { | ||||
}, | }, | ||||
{ /* id_aa64dfr0_el1 */ | { /* id_aa64dfr0_el1 */ | ||||
.reg = ID_AA64DFR0_EL1, | .reg = ID_AA64DFR0_EL1, | ||||
.CRm = 5, | .CRm = 5, | ||||
.Op2 = 0, | .Op2 = 0, | ||||
.offset = __offsetof(struct cpu_desc, id_aa64dfr0), | .offset = __offsetof(struct cpu_desc, id_aa64dfr0), | ||||
.fields = id_aa64dfr0_fields, | .fields = id_aa64dfr0_fields, | ||||
}, | }, | ||||
{ /* id_aa64mmfr0_el1 */ | |||||
.reg = ID_AA64MMFR0_EL1, | |||||
.CRm = 7, | |||||
.Op2 = 0, | |||||
.offset = __offsetof(struct cpu_desc, id_aa64mmfr0), | |||||
.fields = id_aa64mmfr0_fields, | |||||
}, | |||||
}; | }; | ||||
#define CPU_DESC_FIELD(desc, idx) \ | #define CPU_DESC_FIELD(desc, idx) \ | ||||
*(uint64_t *)((char *)&(desc) + user_regs[(idx)].offset) | *(uint64_t *)((char *)&(desc) + user_regs[(idx)].offset) | ||||
static int | static int | ||||
user_mrs_handler(vm_offset_t va, uint32_t insn, struct trapframe *frame, | user_mrs_handler(vm_offset_t va, uint32_t insn, struct trapframe *frame, | ||||
uint32_t esr) | uint32_t esr) | ||||
▲ Show 20 Lines • Show All 732 Lines • Show Last 20 Lines |