Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
[pandora-kernel.git] / drivers / s390 / char / sclp.h
index 7d29ab4..aa8186d 100644 (file)
 #define MAX_KMEM_PAGES (sizeof(unsigned long) << 3)
 #define MAX_CONSOLE_PAGES      4
 
-#define EvTyp_OpCmd            0x01
-#define EvTyp_Msg              0x02
-#define EvTyp_StateChange      0x08
-#define EvTyp_PMsgCmd          0x09
-#define EvTyp_CntlProgOpCmd    0x20
-#define EvTyp_CntlProgIdent    0x0B
-#define EvTyp_SigQuiesce       0x1D
-#define EvTyp_VT220Msg         0x1A
-
-#define EvTyp_OpCmd_Mask       0x80000000
-#define EvTyp_Msg_Mask         0x40000000
-#define EvTyp_StateChange_Mask 0x01000000
-#define EvTyp_PMsgCmd_Mask     0x00800000
-#define EvTyp_CtlProgOpCmd_Mask        0x00000001
-#define EvTyp_CtlProgIdent_Mask        0x00200000
-#define EvTyp_SigQuiesce_Mask  0x00000008
-#define EvTyp_VT220Msg_Mask    0x00000040
-
-#define GnrlMsgFlgs_DOM                0x8000
-#define GnrlMsgFlgs_SndAlrm    0x4000
-#define GnrlMsgFlgs_HoldMsg    0x2000
-
-#define LnTpFlgs_CntlText      0x8000
-#define LnTpFlgs_LabelText     0x4000
-#define LnTpFlgs_DataText      0x2000
-#define LnTpFlgs_EndText       0x1000
-#define LnTpFlgs_PromptText    0x0800
+#define EVTYP_OPCMD            0x01
+#define EVTYP_MSG              0x02
+#define EVTYP_STATECHANGE      0x08
+#define EVTYP_PMSGCMD          0x09
+#define EVTYP_CNTLPROGOPCMD    0x20
+#define EVTYP_CNTLPROGIDENT    0x0B
+#define EVTYP_SIGQUIESCE       0x1D
+#define EVTYP_VT220MSG         0x1A
+#define EVTYP_CONFMGMDATA      0x04
+#define EVTYP_SDIAS            0x1C
+
+#define EVTYP_OPCMD_MASK       0x80000000
+#define EVTYP_MSG_MASK         0x40000000
+#define EVTYP_STATECHANGE_MASK 0x01000000
+#define EVTYP_PMSGCMD_MASK     0x00800000
+#define EVTYP_CTLPROGOPCMD_MASK        0x00000001
+#define EVTYP_CTLPROGIDENT_MASK        0x00200000
+#define EVTYP_SIGQUIESCE_MASK  0x00000008
+#define EVTYP_VT220MSG_MASK    0x00000040
+#define EVTYP_CONFMGMDATA_MASK 0x10000000
+#define EVTYP_SDIAS_MASK       0x00000010
+
+#define GNRLMSGFLGS_DOM                0x8000
+#define GNRLMSGFLGS_SNDALRM    0x4000
+#define GNRLMSGFLGS_HOLDMSG    0x2000
+
+#define LNTPFLGS_CNTLTEXT      0x8000
+#define LNTPFLGS_LABELTEXT     0x4000
+#define LNTPFLGS_DATATEXT      0x2000
+#define LNTPFLGS_ENDTEXT       0x1000
+#define LNTPFLGS_PROMPTTEXT    0x0800
 
 typedef unsigned int sclp_cmdw_t;
 
 #define SCLP_CMDW_READ_EVENT_DATA      0x00770005
 #define SCLP_CMDW_WRITE_EVENT_DATA     0x00760005
 #define SCLP_CMDW_WRITE_EVENT_MASK     0x00780005
-#define SCLP_CMDW_READ_SCP_INFO                0x00020001
-#define SCLP_CMDW_READ_SCP_INFO_FORCED 0x00120001
 
 #define GDS_ID_MDSMU           0x1310
-#define GDS_ID_MDSRouteInfo    0x1311
-#define GDS_ID_AgUnWrkCorr     0x1549
-#define GDS_ID_SNACondReport   0x1532
+#define GDS_ID_MDSROUTEINFO    0x1311
+#define GDS_ID_AGUNWRKCORR     0x1549
+#define GDS_ID_SNACONDREPORT   0x1532
 #define GDS_ID_CPMSU           0x1212
-#define GDS_ID_RoutTargInstr   0x154D
-#define GDS_ID_OpReq           0x8070
-#define GDS_ID_TextCmd         0x1320
+#define GDS_ID_ROUTTARGINSTR   0x154D
+#define GDS_ID_OPREQ           0x8070
+#define GDS_ID_TEXTCMD         0x1320
 
-#define GDS_KEY_SelfDefTextMsg 0x31
+#define GDS_KEY_SELFDEFTEXTMSG 0x31
 
 typedef u32 sccb_mask_t;       /* ATTENTION: assumes 32bit mask !!! */
 
+struct sccb_header {
+       u16     length;
+       u8      function_code;
+       u8      control_mask[3];
+       u16     response_code;
+} __attribute__((packed));
+
+extern u64 sclp_facilities;
+
+#define SCLP_HAS_CHP_INFO      (sclp_facilities & 0x8000000000000000ULL)
+#define SCLP_HAS_CHP_RECONFIG  (sclp_facilities & 0x2000000000000000ULL)
+#define SCLP_HAS_CPU_INFO      (sclp_facilities & 0x0800000000000000ULL)
+#define SCLP_HAS_CPU_RECONFIG  (sclp_facilities & 0x0400000000000000ULL)
+
 struct gds_subvector {
        u8      length;
        u8      key;
@@ -128,6 +144,9 @@ int sclp_deactivate(void);
 int sclp_reactivate(void);
 int sclp_service_call(sclp_cmdw_t command, void *sccb);
 
+int sclp_sdias_init(void);
+void sclp_sdias_exit(void);
+
 /* useful inlines */
 
 /* VM uses EBCDIC 037, LPAR+native(SE+HMC) use EBCDIC 500 */