18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright IBM Corp. 2006 48c2ecf20Sopenharmony_ci * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) 58c2ecf20Sopenharmony_ci */ 68c2ecf20Sopenharmony_ci#ifndef __S390_STP_H 78c2ecf20Sopenharmony_ci#define __S390_STP_H 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#include <linux/compiler.h> 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci/* notifier for syncs */ 128c2ecf20Sopenharmony_ciextern struct atomic_notifier_head s390_epoch_delta_notifier; 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci/* STP interruption parameter */ 158c2ecf20Sopenharmony_cistruct stp_irq_parm { 168c2ecf20Sopenharmony_ci u32 : 14; 178c2ecf20Sopenharmony_ci u32 tsc : 1; /* Timing status change */ 188c2ecf20Sopenharmony_ci u32 lac : 1; /* Link availability change */ 198c2ecf20Sopenharmony_ci u32 tcpc : 1; /* Time control parameter change */ 208c2ecf20Sopenharmony_ci u32 : 15; 218c2ecf20Sopenharmony_ci} __packed; 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci#define STP_OP_SYNC 1 248c2ecf20Sopenharmony_ci#define STP_OP_CTRL 3 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_cistruct stp_sstpi { 278c2ecf20Sopenharmony_ci u32 : 32; 288c2ecf20Sopenharmony_ci u32 tu : 1; 298c2ecf20Sopenharmony_ci u32 lu : 1; 308c2ecf20Sopenharmony_ci u32 : 6; 318c2ecf20Sopenharmony_ci u32 stratum : 8; 328c2ecf20Sopenharmony_ci u32 vbits : 16; 338c2ecf20Sopenharmony_ci u32 leaps : 16; 348c2ecf20Sopenharmony_ci u32 tmd : 4; 358c2ecf20Sopenharmony_ci u32 ctn : 4; 368c2ecf20Sopenharmony_ci u32 : 3; 378c2ecf20Sopenharmony_ci u32 c : 1; 388c2ecf20Sopenharmony_ci u32 tst : 4; 398c2ecf20Sopenharmony_ci u32 tzo : 16; 408c2ecf20Sopenharmony_ci u32 dsto : 16; 418c2ecf20Sopenharmony_ci u32 ctrl : 16; 428c2ecf20Sopenharmony_ci u32 : 16; 438c2ecf20Sopenharmony_ci u32 tto; 448c2ecf20Sopenharmony_ci u32 : 32; 458c2ecf20Sopenharmony_ci u32 ctnid[3]; 468c2ecf20Sopenharmony_ci u32 : 32; 478c2ecf20Sopenharmony_ci u32 todoff[4]; 488c2ecf20Sopenharmony_ci u32 rsvd[48]; 498c2ecf20Sopenharmony_ci} __packed; 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_cistruct stp_tzib { 528c2ecf20Sopenharmony_ci u32 tzan : 16; 538c2ecf20Sopenharmony_ci u32 : 16; 548c2ecf20Sopenharmony_ci u32 tzo : 16; 558c2ecf20Sopenharmony_ci u32 dsto : 16; 568c2ecf20Sopenharmony_ci u32 stn; 578c2ecf20Sopenharmony_ci u32 dstn; 588c2ecf20Sopenharmony_ci u64 dst_on_alg; 598c2ecf20Sopenharmony_ci u64 dst_off_alg; 608c2ecf20Sopenharmony_ci} __packed; 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_cistruct stp_tcpib { 638c2ecf20Sopenharmony_ci u32 atcode : 4; 648c2ecf20Sopenharmony_ci u32 ntcode : 4; 658c2ecf20Sopenharmony_ci u32 d : 1; 668c2ecf20Sopenharmony_ci u32 : 23; 678c2ecf20Sopenharmony_ci s32 tto; 688c2ecf20Sopenharmony_ci struct stp_tzib atzib; 698c2ecf20Sopenharmony_ci struct stp_tzib ntzib; 708c2ecf20Sopenharmony_ci s32 adst_offset : 16; 718c2ecf20Sopenharmony_ci s32 ndst_offset : 16; 728c2ecf20Sopenharmony_ci u32 rsvd1; 738c2ecf20Sopenharmony_ci u64 ntzib_update; 748c2ecf20Sopenharmony_ci u64 ndsto_update; 758c2ecf20Sopenharmony_ci} __packed; 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_cistruct stp_lsoib { 788c2ecf20Sopenharmony_ci u32 p : 1; 798c2ecf20Sopenharmony_ci u32 : 31; 808c2ecf20Sopenharmony_ci s32 also : 16; 818c2ecf20Sopenharmony_ci s32 nlso : 16; 828c2ecf20Sopenharmony_ci u64 nlsout; 838c2ecf20Sopenharmony_ci} __packed; 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_cistruct stp_stzi { 868c2ecf20Sopenharmony_ci u32 rsvd0[3]; 878c2ecf20Sopenharmony_ci u64 data_ts; 888c2ecf20Sopenharmony_ci u32 rsvd1[22]; 898c2ecf20Sopenharmony_ci struct stp_tcpib tcpib; 908c2ecf20Sopenharmony_ci struct stp_lsoib lsoib; 918c2ecf20Sopenharmony_ci} __packed; 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci/* Functions needed by the machine check handler */ 948c2ecf20Sopenharmony_ciint stp_sync_check(void); 958c2ecf20Sopenharmony_ciint stp_island_check(void); 968c2ecf20Sopenharmony_civoid stp_queue_work(void); 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ci#endif /* __S390_STP_H */ 99