diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gpf/inc/gdi.h	Fri Oct 16 06:23:26 2020 +0000
@@ -0,0 +1,146 @@
+/*
++------------------------------------------------------------------------------
+|  File:       gdi.h
++------------------------------------------------------------------------------
+|                 Copyright Condat AG 1999-2001, Berlin
+|                 All rights reserved.
+|
+|                 This file is confidential and a trade secret of Condat AG.
+|                 The receipt of or possession of this file does not convey
+|                 any rights to reproduce or disclose its contents or to
+|                 manufacture, use, or sell anything it may describe, in
+|                 whole, or in part, without the specific written consent of
+|                 Condat AG.
++------------------------------------------------------------------------------
+| Purpose:    General Definitions.
+| $Identity:$
++------------------------------------------------------------------------------
+*/
+
+#ifndef  GDI_H
+#define  GDI_H
+
+/*==== INCLUDES =============================================================*/
+
+#include "typedefs.h"
+
+/*==== DEFINITIONS ==========================================================*/
+/*--------------------------------
+   Return values
+  --------------------------------*/
+#ifdef DRV_OK
+ #undef DRV_OK
+#endif
+#define DRV_OK                   0
+#define DRV_BUFFER_FULL          1
+#define DRV_DISABLED             2
+#define DRV_ENABLED              3
+#define DRV_INITFAILURE          4
+#define DRV_INITIALIZED          5
+#define DRV_INTERNAL_ERROR       6
+#define DRV_INPROCESS            7
+#define DRV_INVALID_PARAMS       8
+#define DRV_NOTCONFIGURED        9
+#define DRV_RETVAL_USER          50
+
+/*--------------------------------
+   Signal types
+  --------------------------------*/
+#define DRV_SIGFCT_NOTAVAILABLE  0x01
+#define DRV_SIGTYPE_CLEAR        0x02
+#define DRV_SIGTYPE_FLUSH        0x04
+#define DRV_SIGTYPE_READ         0x08
+#define DRV_SIGTYPE_WRITE        0x10
+#define DRV_SIGTYPE_CONNECT      0x20
+#define DRV_SIGTYPE_DISCONNECT   0x40
+
+#define DRV_SIGTYPE_USER         0x80
+
+/*--------------------------------
+   Flags
+  --------------------------------*/
+#define CALLED_FROM_ISR          0x01
+
+/*--------------------------------
+   Buffer Types
+  --------------------------------*/
+#define DRV_BUFTYPE_READ         0x01
+#define DRV_BUFTYPE_WRITE        0x02
+
+/*==== TYPES ================================================================*/
+typedef void * drv_ProcHandle_Type;
+
+/*------------------------------------------------------------------------
+   T_DRV_SIGNAL - driver signal identification
+ 
+   The type defines the signal information data used to identify a signal. 
+   This data type is used to define and to report a signal. A signal is 
+   defined by a process calling the driver function drv_SetSignal. An 
+   event is signalled by driver by calling the pre-defined signal call-
+   back function.
+  -------------------------------------------------------------------------*/
+typedef struct
+{
+  USHORT              SignalType;
+  USHORT              DrvHandle;
+  ULONG               DataLength;
+  T_VOID_STRUCT       *UserData;
+} T_DRV_SIGNAL;
+
+/*------------------------------------------------------------------------
+   T_DRV_CB_FUNC - driver signal device control block
+  
+   This type defines a call-back function used to signal driver events,
+   e.g. driver is ready to accept data. The driver calls the signal
+   call-back function when a specific event occurs and the driver has
+   been instructed to signal the event to a specific process. A process
+   can set or reset event signalling by calling one of the driver 
+   functions drv_SetSignal or drv_ResetSignal. Event signalling can only
+   be performed when a call-back function has been installed at driver
+   initialization.
+  -------------------------------------------------------------------------*/
+typedef void (*T_DRV_CB_FUNC ) (T_DRV_SIGNAL * Signal);
+
+struct _T_DRV_EXPORT;
+
+typedef struct
+{
+#ifdef _TOOLS_
+  USHORT (*drv_Init)(USHORT,T_DRV_CB_FUNC,struct _T_DRV_EXPORT const**);
+#endif
+  void (*drv_Exit)(void);
+  USHORT (*drv_Read)(void*, ULONG*);
+  USHORT (*drv_Write)(void*, ULONG*);
+  USHORT (*drv_Look)(void*, ULONG*);
+  USHORT (*drv_Clear)(USHORT);
+  USHORT (*drv_Flush)(void);
+  USHORT (*drv_SetSignal)(USHORT);
+  USHORT (*drv_ResetSignal)(USHORT);
+  USHORT (*drv_SetConfig)(char*);
+  USHORT (*drv_GetConfig)(char*);
+  void (*drv_Callback)(T_DRV_SIGNAL*);
+} T_DRV_FUNC;
+
+typedef struct _T_DRV_EXPORT 
+{
+  const char    *Name;
+  USHORT   	    Flags;             /* Bit (0): CALLED_BY_ISR */
+  T_DRV_FUNC DrvFunc;
+} T_DRV_EXPORT;
+
+
+typedef struct
+{
+  char const *Name;
+  USHORT (*drv_Init)(USHORT, T_DRV_CB_FUNC, T_DRV_EXPORT const **);
+  char const *Process;
+  void const *DrvConfig;
+} T_DRV_LIST_ENTRY;
+
+typedef struct
+{
+  T_DRV_LIST_ENTRY DrvEntry [ 5 ];
+} T_DRV_LIST;
+
+/*==== END OF FILE ==========================================================*/
+#endif