/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright IBM Corp. 2006 * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) */ #ifndef __S390_STP_H #define __S390_STP_H /* notifier for syncs */ extern struct atomic_notifier_head s390_epoch_delta_notifier; /* STP interruption parameter */ struct stp_irq_parm { unsigned int _pad0 : 14; unsigned int tsc : 1; /* Timing status change */ unsigned int lac : 1; /* Link availability change */ unsigned int tcpc : 1; /* Time control parameter change */ unsigned int _pad2 : 15; } __attribute__ ((packed)); #define STP_OP_SYNC 1 #define STP_OP_CTRL 3 struct stp_sstpi { unsigned int rsvd0; unsigned int rsvd1 : 8; unsigned int stratum : 8; unsigned int vbits : 16; unsigned int leaps : 16; unsigned int tmd : 4; unsigned int ctn : 4; unsigned int rsvd2 : 3; unsigned int c : 1; unsigned int tst : 4; unsigned int tzo : 16; unsigned int dsto : 16; unsigned int ctrl : 16; unsigned int rsvd3 : 16; unsigned int tto; unsigned int rsvd4; unsigned int ctnid[3]; unsigned int rsvd5; unsigned int todoff[4]; unsigned int rsvd6[48]; } __attribute__ ((packed)); /* Functions needed by the machine check handler */ int stp_sync_check(void); int stp_island_check(void); void stp_queue_work(void); #endif /* __S390_STP_H */