arch/arm64/include/asm/alternative.h

Source file repositories/reference/linux-study-clean/arch/arm64/include/asm/alternative.h

File Facts

System
Linux kernel
Corpus path
arch/arm64/include/asm/alternative.h
Extension
.h
Size
1115 bytes
Lines
42
Domain
Architecture Layer
Bucket
arch/arm64
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 alt_instr {
	s32 orig_offset;	/* offset to original instruction */
	s32 alt_offset;		/* offset to replacement instruction */
	u16 cpucap;		/* cpucap bit set for replacement */
	u8  orig_len;		/* size of original instruction(s) */
	u8  alt_len;		/* size of new instruction(s), <= orig_len */
};

typedef void (*alternative_cb_t)(struct alt_instr *alt,
				 __le32 *origptr, __le32 *updptr, int nr_inst);

void __init apply_boot_alternatives(void);
void __init apply_alternatives_all(void);
bool alternative_is_applied(u16 cpucap);

#ifdef CONFIG_MODULES
int apply_alternatives_module(void *start, size_t length);
#else
static inline int apply_alternatives_module(void *start, size_t length)
{
	return 0;
}
#endif

void alt_cb_patch_nops(struct alt_instr *alt, __le32 *origptr,
		       __le32 *updptr, int nr_inst);

#endif /* __ASSEMBLER__ */
#endif /* __ASM_ALTERNATIVE_H */

Annotation

Implementation Notes