xref: /openbmc/linux/arch/s390/include/asm/stp.h (revision bb7d066a)
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