GNU Linux-libre 4.14.251-gnu1
[releases.git] / arch / s390 / include / asm / stp.h
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 /* notifier for syncs */
10 extern struct atomic_notifier_head s390_epoch_delta_notifier;
11
12 /* STP interruption parameter */
13 struct stp_irq_parm {
14         unsigned int _pad0      : 14;
15         unsigned int tsc        : 1;    /* Timing status change */
16         unsigned int lac        : 1;    /* Link availability change */
17         unsigned int tcpc       : 1;    /* Time control parameter change */
18         unsigned int _pad2      : 15;
19 } __attribute__ ((packed));
20
21 #define STP_OP_SYNC     1
22 #define STP_OP_CTRL     3
23
24 struct stp_sstpi {
25         unsigned int rsvd0;
26         unsigned int rsvd1 : 8;
27         unsigned int stratum : 8;
28         unsigned int vbits : 16;
29         unsigned int leaps : 16;
30         unsigned int tmd : 4;
31         unsigned int ctn : 4;
32         unsigned int rsvd2 : 3;
33         unsigned int c : 1;
34         unsigned int tst : 4;
35         unsigned int tzo : 16;
36         unsigned int dsto : 16;
37         unsigned int ctrl : 16;
38         unsigned int rsvd3 : 16;
39         unsigned int tto;
40         unsigned int rsvd4;
41         unsigned int ctnid[3];
42         unsigned int rsvd5;
43         unsigned int todoff[4];
44         unsigned int rsvd6[48];
45 } __attribute__ ((packed));
46
47 /* Functions needed by the machine check handler */
48 int stp_sync_check(void);
49 int stp_island_check(void);
50 void stp_queue_work(void);
51
52 #endif /* __S390_STP_H */