0001
0002
0003
0004
0005
0006 #ifndef __S390_STP_H
0007 #define __S390_STP_H
0008
0009 #include <linux/compiler.h>
0010
0011
0012 extern struct atomic_notifier_head s390_epoch_delta_notifier;
0013
0014
0015 struct stp_irq_parm {
0016 u32 : 14;
0017 u32 tsc : 1;
0018 u32 lac : 1;
0019 u32 tcpc : 1;
0020 u32 : 15;
0021 } __packed;
0022
0023 #define STP_OP_SYNC 1
0024 #define STP_OP_CTRL 3
0025
0026 struct stp_sstpi {
0027 u32 : 32;
0028 u32 tu : 1;
0029 u32 lu : 1;
0030 u32 : 6;
0031 u32 stratum : 8;
0032 u32 vbits : 16;
0033 u32 leaps : 16;
0034 u32 tmd : 4;
0035 u32 ctn : 4;
0036 u32 : 3;
0037 u32 c : 1;
0038 u32 tst : 4;
0039 u32 tzo : 16;
0040 u32 dsto : 16;
0041 u32 ctrl : 16;
0042 u32 : 16;
0043 u32 tto;
0044 u32 : 32;
0045 u32 ctnid[3];
0046 u32 : 32;
0047 u64 todoff;
0048 u32 rsvd[50];
0049 } __packed;
0050
0051 struct stp_tzib {
0052 u32 tzan : 16;
0053 u32 : 16;
0054 u32 tzo : 16;
0055 u32 dsto : 16;
0056 u32 stn;
0057 u32 dstn;
0058 u64 dst_on_alg;
0059 u64 dst_off_alg;
0060 } __packed;
0061
0062 struct stp_tcpib {
0063 u32 atcode : 4;
0064 u32 ntcode : 4;
0065 u32 d : 1;
0066 u32 : 23;
0067 s32 tto;
0068 struct stp_tzib atzib;
0069 struct stp_tzib ntzib;
0070 s32 adst_offset : 16;
0071 s32 ndst_offset : 16;
0072 u32 rsvd1;
0073 u64 ntzib_update;
0074 u64 ndsto_update;
0075 } __packed;
0076
0077 struct stp_lsoib {
0078 u32 p : 1;
0079 u32 : 31;
0080 s32 also : 16;
0081 s32 nlso : 16;
0082 u64 nlsout;
0083 } __packed;
0084
0085 struct stp_stzi {
0086 u32 rsvd0[3];
0087 u64 data_ts;
0088 u32 rsvd1[22];
0089 struct stp_tcpib tcpib;
0090 struct stp_lsoib lsoib;
0091 } __packed;
0092
0093
0094 int stp_sync_check(void);
0095 int stp_island_check(void);
0096 void stp_queue_work(void);
0097
0098 #endif