arch/arm/include/asm/mpu.h

Source file repositories/reference/linux-study-clean/arch/arm/include/asm/mpu.h

File Facts

System
Linux kernel
Corpus path
arch/arm/include/asm/mpu.h
Extension
.h
Size
3300 bytes
Lines
134
Domain
Architecture Layer
Bucket
arch/arm
Inferred role
Architecture Layer: implementation source
Status
source implementation candidate

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

struct mpu_rgn {
	/* Assume same attributes for d/i-side  */
	union {
		u32 drbar;   /* PMSAv7 */
		u32 prbar;   /* PMSAv8 */
	};
	union {
		u32 drsr;   /* PMSAv7 */
		u32 prlar;  /* PMSAv8 */
	};
	union {
		u32 dracr;  /* PMSAv7 */
		u32 unused; /* not used in PMSAv8 */
	};
};

struct mpu_rgn_info {
	unsigned int used;
	struct mpu_rgn rgns[MPU_MAX_REGIONS];
};
extern struct mpu_rgn_info mpu_rgn_info;

#ifdef CONFIG_ARM_MPU
extern void __init pmsav7_adjust_lowmem_bounds(void);
extern void __init pmsav8_adjust_lowmem_bounds(void);

extern void __init pmsav7_setup(void);
extern void __init pmsav8_setup(void);
#else
static inline void pmsav7_adjust_lowmem_bounds(void) {};
static inline void pmsav8_adjust_lowmem_bounds(void) {};
static inline void pmsav7_setup(void) {};
static inline void pmsav8_setup(void) {};
#endif

#endif /* __ASSEMBLY__ */

#endif

Annotation

Implementation Notes