cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

orb.h (1859B)


      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 */
     18struct 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 */
     43struct 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 */
     66struct 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
     86union 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 */