From: Heiko Carstens Date: Sun, 7 Feb 2021 21:00:22 +0000 (+0100) Subject: s390/time: introduce union tod_clock X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=e4101be56c85effa4509b35a208482f888e79cfc;p=linux.git s390/time: introduce union tod_clock Introduce union tod_clock which is supposed to be used to decode and access various fields of the result of STORE CLOCK EXTENDED. Signed-off-by: Heiko Carstens Signed-off-by: Vasily Gorbik --- diff --git a/arch/s390/include/asm/timex.h b/arch/s390/include/asm/timex.h index 63bf3bd6e83fc..271a1e12cc73b 100644 --- a/arch/s390/include/asm/timex.h +++ b/arch/s390/include/asm/timex.h @@ -21,6 +21,25 @@ extern u64 clock_comparator_max; +union tod_clock { + __uint128_t val; + struct { + __uint128_t ei : 8; /* epoch index */ + __uint128_t tod : 64; /* bits 0-63 of tod clock */ + __uint128_t : 40; + __uint128_t pf : 16; /* programmable field */ + }; + struct { + __uint128_t eitod : 72; /* epoch index + bits 0-63 tod clock */ + __uint128_t : 56; + }; + struct { + __uint128_t us : 60; /* micro-seconds */ + __uint128_t sus : 12; /* sub-microseconds */ + __uint128_t : 56; + }; +} __packed; + /* Inline functions for clock register access. */ static inline int set_tod_clock(__u64 time) {