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 #include <linux/types.h> 16 #include <asm/dma-types.h> 17 18 /* 19 * Command-mode operation request block 20 */ 21 struct cmd_orb { 22 u32 intparm; /* interruption parameter */ 23 u32 key:4; /* flags, like key, suspend control, etc. */ 24 u32 spnd:1; /* suspend control */ 25 u32 res1:1; /* reserved */ 26 u32 mod:1; /* modification control */ 27 u32 sync:1; /* synchronize control */ 28 u32 fmt:1; /* format control */ 29 u32 pfch:1; /* prefetch control */ 30 u32 isic:1; /* initial-status-interruption control */ 31 u32 alcc:1; /* address-limit-checking control */ 32 u32 ssic:1; /* suppress-suspended-interr. control */ 33 u32 res2:1; /* reserved */ 34 u32 c64:1; /* IDAW/QDIO 64 bit control */ 35 u32 i2k:1; /* IDAW 2/4kB block size control */ 36 u32 lpm:8; /* logical path mask */ 37 u32 ils:1; /* incorrect length */ 38 u32 zero:6; /* reserved zeros */ 39 u32 orbx:1; /* ORB extension control */ 40 dma32_t cpa; /* channel program address */ 41 } __packed __aligned(4); 42 43 /* 44 * Transport-mode operation request block 45 */ 46 struct tm_orb { 47 u32 intparm; 48 u32 key:4; 49 u32:9; 50 u32 b:1; 51 u32:2; 52 u32 lpm:8; 53 u32:7; 54 u32 x:1; 55 dma32_t tcw; 56 u32 prio:8; 57 u32:8; 58 u32 rsvpgm:8; 59 u32:8; 60 u32:32; 61 u32:32; 62 u32:32; 63 u32:32; 64 } __packed __aligned(4); 65 66 /* 67 * eadm operation request block 68 */ 69 struct eadm_orb { 70 u32 intparm; 71 u32 key:4; 72 u32:4; 73 u32 compat1:1; 74 u32 compat2:1; 75 u32:21; 76 u32 x:1; 77 dma32_t aob; 78 u32 css_prio:8; 79 u32:8; 80 u32 scm_prio:8; 81 u32:8; 82 u32:29; 83 u32 fmt:3; 84 u32:32; 85 u32:32; 86 u32:32; 87 } __packed __aligned(4); 88 89 union orb { 90 struct cmd_orb cmd; 91 struct tm_orb tm; 92 struct eadm_orb eadm; 93 } __packed __aligned(4); 94 95 #endif /* S390_ORB_H */ 96