comparison src/gpf/inc/gdi.h @ 0:4e78acac3d88

src/{condat,cs,gpf,nucleus}: import from Selenite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:23:26 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4e78acac3d88
1 /*
2 +------------------------------------------------------------------------------
3 | File: gdi.h
4 +------------------------------------------------------------------------------
5 | Copyright Condat AG 1999-2001, Berlin
6 | All rights reserved.
7 |
8 | This file is confidential and a trade secret of Condat AG.
9 | The receipt of or possession of this file does not convey
10 | any rights to reproduce or disclose its contents or to
11 | manufacture, use, or sell anything it may describe, in
12 | whole, or in part, without the specific written consent of
13 | Condat AG.
14 +------------------------------------------------------------------------------
15 | Purpose: General Definitions.
16 | $Identity:$
17 +------------------------------------------------------------------------------
18 */
19
20 #ifndef GDI_H
21 #define GDI_H
22
23 /*==== INCLUDES =============================================================*/
24
25 #include "typedefs.h"
26
27 /*==== DEFINITIONS ==========================================================*/
28 /*--------------------------------
29 Return values
30 --------------------------------*/
31 #ifdef DRV_OK
32 #undef DRV_OK
33 #endif
34 #define DRV_OK 0
35 #define DRV_BUFFER_FULL 1
36 #define DRV_DISABLED 2
37 #define DRV_ENABLED 3
38 #define DRV_INITFAILURE 4
39 #define DRV_INITIALIZED 5
40 #define DRV_INTERNAL_ERROR 6
41 #define DRV_INPROCESS 7
42 #define DRV_INVALID_PARAMS 8
43 #define DRV_NOTCONFIGURED 9
44 #define DRV_RETVAL_USER 50
45
46 /*--------------------------------
47 Signal types
48 --------------------------------*/
49 #define DRV_SIGFCT_NOTAVAILABLE 0x01
50 #define DRV_SIGTYPE_CLEAR 0x02
51 #define DRV_SIGTYPE_FLUSH 0x04
52 #define DRV_SIGTYPE_READ 0x08
53 #define DRV_SIGTYPE_WRITE 0x10
54 #define DRV_SIGTYPE_CONNECT 0x20
55 #define DRV_SIGTYPE_DISCONNECT 0x40
56
57 #define DRV_SIGTYPE_USER 0x80
58
59 /*--------------------------------
60 Flags
61 --------------------------------*/
62 #define CALLED_FROM_ISR 0x01
63
64 /*--------------------------------
65 Buffer Types
66 --------------------------------*/
67 #define DRV_BUFTYPE_READ 0x01
68 #define DRV_BUFTYPE_WRITE 0x02
69
70 /*==== TYPES ================================================================*/
71 typedef void * drv_ProcHandle_Type;
72
73 /*------------------------------------------------------------------------
74 T_DRV_SIGNAL - driver signal identification
75
76 The type defines the signal information data used to identify a signal.
77 This data type is used to define and to report a signal. A signal is
78 defined by a process calling the driver function drv_SetSignal. An
79 event is signalled by driver by calling the pre-defined signal call-
80 back function.
81 -------------------------------------------------------------------------*/
82 typedef struct
83 {
84 USHORT SignalType;
85 USHORT DrvHandle;
86 ULONG DataLength;
87 T_VOID_STRUCT *UserData;
88 } T_DRV_SIGNAL;
89
90 /*------------------------------------------------------------------------
91 T_DRV_CB_FUNC - driver signal device control block
92
93 This type defines a call-back function used to signal driver events,
94 e.g. driver is ready to accept data. The driver calls the signal
95 call-back function when a specific event occurs and the driver has
96 been instructed to signal the event to a specific process. A process
97 can set or reset event signalling by calling one of the driver
98 functions drv_SetSignal or drv_ResetSignal. Event signalling can only
99 be performed when a call-back function has been installed at driver
100 initialization.
101 -------------------------------------------------------------------------*/
102 typedef void (*T_DRV_CB_FUNC ) (T_DRV_SIGNAL * Signal);
103
104 struct _T_DRV_EXPORT;
105
106 typedef struct
107 {
108 #ifdef _TOOLS_
109 USHORT (*drv_Init)(USHORT,T_DRV_CB_FUNC,struct _T_DRV_EXPORT const**);
110 #endif
111 void (*drv_Exit)(void);
112 USHORT (*drv_Read)(void*, ULONG*);
113 USHORT (*drv_Write)(void*, ULONG*);
114 USHORT (*drv_Look)(void*, ULONG*);
115 USHORT (*drv_Clear)(USHORT);
116 USHORT (*drv_Flush)(void);
117 USHORT (*drv_SetSignal)(USHORT);
118 USHORT (*drv_ResetSignal)(USHORT);
119 USHORT (*drv_SetConfig)(char*);
120 USHORT (*drv_GetConfig)(char*);
121 void (*drv_Callback)(T_DRV_SIGNAL*);
122 } T_DRV_FUNC;
123
124 typedef struct _T_DRV_EXPORT
125 {
126 const char *Name;
127 USHORT Flags; /* Bit (0): CALLED_BY_ISR */
128 T_DRV_FUNC DrvFunc;
129 } T_DRV_EXPORT;
130
131
132 typedef struct
133 {
134 char const *Name;
135 USHORT (*drv_Init)(USHORT, T_DRV_CB_FUNC, T_DRV_EXPORT const **);
136 char const *Process;
137 void const *DrvConfig;
138 } T_DRV_LIST_ENTRY;
139
140 typedef struct
141 {
142 T_DRV_LIST_ENTRY DrvEntry [ 5 ];
143 } T_DRV_LIST;
144
145 /*==== END OF FILE ==========================================================*/
146 #endif