arch/s390/include/asm/access-regs.h

Source file repositories/reference/linux-study-clean/arch/s390/include/asm/access-regs.h

File Facts

System
Linux kernel
Corpus path
arch/s390/include/asm/access-regs.h
Extension
.h
Size
806 bytes
Lines
39
Domain
Architecture Layer
Bucket
arch/s390
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 access_regs {
	unsigned int regs[NUM_ACRS];
};

static inline void save_access_regs(unsigned int *acrs)
{
	struct access_regs *regs = (struct access_regs *)acrs;

	instrument_write(regs, sizeof(*regs));
	asm volatile("stamy	0,15,%[regs]"
		     : [regs] "=QS" (*regs)
		     :
		     : "memory");
}

static inline void restore_access_regs(unsigned int *acrs)
{
	struct access_regs *regs = (struct access_regs *)acrs;

	instrument_read(regs, sizeof(*regs));
	asm volatile("lamy	0,15,%[regs]"
		     :
		     : [regs] "QS" (*regs)
		     : "memory");
}

#endif /* __ASM_S390_ACCESS_REGS_H */

Annotation

Implementation Notes