Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * Orb related data structures.
0004  *
0005  * Copyright IBM Corp. 2007, 2011
0006  *
0007  * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
0008  *        Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
0009  *        Sebastian Ott <sebott@linux.vnet.ibm.com>
0010  */
0011 
0012 #ifndef S390_ORB_H
0013 #define S390_ORB_H
0014 
0015 /*
0016  * Command-mode operation request block
0017  */
0018 struct cmd_orb {
0019     u32 intparm;    /* interruption parameter */
0020     u32 key:4;  /* flags, like key, suspend control, etc. */
0021     u32 spnd:1; /* suspend control */
0022     u32 res1:1; /* reserved */
0023     u32 mod:1;  /* modification control */
0024     u32 sync:1; /* synchronize control */
0025     u32 fmt:1;  /* format control */
0026     u32 pfch:1; /* prefetch control */
0027     u32 isic:1; /* initial-status-interruption control */
0028     u32 alcc:1; /* address-limit-checking control */
0029     u32 ssic:1; /* suppress-suspended-interr. control */
0030     u32 res2:1; /* reserved */
0031     u32 c64:1;  /* IDAW/QDIO 64 bit control  */
0032     u32 i2k:1;  /* IDAW 2/4kB block size control */
0033     u32 lpm:8;  /* logical path mask */
0034     u32 ils:1;  /* incorrect length */
0035     u32 zero:6; /* reserved zeros */
0036     u32 orbx:1; /* ORB extension control */
0037     u32 cpa;    /* channel program address */
0038 }  __packed __aligned(4);
0039 
0040 /*
0041  * Transport-mode operation request block
0042  */
0043 struct tm_orb {
0044     u32 intparm;
0045     u32 key:4;
0046     u32:9;
0047     u32 b:1;
0048     u32:2;
0049     u32 lpm:8;
0050     u32:7;
0051     u32 x:1;
0052     u32 tcw;
0053     u32 prio:8;
0054     u32:8;
0055     u32 rsvpgm:8;
0056     u32:8;
0057     u32:32;
0058     u32:32;
0059     u32:32;
0060     u32:32;
0061 }  __packed __aligned(4);
0062 
0063 /*
0064  * eadm operation request block
0065  */
0066 struct eadm_orb {
0067     u32 intparm;
0068     u32 key:4;
0069     u32:4;
0070     u32 compat1:1;
0071     u32 compat2:1;
0072     u32:21;
0073     u32 x:1;
0074     u32 aob;
0075     u32 css_prio:8;
0076     u32:8;
0077     u32 scm_prio:8;
0078     u32:8;
0079     u32:29;
0080     u32 fmt:3;
0081     u32:32;
0082     u32:32;
0083     u32:32;
0084 }  __packed __aligned(4);
0085 
0086 union orb {
0087     struct cmd_orb cmd;
0088     struct tm_orb tm;
0089     struct eadm_orb eadm;
0090 }  __packed __aligned(4);
0091 
0092 #endif /* S390_ORB_H */