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 <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
Heiko Carstens 2021-02-07 22:00:22 +01:00 committed by Vasily Gorbik
parent 96c0a6a72d
commit e4101be56c

View File

@ -21,6 +21,25 @@
extern u64 clock_comparator_max; 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. */ /* Inline functions for clock register access. */
static inline int set_tod_clock(__u64 time) static inline int set_tod_clock(__u64 time)
{ {