162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Orb related data structures. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright IBM Corp. 2007, 2011 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> 862306a36Sopenharmony_ci * Peter Oberparleiter <peter.oberparleiter@de.ibm.com> 962306a36Sopenharmony_ci * Sebastian Ott <sebott@linux.vnet.ibm.com> 1062306a36Sopenharmony_ci */ 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#ifndef S390_ORB_H 1362306a36Sopenharmony_ci#define S390_ORB_H 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci/* 1662306a36Sopenharmony_ci * Command-mode operation request block 1762306a36Sopenharmony_ci */ 1862306a36Sopenharmony_cistruct cmd_orb { 1962306a36Sopenharmony_ci u32 intparm; /* interruption parameter */ 2062306a36Sopenharmony_ci u32 key:4; /* flags, like key, suspend control, etc. */ 2162306a36Sopenharmony_ci u32 spnd:1; /* suspend control */ 2262306a36Sopenharmony_ci u32 res1:1; /* reserved */ 2362306a36Sopenharmony_ci u32 mod:1; /* modification control */ 2462306a36Sopenharmony_ci u32 sync:1; /* synchronize control */ 2562306a36Sopenharmony_ci u32 fmt:1; /* format control */ 2662306a36Sopenharmony_ci u32 pfch:1; /* prefetch control */ 2762306a36Sopenharmony_ci u32 isic:1; /* initial-status-interruption control */ 2862306a36Sopenharmony_ci u32 alcc:1; /* address-limit-checking control */ 2962306a36Sopenharmony_ci u32 ssic:1; /* suppress-suspended-interr. control */ 3062306a36Sopenharmony_ci u32 res2:1; /* reserved */ 3162306a36Sopenharmony_ci u32 c64:1; /* IDAW/QDIO 64 bit control */ 3262306a36Sopenharmony_ci u32 i2k:1; /* IDAW 2/4kB block size control */ 3362306a36Sopenharmony_ci u32 lpm:8; /* logical path mask */ 3462306a36Sopenharmony_ci u32 ils:1; /* incorrect length */ 3562306a36Sopenharmony_ci u32 zero:6; /* reserved zeros */ 3662306a36Sopenharmony_ci u32 orbx:1; /* ORB extension control */ 3762306a36Sopenharmony_ci u32 cpa; /* channel program address */ 3862306a36Sopenharmony_ci} __packed __aligned(4); 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci/* 4162306a36Sopenharmony_ci * Transport-mode operation request block 4262306a36Sopenharmony_ci */ 4362306a36Sopenharmony_cistruct tm_orb { 4462306a36Sopenharmony_ci u32 intparm; 4562306a36Sopenharmony_ci u32 key:4; 4662306a36Sopenharmony_ci u32:9; 4762306a36Sopenharmony_ci u32 b:1; 4862306a36Sopenharmony_ci u32:2; 4962306a36Sopenharmony_ci u32 lpm:8; 5062306a36Sopenharmony_ci u32:7; 5162306a36Sopenharmony_ci u32 x:1; 5262306a36Sopenharmony_ci u32 tcw; 5362306a36Sopenharmony_ci u32 prio:8; 5462306a36Sopenharmony_ci u32:8; 5562306a36Sopenharmony_ci u32 rsvpgm:8; 5662306a36Sopenharmony_ci u32:8; 5762306a36Sopenharmony_ci u32:32; 5862306a36Sopenharmony_ci u32:32; 5962306a36Sopenharmony_ci u32:32; 6062306a36Sopenharmony_ci u32:32; 6162306a36Sopenharmony_ci} __packed __aligned(4); 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci/* 6462306a36Sopenharmony_ci * eadm operation request block 6562306a36Sopenharmony_ci */ 6662306a36Sopenharmony_cistruct eadm_orb { 6762306a36Sopenharmony_ci u32 intparm; 6862306a36Sopenharmony_ci u32 key:4; 6962306a36Sopenharmony_ci u32:4; 7062306a36Sopenharmony_ci u32 compat1:1; 7162306a36Sopenharmony_ci u32 compat2:1; 7262306a36Sopenharmony_ci u32:21; 7362306a36Sopenharmony_ci u32 x:1; 7462306a36Sopenharmony_ci u32 aob; 7562306a36Sopenharmony_ci u32 css_prio:8; 7662306a36Sopenharmony_ci u32:8; 7762306a36Sopenharmony_ci u32 scm_prio:8; 7862306a36Sopenharmony_ci u32:8; 7962306a36Sopenharmony_ci u32:29; 8062306a36Sopenharmony_ci u32 fmt:3; 8162306a36Sopenharmony_ci u32:32; 8262306a36Sopenharmony_ci u32:32; 8362306a36Sopenharmony_ci u32:32; 8462306a36Sopenharmony_ci} __packed __aligned(4); 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ciunion orb { 8762306a36Sopenharmony_ci struct cmd_orb cmd; 8862306a36Sopenharmony_ci struct tm_orb tm; 8962306a36Sopenharmony_ci struct eadm_orb eadm; 9062306a36Sopenharmony_ci} __packed __aligned(4); 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci#endif /* S390_ORB_H */ 93