Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
orb.h
Go to the documentation of this file.
1 /*
2  * Orb related data structures.
3  *
4  * Copyright IBM Corp. 2007, 2011
5  *
6  * Author(s): Cornelia Huck <[email protected]>
7  * Peter Oberparleiter <[email protected]>
8  * Sebastian Ott <[email protected]>
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 {
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;
52  u32 prio:8;
53  u32: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 {
67  u32 key:4;
68  u32:4;
71  u32:21;
72  u32 x:1;
75  u32: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 */