1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Orb related data structures. 4 * 5 * Copyright IBM Corp. 2007, 2011 6 * 7 * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> 8 * Peter Oberparleiter <peter.oberparleiter@de.ibm.com> 9 * Sebastian Ott <sebott@linux.vnet.ibm.com> 10 */ 11 12 #ifndef S390_ORB_H 13 #define S390_ORB_H 14 15 /* 16 * Command-mode operation request block 17 */ 18 struct cmd_orb { 19 u32 intparm; /* interruption parameter */ 20 u32 key:4; /* flags, like key, suspend control, etc. */ 21 u32 spnd:1; /* suspend control */ 22 u32 res1:1; /* reserved */ 23 u32 mod:1; /* modification control */ 24 u32 sync:1; /* synchronize control */ 25 u32 fmt:1; /* format control */ 26 u32 pfch:1; /* prefetch control */ 27 u32 isic:1; /* initial-status-interruption control */ 28 u32 alcc:1; /* address-limit-checking control */ 29 u32 ssic:1; /* suppress-suspended-interr. control */ 30 u32 res2:1; /* reserved */ 31 u32 c64:1; /* IDAW/QDIO 64 bit control */ 32 u32 i2k:1; /* IDAW 2/4kB block size control */ 33 u32 lpm:8; /* logical path mask */ 34 u32 ils:1; /* incorrect length */ 35 u32 zero:6; /* reserved zeros */ 36 u32 orbx:1; /* ORB extension control */ 37 u32 cpa; /* channel program address */ 38 } __packed __aligned(4); 39 40 /* 41 * Transport-mode operation request block 42 */ 43 struct tm_orb { 44 u32 intparm; 45 u32 key:4; 46 u32:9; 47 u32 b:1; 48 u32:2; 49 u32 lpm:8; 50 u32:7; 51 u32 x:1; 52 u32 tcw; 53 u32 prio:8; 54 u32:8; 55 u32 rsvpgm:8; 56 u32:8; 57 u32:32; 58 u32:32; 59 u32:32; 60 u32:32; 61 } __packed __aligned(4); 62 63 /* 64 * eadm operation request block 65 */ 66 struct eadm_orb { 67 u32 intparm; 68 u32 key:4; 69 u32:4; 70 u32 compat1:1; 71 u32 compat2:1; 72 u32:21; 73 u32 x:1; 74 u32 aob; 75 u32 css_prio:8; 76 u32:8; 77 u32 scm_prio:8; 78 u32:8; 79 u32:29; 80 u32 fmt:3; 81 u32:32; 82 u32:32; 83 u32:32; 84 } __packed __aligned(4); 85 86 union orb { 87 struct cmd_orb cmd; 88 struct tm_orb tm; 89 struct eadm_orb eadm; 90 } __packed __aligned(4); 91 92 #endif /* S390_ORB_H */ 93