1 /* DEVTYPE.H    (c) Copyright Jan Jaeger, 1999-2009                  */
2 /*              Hercules Device Definitions                          */
3 
4 #if !defined(_DEVICES_H)
5 
6 #define _DEVICES_H
7 
8 #ifndef _FBADASD_C_
9 #ifndef _HDASD_DLL_
10 #define FBA_DLL_IMPORT DLL_IMPORT
11 #else   /* _HDASD_DLL_ */
12 #define FBA_DLL_IMPORT extern
13 #endif  /* _HDASD_DLL_ */
14 #else
15 #define FBA_DLL_IMPORT DLL_EXPORT
16 #endif
17 
18 #ifndef _CKDDASD_C_
19 #ifndef _HDASD_DLL_
20 #define CKD_DLL_IMPORT DLL_IMPORT
21 #else   /* _HDASD_DLL_ */
22 #define CKD_DLL_IMPORT extern
23 #endif  /* _HDASD_DLL_ */
24 #else
25 #define CKD_DLL_IMPORT DLL_EXPORT
26 #endif
27 
28 
29 struct DEVHND {
30         DEVIF *init;                   /* Device Initialisation      */
31         DEVXF *exec;                   /* Device CCW execute         */
32         DEVCF *close;                  /* Device Close               */
33         DEVQF *query;                  /* Device Query               */
34         DEVSF *start;                  /* Device Start channel pgm   */
35         DEVSF *end;                    /* Device End channel pgm     */
36         DEVSF *resume;                 /* Device Resume channel pgm  */
37         DEVSF *suspend;                /* Device Suspend channel pgm */
38         DEVRF *read;                   /* Device Read                */
39         DEVWF *write;                  /* Device Write               */
40         DEVUF *used;                   /* Device Query used          */
41         DEVRR *reserve;                /* Device Reserve             */
42         DEVRR *release;                /* Device Release             */
43         DEVRR *attention;              /* Device Attention           */
44         DEVIM immed;                   /* Immediate CCW Codes        */
45         DEVSA *siga_r;                 /* Signal Adapter Input       */
46         DEVSA *siga_w;                 /* Signal Adapter Output      */
47         DEVSR *hsuspend;               /* Hercules suspend           */
48         DEVSR *hresume;                /* Hercules resume            */
49 };
50 
51 #define BEGIN_DEVICE_CLASS_QUERY( _classname, _dev, _class, _buflen, _buffer ) \
52     if (_class) *_class = _classname; \
53     if (!_dev || !_class || !_buflen || !_buffer) return
54 
55 
56 #if !defined(OPTION_DYNAMIC_LOAD)
57 extern DEVHND constty_device_hndinfo;
58 extern DEVHND loc3270_device_hndinfo;
59 extern DEVHND comadpt_device_hndinfo;
60 extern DEVHND cardrdr_device_hndinfo;
61 extern DEVHND cardpch_device_hndinfo;
62 extern DEVHND printer_device_hndinfo;
63 extern DEVHND tapedev_device_hndinfo;
64 #endif /*!defined(OPTION_DYNAMIC_LOAD)*/
65 CKD_DLL_IMPORT DEVHND ckddasd_device_hndinfo;
66 FBA_DLL_IMPORT DEVHND fbadasd_device_hndinfo;
67 extern DEVHND ctcadpt_device_hndinfo;
68 extern DEVHND ctci_device_hndinfo;
69 extern DEVHND ctct_device_hndinfo;
70 extern DEVHND ctce_device_hndinfo;
71 extern DEVHND lcs_device_hndinfo;
72 extern DEVHND vmnet_device_hndinfo;
73 
74 
75 #endif /*!defined(_DEVICES_H)*/
76