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