arch/sparc/kernel/entry.h

Source file repositories/reference/linux-study-clean/arch/sparc/kernel/entry.h

File Facts

System
Linux kernel
Corpus path
arch/sparc/kernel/entry.h
Extension
.h
Size
8938 bytes
Lines
254
Domain
Architecture Layer
Bucket
arch/sparc
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 popc_3insn_patch_entry {
	unsigned int	addr;
	unsigned int	insns[3];
};
extern struct popc_3insn_patch_entry __popc_3insn_patch,
	__popc_3insn_patch_end;

struct popc_6insn_patch_entry {
	unsigned int	addr;
	unsigned int	insns[6];
};
extern struct popc_6insn_patch_entry __popc_6insn_patch,
	__popc_6insn_patch_end;

struct pause_patch_entry {
	unsigned int	addr;
	unsigned int	insns[3];
};
extern struct pause_patch_entry __pause_3insn_patch,
	__pause_3insn_patch_end;

void sun4v_patch_1insn_range(struct sun4v_1insn_patch_entry *,
			     struct sun4v_1insn_patch_entry *);
void sun4v_patch_2insn_range(struct sun4v_2insn_patch_entry *,
			     struct sun4v_2insn_patch_entry *);
void sun_m7_patch_2insn_range(struct sun4v_2insn_patch_entry *,
			     struct sun4v_2insn_patch_entry *);
extern unsigned int dcache_parity_tl1_occurred;
extern unsigned int icache_parity_tl1_occurred;

asmlinkage void sparc_breakpoint(struct pt_regs *regs);
void timer_interrupt(int irq, struct pt_regs *regs);

void do_notify_resume(struct pt_regs *regs,
		      unsigned long orig_i0,
		      unsigned long thread_info_flags);

asmlinkage int syscall_trace_enter(struct pt_regs *regs);
asmlinkage void syscall_trace_leave(struct pt_regs *regs);

void bad_trap_tl1(struct pt_regs *regs, long lvl);

void do_fpieee(struct pt_regs *regs);
void do_fpother(struct pt_regs *regs);
void do_tof(struct pt_regs *regs);
void do_div0(struct pt_regs *regs);
void do_illegal_instruction(struct pt_regs *regs);
void mem_address_unaligned(struct pt_regs *regs,
			   unsigned long sfar,
			   unsigned long sfsr);
void sun4v_do_mna(struct pt_regs *regs,
		  unsigned long addr,
		  unsigned long type_ctx);
void do_privop(struct pt_regs *regs);
void do_privact(struct pt_regs *regs);
void do_cee(struct pt_regs *regs);
void do_div0_tl1(struct pt_regs *regs);
void do_fpieee_tl1(struct pt_regs *regs);
void do_fpother_tl1(struct pt_regs *regs);
void do_ill_tl1(struct pt_regs *regs);
void do_irq_tl1(struct pt_regs *regs);
void do_lddfmna_tl1(struct pt_regs *regs);
void do_stdfmna_tl1(struct pt_regs *regs);
void do_paw(struct pt_regs *regs);
void do_paw_tl1(struct pt_regs *regs);
void do_vaw(struct pt_regs *regs);
void do_vaw_tl1(struct pt_regs *regs);
void do_tof_tl1(struct pt_regs *regs);
void do_getpsr(struct pt_regs *regs);

void spitfire_insn_access_exception(struct pt_regs *regs,
				    unsigned long sfsr,
				    unsigned long sfar);
void spitfire_insn_access_exception_tl1(struct pt_regs *regs,
				        unsigned long sfsr,
				        unsigned long sfar);
void spitfire_data_access_exception(struct pt_regs *regs,
				    unsigned long sfsr,
				    unsigned long sfar);
void spitfire_data_access_exception_tl1(struct pt_regs *regs,
				        unsigned long sfsr,
				        unsigned long sfar);
void spitfire_access_error(struct pt_regs *regs,
			   unsigned long status_encoded,
			   unsigned long afar);

void cheetah_fecc_handler(struct pt_regs *regs,
			  unsigned long afsr,
			  unsigned long afar);
void cheetah_cee_handler(struct pt_regs *regs,

Annotation

Implementation Notes