root/drivers/s390/cio/orb.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 */

/* [<][>][^][v][top][bottom][index][help] */