1 /* SERVICE.H    (c) Copyright Jan Jaeger, 1999-2009                  */
2 /*              Service Processor Architectured fields               */
3 
4 #if !defined(_SERVICE_H)
5 
6 #define _SERVICE_H
7 
8 /*-------------------------------------------------------------------*/
9 /* Service Call Logical Processor command word definitions           */
10 /*-------------------------------------------------------------------*/
11 #define SCLP_READ_SCP_INFO      0x00020001
12 #define SCLP_READ_IFL_INFO      0x00120001
13 #define SCLP_READ_CHP_INFO      0x00030001
14 #define SCLP_READ_CSI_INFO      0x001C0001
15 
16 #define SCLP_READ_XST_MAP       0x00250001
17 
18 #define SCLP_WRITE_EVENT_DATA   0x00760005
19 #define SCLP_READ_EVENT_DATA    0x00770005
20 #define SCLP_WRITE_EVENT_MASK   0x00780005
21 
22 #define SCLP_DECONFIGURE_CPU    0x00100001
23 #define SCLP_CONFIGURE_CPU      0x00110001
24 
25 #define SCLP_DISCONNECT_VF      0x001A0001
26 #define SCLP_CONNECT_VF         0x001B0001
27 
28 #define SCLP_COMMAND_MASK       0xFFFF00FF
29 #define SCLP_COMMAND_CLASS      0x000000FF
30 #define SCLP_RESOURCE_MASK      0x0000FF00
31 #define SCLP_RESOURCE_SHIFT     8
32 
33 /*-------------------------------------------------------------------*/
34 /* Service Call Control Block structure definitions                  */
35 /*-------------------------------------------------------------------*/
36 typedef struct _SCCB_HEADER {
37         HWORD   length;                 /* Total length of SCCB      */
38         BYTE    flag;                   /* Flag byte                 */
39         BYTE    resv1[2];               /* Reserved                  */
40         BYTE    type;                   /* Request type              */
41         BYTE    reas;                   /* Reason code               */
42         BYTE    resp;                   /* Response class code       */
43     } SCCB_HEADER;
44 
45 /* Bit definitions for SCCB header flag byte */
46 #define SCCB_FLAG_SYNC          0x80    /* Synchronous request       */
47 
48 /* Bit definitions for SCCB header request type */
49 #define SCCB_TYPE_VARIABLE      0x80    /* Variable request          */
50 
51 /* Bit definitions for SCCB header reason code */
52 #define SCCB_REAS_NONE          0x00    /* No reason                 */
53 #define SCCB_REAS_NOT_PGBNDRY   0x01    /* SCCB crosses page boundary*/
54 #define SCCB_REAS_ODD_LENGTH    0x02    /* Length not multiple of 8  */
55 #define SCCB_REAS_TOO_SHORT     0x03    /* Length is inadequate      */
56 #define SCCB_REAS_NOACTION      0x02    /* Resource in req. state    */
57 #define SCCB_REAS_STANDBY       0x04    /* Resource in standby state */
58 #define SCCB_REAS_INVALID_CMD   0x01    /* Invalid SCLP command code */
59 #define SCCB_REAS_INVALID_RSCP  0x03    /* Invalid resource in parm  */
60 #define SCCB_REAS_IMPROPER_RSC  0x05    /* Resource in improper state*/
61 #define SCCB_REAS_INVALID_RSC   0x09    /* Invalid resource          */
62 
63 /* Bit definitions for SCCB header response class code */
64 #define SCCB_RESP_BLOCK_ERROR   0x00    /* Data block error          */
65 #define SCCB_RESP_INFO          0x10    /* Information returned      */
66 #define SCCB_RESP_COMPLETE      0x20    /* Command complete          */
67 #define SCCB_RESP_BACKOUT       0x40    /* Command backed out        */
68 #define SCCB_RESP_REJECT        0xF0    /* Command reject            */
69 
70 // #ifdef FEATURE_SYSTEM_CONSOLE
71 #define SCCB_REAS_NO_EVENTS     0x60    /* No outstanding EVENTs     */
72 #define SCCB_RESP_NO_EVENTS     0xF0
73 #define SCCB_REAS_EVENTS_SUP    0x62    /* All events suppressed     */
74 #define SCCB_RESP_EVENTS_SUP    0xF0
75 #define SCCB_REAS_INVALID_MASK  0x70    /* Invalid events mask       */
76 #define SCCB_RESP_INVALID_MASK  0xF0
77 #define SCCB_REAS_MAX_BUFF      0x71    /* Buffer exceeds maximum    */
78 #define SCCB_RESP_MAX_BUFF      0xF0
79 #define SCCB_REAS_BUFF_LEN_ERR  0x72    /* Buffer len verification   */
80 #define SCCB_RESP_BUFF_LEN_ERR  0xF0
81 #define SCCB_REAS_SYNTAX_ERROR  0x73    /* Buffer syntax error       */
82 #define SCCB_RESP_SYNTAX_ERROR  0xF0
83 #define SCCB_REAS_INVALID_MSKL  0x74    /* Invalid mask length       */
84 #define SCCB_RESP_INVALID_MSKL  0xF0
85 #define SCCB_REAS_EXCEEDS_SCCB  0x75    /* Exceeds SCCB max capacity */
86 #define SCCB_RESP_EXCEEDS_SCCB  0xF0
87 // #endif /*FEATURE_SYSTEM_CONSOLE*/
88 
89 /* SCP information data area */
90 typedef struct _SCCB_SCP_INFO {
91         HWORD   realinum;               /* Number of real storage
92                                            increments installed      */
93         BYTE    realiszm;               /* Size of each real storage
94                                            increment in MB           */
95         BYTE    realbszk;               /* Size of each real storage
96                                            block in KB               */
97         HWORD   realiint;               /* Real storage increment
98                                            block interleave interval */
99         HWORD   resv2;                  /* Reserved                  */
100         HWORD   numcpu;                 /* Number of CPUs installed  */
101         HWORD   offcpu;                 /* Offset from start of SCCB
102                                            to CPU information array  */
103         HWORD   numhsa;                 /* Number of HSAs            */
104         HWORD   offhsa;                 /* Offset from start of SCCB
105                                            to HSA information array  */
106         BYTE    loadparm[8];            /* Load parameter            */
107         FWORD   xpndinum;               /* Number of expanded storage
108                                            increments installed      */
109         FWORD   xpndsz4K;               /* Number of 4KB blocks in an
110                                            expanded storage increment*/
111         HWORD   xpndenum;               /* Number of expanded storage
112                                            elements installed        */
113         HWORD   resv3;                  /* Reserved                  */
114         HWORD   vectssiz;               /* Vector section size       */
115         HWORD   vectpsum;               /* Vector partial sum number */
116         BYTE    ifm[8];                 /* Installed facilities      */
117         BYTE    resv4[8];               /* Reserved                  */
118         HWORD   maxresgp;               /* Maximum resource group    */
119         BYTE    resv5[6];               /* Reserved                  */
120         HWORD   nummpf;                 /* Number of entries in MPF
121                                            information array         */
122         HWORD   offmpf;                 /* Offset from start of SCCB
123                                            to MPF information array  */
124         BYTE    resv6[4];               /* Reserved                  */
125         BYTE    cfg[6];                 /* Config characteristics    */
126         FWORD   rcci;                   /* Capacity                  */
127         BYTE    cfg11;                  /* Config char. byte 11      */
128         BYTE    numcrl;                 /* Max #of copy and reassign
129                                            list elements allowed     */
130         FWORD   etrtol;                 /* ETR sync check tolerance  */
131         BYTE    resv60[3];
132         BYTE    maxvm;                  /* Max guest storage size
133                                            >= 31 and <= 64 (2**pow)-1
134                                            is the max supported
135                                            guest real size. 0 means
136                                            not constrained.          */
137         FWORD   grzm;                   /* Addess increment size in
138                                            units of 1M, valid only
139                                            if realiszm is zero       */
140         DBLWRD  grnmx;                  /* Maximum increment number
141                                            when it is larger then
142                                            64K or when ESAME is on   */
143         BYTE    resv8[16];              /* Reserved                  */
144     } SCCB_SCP_INFO;
145 
146 /* Bit definitions for installed facilities */
147 #define SCCB_IFM0_CHANNEL_PATH_INFORMATION              0x80
148 #define SCCB_IFM0_CHANNEL_PATH_SUBSYSTEM_COMMAND        0x40
149 #define SCCB_IFM0_CHANNEL_PATH_RECONFIG                 0x20
150 #define SCCB_IFM0_CPU_INFORMATION                       0x08
151 #define SCCB_IFM0_CPU_RECONFIG                          0x04
152 #define SCCB_IFM1_SIGNAL_ALARM                          0x80
153 #define SCCB_IFM1_WRITE_OPERATOR_MESSAGE                0x40
154 #define SCCB_IFM1_STORE_STATUS_ON_LOAD                  0x20
155 #define SCCB_IFM1_RESTART_REASONS                       0x10
156 #define SCCB_IFM1_INSTRUCTION_ADDRESS_TRACE_BUFFER      0x08
157 #define SCCB_IFM1_LOAD_PARAMETER                        0x04
158 #define SCCB_IFM1_READ_AND_WRITE_DATA                   0x02
159 #define SCCB_IFM2_REAL_STORAGE_INCREMENT_RECONFIG       0x80
160 #define SCCB_IFM2_REAL_STORAGE_ELEMENT_INFO             0x40
161 #define SCCB_IFM2_REAL_STORAGE_ELEMENT_RECONFIG         0x20
162 #define SCCB_IFM2_COPY_AND_REASSIGN_STORAGE             0x10
163 #define SCCB_IFM2_EXTENDED_STORAGE_USABILITY_MAP        0x08
164 #define SCCB_IFM2_EXTENDED_STORAGE_ELEMENT_INFO         0x04
165 #define SCCB_IFM2_EXTENDED_STORAGE_ELEMENT_RECONFIG     0x02
166 #define SCCB_IFM2_COPY_AND_REASSIGN_STORAGE_LIST        0x01
167 #define SCCB_IFM3_VECTOR_FEATURE_RECONFIG               0x80
168 #define SCCB_IFM3_READ_WRITE_EVENT_FEATURE              0x40
169 #define SCCB_IFM3_EXTENDED_STORAGE_USABILITY_MAP_EXT    0x20
170 #define SCCB_IFM3_READ_RESOURCE_GROUP_INFO              0x08
171 #define SCCB_IFM4_READ_STORAGE_STATUS                   0x80
172 
173 /* Bit definitions for configuration characteristics */
174 #define SCCB_CFG0_LOGICALLY_PARTITIONED                 0x80
175 #define SCCB_CFG0_SUPPRESSION_ON_PROTECTION             0x20
176 #define SCCB_CFG0_INITIATE_RESET                        0x10
177 #define SCCB_CFG0_STORE_CHANNEL_SUBSYS_CHARACTERISTICS  0x08
178 #define SCCB_CFG0_FAST_SYNCHRONOUS_DATA_MOVER           0x01
179 #define SCCB_CFG0_MVPG_FOR_ALL_GUESTS                   0x04
180 #define SCCB_CFG0_UNKNOWN_BUT_SET_UNDER_VM              0x02
181 #define SCCB_CFG1_CSLO                                  0x40
182 #define SCCB_CFG2_DEVICE_ACTIVE_ONLY_MEASUREMENT        0x40
183 #define SCCB_CFG2_CALLED_SPACE_IDENTIFICATION           0x02
184 #define SCCB_CFG2_CHECKSUM_INSTRUCTION                  0x01
185 #define SCCB_CFG3_RESUME_PROGRAM                        0x80
186 #define SCCB_CFG3_PERFORM_LOCKED_OPERATION              0x40
187 #define SCCB_CFG3_IMMEDIATE_AND_RELATIVE                0x10
188 #define SCCB_CFG3_COMPARE_AND_MOVE_EXTENDED             0x08
189 #define SCCB_CFG3_BRANCH_AND_SET_AUTHORITY              0x04
190 #define SCCB_CFG3_EXTENDED_FLOATING_POINT               0x02
191 #define SCCB_CFG3_EXTENDED_LOGICAL_COMPUTATION_FACILITY 0x01
192 #define SCCB_CFG4_EXTENDED_TOD_CLOCK                    0x80
193 #define SCCB_CFG4_EXTENDED_TRANSLATION                  0x40
194 #define SCCB_CFG4_LOAD_REVERSED_FACILITY                0x20
195 #define SCCB_CFG4_EXTENDED_TRANSLATION_FACILITY2        0x10
196 #define SCCB_CFG4_STORE_SYSTEM_INFORMATION              0x08
197 #define SCCB_CFG4_LPAR_CLUSTERING                       0x02
198 #define SCCB_CFG4_IFA_FACILITY                          0x01
199 #define SCCB_CFG5_SENSE_RUNNING_STATUS                  0x08
200 #define SCCB_CFG5_ESAME                                 0x01
201 #define SCCB_CFGB_PER_3                                 0x04
202 #define SCCB_CFGB_LOAD_WITH_DUMP                        0x02
203 #define SCCB_CFGB_LIST_DIRECTED_IPL                     0x01
204 
205 /* CPU information array entry */
206 typedef struct _SCCB_CPU_INFO {
207         BYTE    cpa;                    /* CPU address               */
208         BYTE    tod;                    /* TOD clock number          */
209         BYTE    cpf[12];                /* RCPU facility map         */
210         BYTE    ptyp;                   /* Processor type            */
211         BYTE    ksid;                   /* Crypto unit identifier    */
212     } SCCB_CPU_INFO;
213 
214 /* Bit definitions for CPU installed features */
215 #define SCCB_CPF0_SIE_370_MODE                          0x80
216 #define SCCB_CPF0_SIE_XA_MODE                           0x40
217 #define SCCB_CPF0_SIE_SET_II_370_MODE                   0x20
218 #define SCCB_CPF0_SIE_SET_II_XA_MODE                    0x10
219 #define SCCB_CPF0_SIE_NEW_INTERCEPT_FORMAT              0x08
220 #define SCCB_CPF0_STORAGE_KEY_ASSIST                    0x04
221 #define SCCB_CPF0_MULTIPLE_CONTROLLED_DATA_SPACE        0x02
222 #define SCCB_CPF1_IO_INTERPRETATION_LEVEL_2             0x40
223 #define SCCB_CPF1_GUEST_PER_ENHANCED                    0x20
224 #define SCCB_CPF1_SIGP_INTERPRETATION_ASSIST            0x08
225 #define SCCB_CPF1_RCP_BYPASS_FACILITY                   0x04
226 #define SCCB_CPF1_REGION_RELOCATE_FACILITY              0x02
227 #define SCCB_CPF1_EXPEDITE_TIMER_PROCESSING             0x01
228 #define SCCB_CPF2_VECTOR_FEATURE_INSTALLED              0x80
229 #define SCCB_CPF2_VECTOR_FEATURE_CONNECTED              0x40
230 #define SCCB_CPF2_VECTOR_FEATURE_STANDBY_STATE          0x20
231 #define SCCB_CPF2_CRYPTO_FEATURE_ACCESSED               0x10
232 #define SCCB_CPF2_EXPEDITE_RUN_PROCESSING               0x04
233 #define SCCB_CPF3_PRIVATE_SPACE_FEATURE                 0x80
234 #define SCCB_CPF3_FETCH_ONLY_BIT                        0x40
235 #define SCCB_CPF3_PER2_INSTALLED                        0x01
236 #define SCCB_CPF4_OMISION_GR_ALTERATION_370             0x80
237 #define SCCB_CPF5_GUEST_WAIT_STATE_ASSIST               0x40
238 
239 /* Definitions for processor type code */
240 #define SCCB_PTYP_CP                                    0
241 #define SCCB_PTYP_ICF                                   1
242 #define SCCB_PTYP_IFA                                   2
243 #define SCCB_PTYP_IFL                                   3
244 #define SCCB_PTYP_SUP                                   5
245 #define SCCB_PTYP_MAX                                   5 /*(maximum value)*/
246 
247 /* processor type macro */
248 #define PTYPSTR(i) ( \
249         sysblk.ptyp[(i)] == SCCB_PTYP_CP  ? "CP" :  \
250         sysblk.ptyp[(i)] == SCCB_PTYP_ICF ? "CF" :  \
251         sysblk.ptyp[(i)] == SCCB_PTYP_IFA ? "AP" :  \
252         sysblk.ptyp[(i)] == SCCB_PTYP_IFL ? "IL" :  \
253         sysblk.ptyp[(i)] == SCCB_PTYP_SUP ? "IP" :  \
254         "<unknown processor type>")
255 
256 /* Definitions for crypto unit identifier */
257 #define SCCB_KSID_CRYPTO_UNIT_ID                        0x01
258 
259 /* HSA information array entry */
260 typedef struct _SCCB_HSA_INFO {
261         HWORD   hssz;                   /* Size of HSA in 4K blocks  */
262         FWORD   ahsa;                   /* Address of HSA            */
263     } SCCB_HSA_INFO;
264 
265 /* MPF information array entry */
266 typedef struct _SCCB_MPF_INFO {
267         HWORD   mpfy;                   /* MPF info array entry      */
268     } SCCB_MPF_INFO;
269 
270 /* Channel path information data area */
271 typedef struct _SCCB_CHP_INFO {
272         BYTE    installed[32];          /* Channels installed bits   */
273         BYTE    standby[32];            /* Channels standby bits     */
274         BYTE    online[32];             /* Channels online bits      */
275     } SCCB_CHP_INFO;
276 
277 /* Channel path information data area */
278 typedef struct _SCCB_CHSET {
279         BYTE    chanset0a[32];          /* 370 channel set 0A        */
280         BYTE    chanset1a[32];          /* 370 channel set 1A        */
281         BYTE    chanset0b[32];          /* 370 channel set 0B        */
282         BYTE    chanset1b[32];          /* 370 channel set 1B        */
283         BYTE    csconfig;               /* Channel set configuration */
284         BYTE    resv[23];               /* Reserved, set to zero     */
285     } SCCB_CHSET_INFO;
286 
287 /* Read Channel Subsystem Information data area */
288 typedef struct _SCCB_CSI_INFO {
289         BYTE    csif[8];                /* Channel Subsystem installed
290                                            facility field            */
291         BYTE    resv[48];
292     } SCCB_CSI_INFO;
293 
294 /* Bit definitions for channel subsystem installed facilities */
295 #define SCCB_CSI0_CANCEL_IO_REQUEST_FACILITY            0x02
296 #define SCCB_CSI0_CONCURRENT_SENSE_FACILITY             0x01
297 
298 // #ifdef FEATURE_SYSTEM_CONSOLE
299 /* Write Event Mask */
300 typedef struct _SCCB_EVENT_MASK {
301         HWORD   reserved;
302         HWORD   length;                 /* Event mask length         */
303         BYTE    masks[32];              /* Event masks               */
304 //      FWORD   cp_recv_mask;           /* These mask fields have    */
305 //      FWORD   cp_send_mask;           /* the length defined by     */
306 //      FWORD   sclp_recv_mask;         /* the length halfword       */
307 //      FWORD   sclp_send_mask;
308     } SCCB_EVENT_MASK;
309 
310 #define SCCB_EVENT_CONS_RECV_MASK ( \
311         (0x80000000 >> (SCCB_EVD_TYPE_MSG-1))   | \
312         (0x80000000 >> (SCCB_EVD_TYPE_PRIOR-1)) )
313 #define SCCB_EVENT_CONS_SEND_MASK ( \
314         (0x80000000 >> (SCCB_EVD_TYPE_OPCMD-1)) | \
315         (0x80000000 >> (SCCB_EVD_TYPE_PRIOR-1)) | \
316         (0x80000000 >> (SCCB_EVD_TYPE_CPCMD-1)) )
317 
318 /* Read/Write Event Data Header */
319 typedef struct _SCCB_EVD_HDR {
320         HWORD   totlen;                 /* Event Data Buffer total
321                                            length                    */
322         BYTE    type;
323 #define SCCB_EVD_TYPE_OPCMD     0x01    /* Operator command          */
324 #define SCCB_EVD_TYPE_MSG       0x02    /* Message from Control Pgm  */
325 // #if defined(FEATURE_SCEDIO )
326 #define SCCB_EVD_TYPE_SCEDIO    0x07    /* SCE DASD I/O              */
327 // #endif /*defined(FEATURE_SCEDIO )*/
328 #define SCCB_EVD_TYPE_STATECH   0x08    /* State Change              */
329 #define SCCB_EVD_TYPE_PRIOR     0x09    /* Priority message/command  */
330 #define SCCB_EVD_TYPE_CPIDENT   0x0B    /* CntlProgIdent             */
331 #define SCCB_EVD_TYPE_VT220     0x1A    /* VT220 Msg                 */
332 #define SCCB_EVD_TYPE_SYSG      0x1B    /* 3270 Msg (SYSG console)   */
333 #define SCCB_EVD_TYPE_SIGQ      0x1D    /* SigQuiesce                */
334 #define SCCB_EVD_TYPE_CPCMD     0x20    /* CntlProgOpCmd             */
335         BYTE    flag;
336 #define SCCB_EVD_FLAG_PROC      0x80    /* Event successful          */
337         HWORD   resv;                   /* Reserved for future use   */
338     } SCCB_EVD_HDR;
339 
340 
341 /* Read/Write Event Data Buffer */
342 typedef struct _SCCB_EVD_BK {
343         HWORD   msglen;
344         BYTE    const1[51];
345         HWORD   cplen;                  /* CP message length         */
346         BYTE    const2[24];
347         HWORD   tdlen;                  /* Text Data length          */
348         BYTE    const3[2];
349         BYTE    sdtlen;
350         BYTE    const4;                 /* Self defining tag         */
351         BYTE    tmlen;
352         BYTE    const5;                 /* Text Message format       */
353 //      BYTE    txtmsg[n];
354     } SCCB_EVD_BK;
355 
356 /* Message Control Data Block */
357 typedef struct _SCCB_MCD_BK {
358         HWORD   length;                 /* Total length of MCD       */
359         HWORD   type;                   /* Type must be 0x0001       */
360         FWORD   tag;                    /* Tag must be 0xD4C4C240    */
361         FWORD   revcd;                  /* Revision code 0x00000001  */
362     } SCCB_MCD_BK;
363 
364 /* Message Control Data Block Header */
365 typedef struct _SCCB_OBJ_HDR {
366         HWORD   length;                 /* Total length of OBJ       */
367         HWORD   type;                   /* Object type               */
368 #define SCCB_OBJ_TYPE_GENERAL   0x0001  /* General Object            */
369 #define SCCB_OBJ_TYPE_CPO       0x0002  /* Control Program Object    */
370 #define SCCB_OBJ_TYPE_NLS       0x0003  /* NLS data Object           */
371 #define SCCB_OBJ_TYPE_MESSAGE   0x0004  /* Message Text Object       */
372     } SCCB_OBJ_HDR;
373 
374 /* Message Control Data Block Message Text Object */
375 typedef struct _SCCB_MTO_BK {
376         BYTE    ltflag[2];              /* Line type flag            */
377 #define SCCB_MTO_LTFLG0_CNTL    0x80    /* Control text line         */
378 #define SCCB_MTO_LTFLG0_LABEL   0x40    /* Label text line           */
379 #define SCCB_MTO_LTFLG0_DATA    0x20    /* Data text line            */
380 #define SCCB_MTO_LTFLG0_END     0x10    /* Last line of message      */
381 #define SCCB_MTO_LTFLG0_PROMPT  0x08    /* Prompt line - response
382                                            requested (WTOR)          */
383 #define SCCB_MTO_LTFLG0_DBCS    0x04    /* DBCS text                 */
384 #define SCCB_MTO_LTFLG0_MIX     0x02    /* Mixed SBCS/DBCS text      */
385 #define SCCB_MTO_LTFLG1_OVER    0x01    /* Foreground presentation
386                                            field override            */
387         BYTE    presattr[4];            /* Presentation Attribute
388                                            Byte 0 - control
389                                            Byte 1 - color
390                                            Byte 2 - highlighting
391                                            Byte 3 - intensity        */
392 #define SCCB_MTO_PRATTR0_ALARM  0x80    /* Sound alarm (console)     */
393 #define SCCB_MTO_PRATTR3_HIGH   0xE8    /* Highlighted               */
394 #define SCCB_MTO_PRATTR3_NORM   0xE4    /* Normal                    */
395     } SCCB_MTO_BK;
396 
397 /* Message Control Data Block General Object */
398 typedef struct _SCCB_MGO_BK {
399         FWORD   seq;                    /* Message DOM ID            */
400         BYTE    time[11];               /* C'HH.MM.SS.th'            */
401         BYTE    resv1;
402         BYTE    date[7];                /* C'YYYYDDD'                */
403         BYTE    resv2;
404         BYTE    mflag[2];               /* Message Flags             */
405 #define SCCB_MGO_MFLAG0_DOM     0x80    /* Delete Operator Message   */
406 #define SCCB_MGO_MFLAG0_ALARM   0x40    /* Sound the SCLP alarm      */
407 #define SCCB_MGO_MFLAG0_HOLD    0x20    /* Hold message until DOM    */
408         BYTE    presattr[4];            /* Presentation Attribute
409                                            Byte 0 - control
410                                            Byte 1 - color
411                                            Byte 2 - highlighting
412                                            Byte 3 - intensity        */
413 #define SCCB_MGO_PRATTR0_ALARM  0x80    /* Sound alarm (console)     */
414 #define SCCB_MGO_PRATTR3_HIGH   0xE8    /* Highlighted               */
415 #define SCCB_MGO_PRATTR3_NORM   0xE4    /* Normal                    */
416         BYTE    bckattr[4];             /* Background presentation
417                                            attributes - covers all
418                                            message-test foreground
419                                            presentation attribute
420                                            field overrides           */
421         BYTE    sysname[8];             /* Originating system name   */
422         BYTE    jobname[8];             /* Jobname or guestname      */
423     } SCCB_MGO_BK;
424 
425 /* Control Program Information */
426 typedef struct _SCCB_CPI_BK {
427         BYTE    id_fmt;
428         BYTE    resv0;
429         BYTE    system_type[8];
430         DBLWRD  resv1;
431         BYTE    system_name[8];
432         DBLWRD  resv2;
433         DBLWRD  system_level;
434         DBLWRD  resv3;
435         BYTE    sysplex_name[8];
436         BYTE    resv4[16];
437     } SCCB_CPI_BK;
438 
439 /* Message Control Data Block NLS Object */
440 typedef struct _SCCB_NLS_BK {
441         HWORD   scpgid;                 /* CPGID for SBCS (def 037)  */
442         HWORD   scpsgid;                /* CPSGID for SBCS (def 637) */
443         HWORD   dcpgid;                 /* CPGID for DBCS (def 037)  */
444         HWORD   dcpsgid;                /* CPSGID for DBCS (def 637) */
445     } SCCB_NLS_BK;
446 
447 /* Signal Quiesce */
448 typedef struct _SCCB_SGQ_BK {
449     HWORD   count;                  /* Countdown in units        */
450     BYTE    unit;                   /* Unit type                 */
451 #define SCCB_SGQ_SEC 0
452 #define SCCB_SGQ_MIN 1
453 #define SCCB_SGQ_HR  2
454     } SCCB_SGQ_BK;
455 
456 // #endif /*FEATURE_SYSTEM_CONSOLE*/
457 
458 // #ifdef FEATURE_EXPANDED_STORAGE
459 typedef struct _SCCB_XST_INFO {
460         HWORD   elmid;                  /* Extended storage element
461                                                                 id   */
462         BYTE    resv1[6];
463         FWORD   elmsin;                 /* Starting increment number */
464         FWORD   elmein;                 /* Ending increment number   */
465         BYTE    elmchar;                /* Element characteristics   */
466 #define SCCB_XST_INFO_ELMCHAR_REQ 0x80; /* Required element          */
467         BYTE    resv2[39];
468     } SCCB_XST_INFO;
469 
470 typedef struct _SCCB_XST_MAP {
471         FWORD   incnum;                 /* Increment number          */
472         FWORD   resv;
473 //      BYTE    map[];                  /* Bitmap of all usable
474 //                                         expanded storage blocks   */
475     } SCCB_XST_MAP;
476 // #endif /*FEATURE_EXPANDED_STORAGE*/
477 
478 
479 // #if defined(FEATURE_SCEDIO )
480 /* SCE DASD I/O Request */
481 typedef struct _SCCB_SCEDIO_BK {
482         BYTE    flag0;
483         BYTE    flag1;
484 #define SCCB_SCEDIO_FLG1_IOR       0x03
485 #define SCCB_SCEDIO_FLG1_IOV       0x04
486         BYTE    flag2;
487         BYTE    flag3;
488 #define SCCB_SCEDIO_FLG3_COMPLETE  0x80
489 
490     } SCCB_SCEDIO_BK;
491 
492 typedef struct _SCCB_SCEDIOV_BK {
493         BYTE    type;
494 #define SCCB_SCEDIOV_TYPE_INIT     0x00
495 #define SCCB_SCEDIOV_TYPE_READ     0x01
496 #define SCCB_SCEDIOV_TYPE_CREATE   0x02
497 #define SCCB_SCEDIOV_TYPE_APPEND   0x03
498         BYTE    flag1;
499         BYTE    flag2;
500         BYTE    flag3;
501         DBLWRD  seek;
502         DBLWRD  ncomp;
503         DBLWRD  length;
504         DBLWRD  resv2;
505         DBLWRD  resv3;
506         DBLWRD  sto;
507         BYTE    filename[256];
508     } SCCB_SCEDIOV_BK;
509 
510 typedef struct _SCCB_SCEDIOR_BK {
511         BYTE    type;
512 #define SCCB_SCEDIOR_TYPE_INIT     0x00
513 #define SCCB_SCEDIOR_TYPE_READ     0x01
514         BYTE    flag1;
515         BYTE    flag2;
516         BYTE    flag3;
517         FWORD   origin;
518         FWORD   resv1;
519         FWORD   resv2;
520         BYTE    image[8];
521     } SCCB_SCEDIOR_BK;
522 
523 // #endif /*defined(FEATURE_SCEDIO )*/
524 
525 #endif /*!defined(_SERVICE_H)*/
526