On 11/29/22 10:41, Claudio Imbrenda wrote:
Since a lot of code starts new CPUs using the current PSW mask, add two
macros to streamline the creation of generic PSWs and PSWs with the
current program mask.
Signed-off-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx>
---
lib/s390x/asm/arch_def.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/lib/s390x/asm/arch_def.h b/lib/s390x/asm/arch_def.h
index 783a7eaa..43137d5f 100644
--- a/lib/s390x/asm/arch_def.h
+++ b/lib/s390x/asm/arch_def.h
@@ -41,6 +41,8 @@ struct psw {
uint64_t addr;
};
+#define PSW(m, a) ((struct psw){ .mask = (m), .addr = (uint64_t)(a) })
+
struct short_psw {
uint32_t mask;
uint32_t addr;
@@ -321,6 +323,8 @@ static inline uint64_t extract_psw_mask(void)
return (uint64_t) mask_upper << 32 | mask_lower;
}
+#define PSW_CUR_MASK(addr) PSW(extract_psw_mask(), (addr))
This sounds too much like what extract_psw_mask() does.
So we should agree on a name that states that we receive a PSW and not a
PSW mask.
s/PSW_CUR_MASK/PSW_WITH_CUR_MASK/
Other than that the code looks fine.
+
static inline void load_psw_mask(uint64_t mask)
{
struct psw psw = {