Changeset View
Changeset View
Standalone View
Standalone View
sys/arm/include/pcpu.h
Show All 38 Lines | |||||
#define ALT_STACK_SIZE 128 | #define ALT_STACK_SIZE 128 | ||||
struct vmspace; | struct vmspace; | ||||
#endif /* _KERNEL */ | #endif /* _KERNEL */ | ||||
#if __ARM_ARCH >= 6 | #if __ARM_ARCH >= 6 | ||||
/* Branch predictor hardening method */ | |||||
#define PCPU_BP_HARDEN_KIND_NONE 0 | |||||
#define PCPU_BP_HARDEN_KIND_BPIALL 1 | |||||
#define PCPU_BP_HARDEN_KIND_ICIALLU 2 | |||||
#define PCPU_MD_FIELDS \ | #define PCPU_MD_FIELDS \ | ||||
unsigned int pc_vfpsid; \ | unsigned int pc_vfpsid; \ | ||||
unsigned int pc_vfpmvfr0; \ | unsigned int pc_vfpmvfr0; \ | ||||
unsigned int pc_vfpmvfr1; \ | unsigned int pc_vfpmvfr1; \ | ||||
struct pmap *pc_curpmap; \ | struct pmap *pc_curpmap; \ | ||||
struct mtx pc_cmap_lock; \ | struct mtx pc_cmap_lock; \ | ||||
void *pc_cmap1_pte2p; \ | void *pc_cmap1_pte2p; \ | ||||
void *pc_cmap2_pte2p; \ | void *pc_cmap2_pte2p; \ | ||||
caddr_t pc_cmap1_addr; \ | caddr_t pc_cmap1_addr; \ | ||||
caddr_t pc_cmap2_addr; \ | caddr_t pc_cmap2_addr; \ | ||||
vm_offset_t pc_qmap_addr; \ | vm_offset_t pc_qmap_addr; \ | ||||
void *pc_qmap_pte2p; \ | void *pc_qmap_pte2p; \ | ||||
unsigned int pc_dbreg[32]; \ | unsigned int pc_dbreg[32]; \ | ||||
int pc_dbreg_cmd; \ | int pc_dbreg_cmd; \ | ||||
char __pad[155] | int pc_bp_harden_kind; \ | ||||
uint32_t pc_original_actlr; \ | |||||
imp: will the original ACTLR be different for different CPUs? Is that why the hardening kind is per… | |||||
Not Done Inline ActionsThe original ACTRL may be different on each CPU (but we can expect that these values are same for all CPUs in single cluster). But main reason to have this in PCPU is support for multi-cluster SoCs. mmel: The original ACTRL may be different on each CPU (but we can expect that these values are same… | |||||
Not Done Inline ActionsI'd forgotten cases like BIG.little. This makes sense. imp: I'd forgotten cases like BIG.little. This makes sense. | |||||
char __pad[147] | |||||
#else | #else | ||||
#define PCPU_MD_FIELDS \ | #define PCPU_MD_FIELDS \ | ||||
char __pad[93] | char __pad[93] | ||||
#endif | #endif | ||||
#ifdef _KERNEL | #ifdef _KERNEL | ||||
#define PC_DBREG_CMD_NONE 0 | #define PC_DBREG_CMD_NONE 0 | ||||
▲ Show 20 Lines • Show All 78 Lines • Show Last 20 Lines |
will the original ACTLR be different for different CPUs? Is that why the hardening kind is per-cpu?