/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright IBM Corp. 1999, 2024 */ #ifndef __ASM_S390_ACCESS_REGS_H #define __ASM_S390_ACCESS_REGS_H #include #include 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 */