/* * Orb related data structures. * * Copyright IBM Corp. 2007, 2011 * * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> * Peter Oberparleiter <peter.oberparleiter@de.ibm.com> * Sebastian Ott <sebott@linux.vnet.ibm.com> */ #ifndef S390_ORB_H #define S390_ORB_H /* * Command-mode operation request block */ struct cmd_orb { u32 intparm; /* interruption parameter */ u32 key:4; /* flags, like key, suspend control, etc. */ u32 spnd:1; /* suspend control */ u32 res1:1; /* reserved */ u32 mod:1; /* modification control */ u32 sync:1; /* synchronize control */ u32 fmt:1; /* format control */ u32 pfch:1; /* prefetch control */ u32 isic:1; /* initial-status-interruption control */ u32 alcc:1; /* address-limit-checking control */ u32 ssic:1; /* suppress-suspended-interr. control */ u32 res2:1; /* reserved */ u32 c64:1; /* IDAW/QDIO 64 bit control */ u32 i2k:1; /* IDAW 2/4kB block size control */ u32 lpm:8; /* logical path mask */ u32 ils:1; /* incorrect length */ u32 zero:6; /* reserved zeros */ u32 orbx:1; /* ORB extension control */ u32 cpa; /* channel program address */ } __packed __aligned(4); /* * Transport-mode operation request block */ struct tm_orb { u32 intparm; u32 key:4; u32:9; u32 b:1; u32:2; u32 lpm:8; u32:7; u32 x:1; u32 tcw; u32 prio:8; u32:8; u32 rsvpgm:8; u32:8; u32:32; u32:32; u32:32; u32:32; } __packed __aligned(4); /* * eadm operation request block */ struct eadm_orb { u32 intparm; u32 key:4; u32:4; u32 compat1:1; u32 compat2:1; u32:21; u32 x:1; u32 aob; u32 css_prio:8; u32:8; u32 scm_prio:8; u32:8; u32:29; u32 fmt:3; u32:32; u32:32; u32:32; } __packed __aligned(4); union orb { struct cmd_orb cmd; struct tm_orb tm; struct eadm_orb eadm; } __packed __aligned(4); #endif /* S390_ORB_H */