1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Copyright IBM Corp. 2006 4 * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) 5 */ 6 #ifndef __S390_STP_H 7 #define __S390_STP_H 8 9 #include <linux/compiler.h> 10 11 /* notifier for syncs */ 12 extern struct atomic_notifier_head s390_epoch_delta_notifier; 13 14 /* STP interruption parameter */ 15 struct stp_irq_parm { 16 unsigned int _pad0 : 14; 17 unsigned int tsc : 1; /* Timing status change */ 18 unsigned int lac : 1; /* Link availability change */ 19 unsigned int tcpc : 1; /* Time control parameter change */ 20 unsigned int _pad2 : 15; 21 } __packed; 22 23 #define STP_OP_SYNC 1 24 #define STP_OP_CTRL 3 25 26 struct stp_sstpi { 27 unsigned int rsvd0; 28 unsigned int rsvd1 : 8; 29 unsigned int stratum : 8; 30 unsigned int vbits : 16; 31 unsigned int leaps : 16; 32 unsigned int tmd : 4; 33 unsigned int ctn : 4; 34 unsigned int rsvd2 : 3; 35 unsigned int c : 1; 36 unsigned int tst : 4; 37 unsigned int tzo : 16; 38 unsigned int dsto : 16; 39 unsigned int ctrl : 16; 40 unsigned int rsvd3 : 16; 41 unsigned int tto; 42 unsigned int rsvd4; 43 unsigned int ctnid[3]; 44 unsigned int rsvd5; 45 unsigned int todoff[4]; 46 unsigned int rsvd6[48]; 47 } __packed; 48 49 /* Functions needed by the machine check handler */ 50 int stp_sync_check(void); 51 int stp_island_check(void); 52 void stp_queue_work(void); 53 54 #endif /* __S390_STP_H */ 55