Viewing file: hwc.h (4.31 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* * drivers/s390/char/hwc.h * * * S390 version * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Author(s): Martin Peschke <mpeschke@de.ibm.com> * * * */
#ifndef __HWC_H__ #define __HWC_H__
#define HWC_EXT_INT_PARAM_ADDR 0xFFFFFFF8 #define HWC_EXT_INT_PARAM_PEND 0x00000001
#define ET_OpCmd 0x01 #define ET_Msg 0x02 #define ET_StateChange 0x08 #define ET_PMsgCmd 0x09 #define ET_CntlProgOpCmd 0x20 #define ET_CntlProgIdent 0x0B
#define ET_OpCmd_Mask 0x80000000 #define ET_Msg_Mask 0x40000000 #define ET_StateChange_Mask 0x01000000 #define ET_PMsgCmd_Mask 0x00800000 #define ET_CtlProgOpCmd_Mask 0x00000001 #define ET_CtlProgIdent_Mask 0x00200000
#define GMF_DOM 0x8000 #define GMF_SndAlrm 0x4000 #define GMF_HoldMsg 0x2000
#define LTF_CntlText 0x8000 #define LTF_LabelText 0x4000 #define LTF_DataText 0x2000 #define LTF_EndText 0x1000 #define LTF_PromptText 0x0800
#define HWC_COMMAND_INITIATED 0 #define HWC_BUSY 2 #define HWC_NOT_OPERATIONAL 3
#define hwc_cmdw_t u32;
#define HWC_CMDW_READDATA 0x00770005
#define HWC_CMDW_WRITEDATA 0x00760005
#define HWC_CMDW_WRITEMASK 0x00780005
#define GDS_ID_MDSMU 0x1310
#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_KEY_SelfDefTextMsg 0x31
#define _HWCB_HEADER u16 length; \ u8 function_code; \ u8 control_mask[3]; \ u16 response_code;
#define _EBUF_HEADER u16 length; \ u8 type; \ u8 flags; \ u16 _reserved;
typedef struct { _EBUF_HEADER } __attribute__ ((packed))
evbuf_t;
#define _MDB_HEADER u16 length; \ u16 type; \ u32 tag; \ u32 revision_code;
#define _GO_HEADER u16 length; \ u16 type; \ u32 domid; \ u8 hhmmss_time[8]; \ u8 th_time[3]; \ u8 _reserved_0; \ u8 dddyyyy_date[7]; \ u8 _reserved_1; \ u16 general_msg_flags; \ u8 _reserved_2[10]; \ u8 originating_system_name[8]; \ u8 job_guest_name[8];
#define _MTO_HEADER u16 length; \ u16 type; \ u16 line_type_flags; \ u8 alarm_control; \ u8 _reserved[3];
typedef struct { _GO_HEADER } __attribute__ ((packed))
go_t;
typedef struct { go_t go; } __attribute__ ((packed))
mdb_body_t;
typedef struct { _MDB_HEADER mdb_body_t mdb_body; } __attribute__ ((packed))
mdb_t;
typedef struct { _EBUF_HEADER mdb_t mdb; } __attribute__ ((packed))
msgbuf_t;
typedef struct { _HWCB_HEADER msgbuf_t msgbuf; } __attribute__ ((packed))
write_hwcb_t;
typedef struct { _MTO_HEADER } __attribute__ ((packed))
mto_t;
static write_hwcb_t write_hwcb_template = { sizeof (write_hwcb_t), 0x00, { 0x00, 0x00, 0x00 }, 0x0000, { sizeof (msgbuf_t), ET_Msg, 0x00, 0x0000, { sizeof (mdb_t), 0x0001, 0xD4C4C240, 0x00000001, { { sizeof (go_t), 0x0001
} } } } };
static mto_t mto_template = { sizeof (mto_t), 0x0004, LTF_EndText, 0x00 };
typedef u32 _hwcb_mask_t;
typedef struct { _HWCB_HEADER u16 _reserved; u16 mask_length; _hwcb_mask_t cp_receive_mask; _hwcb_mask_t cp_send_mask; _hwcb_mask_t hwc_receive_mask; _hwcb_mask_t hwc_send_mask; } __attribute__ ((packed))
init_hwcb_t;
static init_hwcb_t init_hwcb_template = { sizeof (init_hwcb_t), 0x00, { 0x00, 0x00, 0x00 }, 0x0000, 0x0000, sizeof (_hwcb_mask_t), ET_OpCmd_Mask | ET_PMsgCmd_Mask | ET_StateChange_Mask, ET_Msg_Mask | ET_PMsgCmd_Mask | ET_CtlProgIdent_Mask };
typedef struct { _EBUF_HEADER u8 validity_hwc_active_facility_mask:1; u8 validity_hwc_receive_mask:1; u8 validity_hwc_send_mask:1; u8 validity_read_data_function_mask:1; u16 _zeros:12; u16 mask_length; u64 hwc_active_facility_mask; _hwcb_mask_t hwc_receive_mask; _hwcb_mask_t hwc_send_mask; u32 read_data_function_mask; } __attribute__ ((packed))
statechangebuf_t;
#define _GDS_VECTOR_HEADER u16 length; \ u16 gds_id;
#define _GDS_SUBVECTOR_HEADER u8 length; \ u8 key;
typedef struct { _GDS_VECTOR_HEADER } __attribute__ ((packed))
gds_vector_t;
typedef struct { _GDS_SUBVECTOR_HEADER } __attribute__ ((packed))
gds_subvector_t;
typedef struct { _HWCB_HEADER } __attribute__ ((packed))
read_hwcb_t;
static read_hwcb_t read_hwcb_template = { PAGE_SIZE, 0x00, { 0x00, 0x00, 0x80 } };
#endif /* __HWC_H__ */
|