Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  *  Copyright IBM Corp. 2006
0004  *  Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
0005  */
0006 #ifndef __S390_STP_H
0007 #define __S390_STP_H
0008 
0009 #include <linux/compiler.h>
0010 
0011 /* notifier for syncs */
0012 extern struct atomic_notifier_head s390_epoch_delta_notifier;
0013 
0014 /* STP interruption parameter */
0015 struct stp_irq_parm {
0016     u32     : 14;
0017     u32 tsc     :  1;   /* Timing status change */
0018     u32 lac     :  1;   /* Link availability change */
0019     u32 tcpc    :  1;   /* Time control parameter change */
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 /* Functions needed by the machine check handler */
0094 int stp_sync_check(void);
0095 int stp_island_check(void);
0096 void stp_queue_work(void);
0097 
0098 #endif /* __S390_STP_H */