18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Orb related data structures. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright IBM Corp. 2007, 2011 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> 88c2ecf20Sopenharmony_ci * Peter Oberparleiter <peter.oberparleiter@de.ibm.com> 98c2ecf20Sopenharmony_ci * Sebastian Ott <sebott@linux.vnet.ibm.com> 108c2ecf20Sopenharmony_ci */ 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#ifndef S390_ORB_H 138c2ecf20Sopenharmony_ci#define S390_ORB_H 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci/* 168c2ecf20Sopenharmony_ci * Command-mode operation request block 178c2ecf20Sopenharmony_ci */ 188c2ecf20Sopenharmony_cistruct cmd_orb { 198c2ecf20Sopenharmony_ci u32 intparm; /* interruption parameter */ 208c2ecf20Sopenharmony_ci u32 key:4; /* flags, like key, suspend control, etc. */ 218c2ecf20Sopenharmony_ci u32 spnd:1; /* suspend control */ 228c2ecf20Sopenharmony_ci u32 res1:1; /* reserved */ 238c2ecf20Sopenharmony_ci u32 mod:1; /* modification control */ 248c2ecf20Sopenharmony_ci u32 sync:1; /* synchronize control */ 258c2ecf20Sopenharmony_ci u32 fmt:1; /* format control */ 268c2ecf20Sopenharmony_ci u32 pfch:1; /* prefetch control */ 278c2ecf20Sopenharmony_ci u32 isic:1; /* initial-status-interruption control */ 288c2ecf20Sopenharmony_ci u32 alcc:1; /* address-limit-checking control */ 298c2ecf20Sopenharmony_ci u32 ssic:1; /* suppress-suspended-interr. control */ 308c2ecf20Sopenharmony_ci u32 res2:1; /* reserved */ 318c2ecf20Sopenharmony_ci u32 c64:1; /* IDAW/QDIO 64 bit control */ 328c2ecf20Sopenharmony_ci u32 i2k:1; /* IDAW 2/4kB block size control */ 338c2ecf20Sopenharmony_ci u32 lpm:8; /* logical path mask */ 348c2ecf20Sopenharmony_ci u32 ils:1; /* incorrect length */ 358c2ecf20Sopenharmony_ci u32 zero:6; /* reserved zeros */ 368c2ecf20Sopenharmony_ci u32 orbx:1; /* ORB extension control */ 378c2ecf20Sopenharmony_ci u32 cpa; /* channel program address */ 388c2ecf20Sopenharmony_ci} __packed __aligned(4); 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci/* 418c2ecf20Sopenharmony_ci * Transport-mode operation request block 428c2ecf20Sopenharmony_ci */ 438c2ecf20Sopenharmony_cistruct tm_orb { 448c2ecf20Sopenharmony_ci u32 intparm; 458c2ecf20Sopenharmony_ci u32 key:4; 468c2ecf20Sopenharmony_ci u32:9; 478c2ecf20Sopenharmony_ci u32 b:1; 488c2ecf20Sopenharmony_ci u32:2; 498c2ecf20Sopenharmony_ci u32 lpm:8; 508c2ecf20Sopenharmony_ci u32:7; 518c2ecf20Sopenharmony_ci u32 x:1; 528c2ecf20Sopenharmony_ci u32 tcw; 538c2ecf20Sopenharmony_ci u32 prio:8; 548c2ecf20Sopenharmony_ci u32:8; 558c2ecf20Sopenharmony_ci u32 rsvpgm:8; 568c2ecf20Sopenharmony_ci u32:8; 578c2ecf20Sopenharmony_ci u32:32; 588c2ecf20Sopenharmony_ci u32:32; 598c2ecf20Sopenharmony_ci u32:32; 608c2ecf20Sopenharmony_ci u32:32; 618c2ecf20Sopenharmony_ci} __packed __aligned(4); 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci/* 648c2ecf20Sopenharmony_ci * eadm operation request block 658c2ecf20Sopenharmony_ci */ 668c2ecf20Sopenharmony_cistruct eadm_orb { 678c2ecf20Sopenharmony_ci u32 intparm; 688c2ecf20Sopenharmony_ci u32 key:4; 698c2ecf20Sopenharmony_ci u32:4; 708c2ecf20Sopenharmony_ci u32 compat1:1; 718c2ecf20Sopenharmony_ci u32 compat2:1; 728c2ecf20Sopenharmony_ci u32:21; 738c2ecf20Sopenharmony_ci u32 x:1; 748c2ecf20Sopenharmony_ci u32 aob; 758c2ecf20Sopenharmony_ci u32 css_prio:8; 768c2ecf20Sopenharmony_ci u32:8; 778c2ecf20Sopenharmony_ci u32 scm_prio:8; 788c2ecf20Sopenharmony_ci u32:8; 798c2ecf20Sopenharmony_ci u32:29; 808c2ecf20Sopenharmony_ci u32 fmt:3; 818c2ecf20Sopenharmony_ci u32:32; 828c2ecf20Sopenharmony_ci u32:32; 838c2ecf20Sopenharmony_ci u32:32; 848c2ecf20Sopenharmony_ci} __packed __aligned(4); 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ciunion orb { 878c2ecf20Sopenharmony_ci struct cmd_orb cmd; 888c2ecf20Sopenharmony_ci struct tm_orb tm; 898c2ecf20Sopenharmony_ci struct eadm_orb eadm; 908c2ecf20Sopenharmony_ci} __packed __aligned(4); 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci#endif /* S390_ORB_H */ 93