Browse Source

+ fist version of aio added

armin 23 years ago
parent
commit
90ad7b5a16
3 changed files with 493 additions and 1 deletions
  1. 3 1
      rtl/netware/Makefile
  2. 489 0
      rtl/netware/aio.pp
  3. 1 0
      rtl/netware/compile.cmd

+ 3 - 1
rtl/netware/Makefile

@@ -14,7 +14,7 @@ PRELUDE=prelude
 OBJEXT=on
 OBJEXT=on
 PPUEXT=ppn
 PPUEXT=ppn
 ASMEXT=s
 ASMEXT=s
-OBJS = $(SYSUNIT).$(OBJEXT) $(NWPRE).$(OBJEXT) $(PRELUDE).$(OBJEXT) ../inc/os_types.$(OBJEXT) ../inc/strings.$(OBJEXT) dos.$(OBJEXT) ../objpas/objpas.$(OBJEXT) sysutils.$(OBJEXT) crt.$(OBJEXT) sockets.$(OBJEXT) mouse.$(OBJEXT) netware.$(OBJEXT) video.$(OBJEXT) keyboard.$(OBJEXT) ../objpas/math.$(OBJEXT) ../objpas/typinfo.$(OBJEXT) ../inc/objects.$(OBJEXT) ../inc/getopts.$(OBJEXT) ../inc/heaptrc.$(OBJEXT) varutils.$(OBJEXT) ../i386/cpu.$(OBJEXT) ../i386/mmx.$(OBJEXT) winsock2.$(OBJEXT)
+OBJS = $(SYSUNIT).$(OBJEXT) $(NWPRE).$(OBJEXT) $(PRELUDE).$(OBJEXT) ../inc/os_types.$(OBJEXT) ../inc/strings.$(OBJEXT) dos.$(OBJEXT) ../objpas/objpas.$(OBJEXT) sysutils.$(OBJEXT) crt.$(OBJEXT) sockets.$(OBJEXT) mouse.$(OBJEXT) netware.$(OBJEXT) video.$(OBJEXT) keyboard.$(OBJEXT) ../objpas/math.$(OBJEXT) ../objpas/typinfo.$(OBJEXT) ../inc/objects.$(OBJEXT) ../inc/getopts.$(OBJEXT) ../inc/heaptrc.$(OBJEXT) varutils.$(OBJEXT) ../i386/cpu.$(OBJEXT) ../i386/mmx.$(OBJEXT) winsock2.$(OBJEXT) aio.$(OBJEXT)
 
 
 
 
 all:	$(OBJS)
 all:	$(OBJS)
@@ -76,6 +76,8 @@ install: $(OBJS)
 	cp -f os_types.$(PPUEXT) $(UNITDIR)
 	cp -f os_types.$(PPUEXT) $(UNITDIR)
 	cp -f winsock2.$(OBJEXT) $(UNITDIR)
 	cp -f winsock2.$(OBJEXT) $(UNITDIR)
 	cp -f winsock2.$(PPUEXT) $(UNITDIR)
 	cp -f winsock2.$(PPUEXT) $(UNITDIR)
+	cp -f aio.$(OBJEXT) $(UNITDIR)
+	cp -f aio.$(PPUEXT) $(UNITDIR)
 	cp -f nwimp/*.imp $(UNITDIR)
 	cp -f nwimp/*.imp $(UNITDIR)
 
 
 clean:
 clean:

+ 489 - 0
rtl/netware/aio.pp

@@ -0,0 +1,489 @@
+{
+    $Id$
+    This file is part of the Free Pascal run time library
+    for Netware.
+    Copyright (c) 1999-2002 by the Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+    
+    First Version of AIO, currently UNTESTED, i have to write some samples
+    to test it.
+
+ **********************************************************************}
+unit aio;
+interface
+
+const
+  External_library='aio.nlm';
+
+
+{$PACKRECORDS C}
+
+  
+{---------------------------------------------------------------------------- 
+      Predefined hardware types for use with the AIOAcquirePort function.      
+ ---------------------------------------------------------------------------- }
+
+const
+   AIO_COMX_TYPE = 1;
+   AIO_ARTIC_TYPE = 2;
+   AIO_WNIM_TYPE = 3;
+
+{---------------------------------------------------------------------------- 
+      Function completion code status values.                                  
+                                                                               
+      Note that all error statuses are negative values.                        
+ ---------------------------------------------------------------------------- }
+   AIO_SUCCESS = 0;
+   AIO_BAD_HANDLE = -(1);
+   AIO_FAILURE = -(2);
+   AIO_FUNC_NOT_SUPPORTED = -(3);
+   AIO_INVALID_PARAMETER = -(5);
+   AIO_PORT_NOT_AVAILABLE = -(6);
+   AIO_QUALIFIED_SUCCESS = -(7);
+   AIO_NO_MORE_PORTS = -(8);
+   AIO_TYPE_NUMBER_INVALID = -(10);
+   AIO_BOARD_NUMBER_INVALID = -(11);
+   AIO_PORT_NUMBER_INVALID = -(12);
+   AIO_RESOURCE_TAG_INVALID = -(13);
+   AIO_DATA_PRESENT = -(14);
+   AIO_BAD_REQUEST_TYPE = -(15);
+   AIO_PORT_GONE = -(20);
+   AIO_RTAG_INVALID = -(21);
+{ This is only for non-CLIB application  }
+{ 'NYSA'  }
+   ASYNCIOSignature = $4E595341;
+
+{---------------------------------------------------------------------------- 
+      Definitions for use with the AIOSetExternalControl function.             
+ ---------------------------------------------------------------------------- }
+   AIO_EXTERNAL_CONTROL          = 1;
+   AIO_EXTCTRL_DTR               = 1;
+   AIO_EXTCTRL_RTS               = 2;
+   AIO_BREAK_CONTROL             = 2;
+   AIO_SET_BREAK_OFF             = 0;
+   AIO_SET_BREAK_ON              = 1;
+   AIO_FLOW_CONTROL              = 3;
+   AIO_SOFTWARE_FLOW_CONTROL_OFF = 0;
+   AIO_SOFTWARE_FLOW_CONTROL_ON  = 1;
+   AIO_HARDWARE_FLOW_CONTROL_OFF = 0;
+   AIO_HARDWARE_FLOW_CONTROL_ON  = 2;
+   AIO_FLOW_CONTROL_CHARACTERS   = 4;
+   AIO_SET_DEADMAN_TIMER         = 5;
+   
+{---------------------------------------------------------------------------- 
+      Definitions for use with the AIOGetExternalStatus function.              
+ ---------------------------------------------------------------------------- }
+   AIO_EXTSTA_RI    = $00000001;
+   AIO_EXTSTA_DCD   = $00000008;
+   AIO_EXTSTA_DSR   = $00000010;
+   AIO_EXTSTA_CTS   = $00000020;
+   AIO_EXTSTA_BREAK = $00000080;
+
+{---------------------------------------------------------------------------- 
+      Definitions for use with the AIOFlushBuffers function.                   
+ ---------------------------------------------------------------------------- }
+   AIO_FLUSH_WRITE_BUFFER = 1;
+   AIO_FLUSH_READ_BUFFER  = 2;
+
+{---------------------------------------------------------------------------- 
+      Definitions for use with the AIOReadStatus function.                     
+ ---------------------------------------------------------------------------- }
+   AIO_RECEIVE_ACTIVE = 0;
+   AIO_RECEIVE_FULL   = 1;
+
+{---------------------------------------------------------------------------- 
+      Definitions for use with the AIOWriteStatus function.                    
+ ---------------------------------------------------------------------------- }
+   AIO_TRANSMIT_IDLE   = 0;
+   AIO_TRANSMIT_ACTIVE = 1;
+   AIO_TRANSMIT_XOFFED = 2;
+
+{---------------------------------------------------------------------------- 
+      Definitions for use with the AIOAcquirePort function.                    
+ ---------------------------------------------------------------------------- }
+   AIO_HARDWARE_TYPE_WILDCARD = -(1);
+   AIO_BOARD_NUMBER_WILDCARD  = -(1);
+   AIO_PORT_NUMBER_WILDCARD   = -(1);
+
+
+{---------------------------------------------------------------------------- 
+      Definitions for use with the AIOConfigurePort function.                  
+ ---------------------------------------------------------------------------- }
+{ BitRate  }
+   AIO_BAUD_50       = 0;
+   AIO_BAUD_75       = 1;
+   AIO_BAUD_110      = 2;
+   AIO_BAUD_134p5    = 3;
+   AIO_BAUD_150      = 4;
+   AIO_BAUD_300      = 5;
+   AIO_BAUD_600      = 6;
+   AIO_BAUD_1200     = 7;
+   AIO_BAUD_1800     = 8;
+   AIO_BAUD_2000     = 9;
+   AIO_BAUD_2400     = 10;
+   AIO_BAUD_3600     = 11;
+   AIO_BAUD_4800     = 12;
+   AIO_BAUD_7200     = 13;
+   AIO_BAUD_9600     = 14;
+   AIO_BAUD_19200    = 15;
+   AIO_BAUD_38400    = 16;
+   AIO_BAUD_57600    = 17;
+   AIO_BAUD_115200   = 18;
+{ DataBits  }
+   AIO_DATA_BITS_5   = 0;
+   AIO_DATA_BITS_6   = 1;
+   AIO_DATA_BITS_7   = 2;
+   AIO_DATA_BITS_8   = 3;
+{ StopBits  }
+   AIO_STOP_BITS_1   = 0;
+   AIO_STOP_BITS_1p5 = 1;
+   AIO_STOP_BITS_2   = 2;
+{ Parity  }
+   AIO_PARITY_NONE   = 0;
+   AIO_PARITY_ODD    = 1;
+   AIO_PARITY_EVEN   = 2;
+   AIO_PARITY_MARK   = 3;
+   AIO_PARITY_SPACE  = 4;
+{ FlowControl  }
+   AIO_SOFTWARE_FLOWCONTROL_OFF = 0;
+   AIO_SOFTWARE_FLOWCONTROL_ON  = 1;
+   AIO_HARDWARE_FLOWCONTROL_OFF = 0;
+   AIO_HARDWARE_FLOWCONTROL_ON  = 2;
+   AIO_DROPOUT_VALUE            = $FF;
+   
+{---------------------------------------------------------------------------- 
+      Definitions for use with AIOPORTCAPABILITIES structure.                  
+ ---------------------------------------------------------------------------- }
+
+type
+
+   PAIOPORTCAPABILITIES = ^TAIOPORTCAPABILITIES;
+   TAIOPORTCAPABILITIES = record
+        returnLength       : WORD;       { byte length of capabilities data }
+        majorVersion       : BYTE;
+        minorVersion       : BYTE;
+        notSupportedMask   : LONGINT;
+        minBitRate         : BYTE;
+        maxBitRate         : BYTE;       { minimum bit rate index supported }
+        minDataBits        : BYTE;       { minimum data bits per char index supported }
+        maxDataBits        : BYTE;       { maximum data bits per char index supported }
+        minStopBits        : BYTE;       { minimum stop bits per char index supported }
+        maxStopBits        : BYTE;       { maximum stop bits per char index supported }
+        minParityMode      : BYTE;       { minimum parity mode index supported }
+        maxParityMode      : BYTE;       { maximum parity mode index supported }
+        minFlowCtrlMode    : BYTE;       { minimum flow control mode index supported }
+        maxFlowCtrlMode    : BYTE;       { maximum flow control mode index supported }
+        miscCapabilities   : LONGINT;    { miscellaneous capability flags }
+        minReadBufferSize  : LONGINT;    { minimum length of receive buffer }
+        maxReadBufferSize  : LONGINT;    { maximum length of receive buffer }
+        minWriteBufferSize : LONGINT;    { minimum length of transmit buffer } 
+        maxWriteBufferSize : LONGINT;    { maximum length of transmit buffer }
+        minDeadmanTime     : WORD;       { minimum deadman time (seconds) }
+        maxDeadmanTime     : WORD;       { maximum deadman time (seconds) }
+     end;
+
+const
+   AIO_PORT_NS_MINBITRATE         = $80000000;
+   AIO_PORT_NS_MAXBITRATE         = $40000000;
+   AIO_PORT_NS_MINDATABITS        = $20000000;
+   AIO_PORT_NS_MAXDATABITS        = $10000000;
+   AIO_PORT_NS_MINSTOPBITS        = $08000000;
+   AIO_PORT_NS_MAXSTOPBITS        = $04000000;
+   AIO_PORT_NS_MINPARITYMODE      = $02000000;
+   AIO_PORT_NS_MAXPARITYMODE      = $01000000;
+   AIO_PORT_NS_MINFLOWCTRLMODE    = $00800000;
+   AIO_PORT_NS_MAXFLOWCTRLMODE    = $00400000;
+   AIO_PORT_NS_MISCCAPABILITIES   = $00200000;
+   AIO_PORT_NS_MINREADBUFFERSIZE  = $00100000;
+   AIO_PORT_NS_MAXREADBUFFERSIZE  = $00080000;
+   AIO_PORT_NS_MINWRITEBUFFERSIZE = $00040000;
+   AIO_PORT_NS_MAXWRITEBUFFERSIZE = $00020000;
+   AIO_PORT_NS_MINDEADMANTIME     = $00010000;
+   AIO_PORT_NS_MAXDEADMANTIME     = $00008000;
+   AIO_PORT_CAPS_NOT_SUPPORTED    = $00007FFF;
+   AIO_PORT_CAPS_MAJOR_VERSION    = 1;
+   AIO_PORT_CAPS_MINOR_VERSION    = 0;
+   AIO_CAP_OUTPUT_BREAK           = $00000002;
+   AIO_CAP_FLOWCTRLCHARS          = $00000004;
+   AIO_CAP_PROGRAMMABLE           = $00000008;
+   AIO_CAP_INPUT                  = $00000010;
+   AIO_CAP_OUTPUT                 = $00000020;
+
+{  byte length of driver capabilities structure }
+type
+
+   PAIODVRCAPABILITIES = ^TAIODVRCAPABILITIES;
+   TAIODVRCAPABILITIES = record
+        returnLength : WORD;
+        byteData     : array[0..1] of BYTE;
+     end;
+
+const
+   AIO_NO_STRUCT_DATA_RETURNED = 2;
+
+
+{---------------------------------------------------------------------------- 
+      Definitions for use with the AIOGetPortsRollCall function.               
+ ---------------------------------------------------------------------------- }
+
+type
+
+   PAIOPORTINFO = ^TAIOPORTINFO;
+   TAIOPORTINFO = record
+        returnLength       : WORD;      {  byte length of port info data }
+        majorVersion       : BYTE;
+        minorVersion       : BYTE;
+        notSupportedMask   : longint;
+        hardwareType       : longint;   { value used with AIOAcquirePort }
+        boardNumber        : longint;   { " }
+        portNumber         : longint;   { " }
+        availability       : WORD;      {  availability of port for acquire }
+        externalStatus     : longint;   {  current external status value for port }
+        chgdExternalStatus : longint;   {  changed external status value for port  }
+     end;
+
+const
+   AIO_INFO_NS_HARDWARETYPE       = $80000000;
+   AIO_INFO_NS_BOARDNUMBER        = $40000000;
+   AIO_INFO_NS_PORTNUMBER         = $20000000;
+   AIO_INFO_NS_AVAILABILITY       = $10000000;
+   AIO_INFO_NS_EXTERNALSTATUS     = $08000000;
+   AIO_INFO_NS_CHGDEXTERNALSTATUS = $04000000;
+   AIO_PORT_INFO_NOT_SUPPORTED    = $03FFFFFF;
+   AIO_PORT_INFO_MAJOR_VERSION    = 1;
+   AIO_PORT_INFO_MINOR_VERSION    = 0;
+   AIO_AVAILABLE_FOR_ACQUIRE      = 0;
+   AIO_ALREADY_ACQUIRED           = 1;
+   AIO_UNAVAILABLE                = $FF;
+   AIO_INITIAL                    = 0;
+   AIO_SUCCESSOR                  = 1;
+
+{---------------------------------------------------------------------------- 
+      Definitions for use with the AIOGetPortConfiguration function.           
+ ---------------------------------------------------------------------------- }
+
+type
+
+   PAIOPORTCONFIG = ^TAIOPORTCONFIG;
+   TAIOPORTCONFIG = record
+        returnLength     : WORD;           { byte length of port configuration data }
+        majorVersion     : BYTE;
+        minorVersion     : BYTE;
+        notSupportedMask : LONGINT;
+        hardwareType     : longint;        { value used with AIOAcquirePort     }
+        boardNumber      : longint;        { "     " }
+        portNumber       : longint;        { "     " }
+        bitRate          : BYTE;           { Bits per second index }
+        dataBits         : BYTE;           { Bits per character index }
+        stopBits         : BYTE;           { Stop bits per char index }
+        parityMode       : BYTE;           { Generated parity index }
+        flowCtrlMode     : BYTE;           { Flow control mode }
+        breakMode        : BYTE;           { Break control mode }
+        readSize         : LONGINT;        { Receive buffer size }
+        writeSize        : LONGINT;        { Transmit buffer size }
+        transmitXon      : BYTE;
+        transmitXoff     : BYTE;
+        receiveXon       : BYTE;
+        receiveXoff      : BYTE;
+        externalControl  : WORD;           { set with AIO_EXTERNAL_CONTROL }
+     end;
+
+const
+   AIO_CONFIG_NS_HARDWARETYPE    = $80000000;
+   AIO_CONFIG_NS_BOARDNUMBER     = $40000000;
+   AIO_CONFIG_NS_PORTNUMBER      = $20000000;
+   AIO_CONFIG_NS_BITRATE         = $10000000;
+   AIO_CONFIG_NS_DATABITS        = $08000000;
+   AIO_CONFIG_NS_STOPBITS        = $04000000;
+   AIO_CONFIG_NS_PARITYMODE      = $02000000;
+   AIO_CONFIG_NS_FLOWCTRLMODE    = $01000000;
+   AIO_CONFIG_NS_BREAKMODE       = $00800000;
+   AIO_CONFIG_NS_READSIZE        = $00400000;
+   AIO_CONFIG_NS_WRITESIZE       = $00200000;
+   AIO_CONFIG_NS_TRANSMITXON     = $00100000;
+   AIO_CONFIG_NS_TRANSMITXOFF    = $00080000;
+   AIO_CONFIG_NS_RECEIVEXON      = $00040000;
+   AIO_CONFIG_NS_RECEIVEXOFF     = $00020000;
+   AIO_CONFIG_NS_EXTERNALCONTROL = $00010000;
+   AIO_PORT_CONFIG_NOT_SUPPORTED = $0007FFFF;
+   AIO_PORT_CONFIG_MAJOR_VERSION = 1;
+   AIO_PORT_CONFIG_MINOR_VERSION = 0;
+   AIO_EXTCTRL_DTR_ENABLE        = 1;
+   AIO_EXTCTRL_DTR_DISABLE       = 0;
+   AIO_EXTCTRL_RTS_ENABLE        = 2;
+   AIO_EXTCTRL_RTS_DISABLE       = 0;
+   AIO_BREAK_MODE_OFF            = 0;
+   AIO_BREAK_MODE_ON             = 1;
+
+type
+
+   PAIODVRCONFIG = ^TAIODVRCONFIG;
+   TAIODVRCONFIG = record
+        returnLength : WORD;             {  byte length of driver config structure }
+        byteData     : array[0..1] of BYTE;
+     end;
+
+{---------------------------------------------------------------------------- 
+    Definitions for use with the AIOGetStatistics function.
+  ---------------------------------------------------------------------------- }
+
+
+   PAIOPORTSTATISTICS = ^TAIOPORTSTATISTICS;
+   TAIOPORTSTATISTICS = record
+        returnLength     : WORD;         { byte length of port statistics structure }
+        majorVersion     : BYTE;
+        minorVersion     : BYTE;
+        notSupportedMask : LONGINT;
+        receiveBytes     : LONGINT;      { total number of bytes received on port }
+        transmitBytes    : LONGINT;      { total number of bytes transmitted from port }
+        parityErrors     : LONGINT;      { number of receive parity errors  }
+        framingErrors    : LONGINT;      { number of receive framing errors }
+        overrunSoftware  : LONGINT;      { number of software overruns (occurrences) }
+        overrunHardware  : LONGINT;      { number of hardware overruns (occurrences) }
+     end;
+
+const
+   AIO_STATS_NS_RECEIVEBYTES    = $80000000;
+   AIO_STATS_NS_TRANSMITBYTES   = $40000000;
+   AIO_STATS_NS_PARITYERRORS    = $20000000;
+   AIO_STATS_NS_FRAMINGERRORS   = $10000000;
+   AIO_STATS_NS_OVERRUNSOFTWARE = $08000000;
+   AIO_STATS_NS_OVERRUNHARDWARE = $04000000;
+   AIO_PORT_STATS_NOT_SUPPORTED = $03FFFFFF;
+   AIO_PORT_STATS_MAJOR_VERSION = 1;
+   AIO_PORT_STATS_MINOR_VERSION = 0;
+
+type
+
+   PAIODVRSTATISTICS = ^TAIODVRSTATISTICS;
+   TAIODVRSTATISTICS = record
+        returnLength : WORD;                { byte length of driver statistics structure }
+        byteData     : array[0..1] of BYTE;
+     end;
+
+
+{---------------------------------------------------------------------------- 
+      Definitions for use with AIOGetDriverList function.                      
+ ---------------------------------------------------------------------------- }
+
+   PAIODRIVERLISTENTRY = ^TAIODRIVERLISTENTRY;
+   TAIODRIVERLISTENTRY = record
+        hardwareType : longint;
+        ports : longint;
+        name  : array[0..127] of char;
+     end;
+
+   PAIODRIVERLIST = ^TAIODRIVERLIST;
+   TAIODRIVERLIST = record
+        returnLength : WORD;
+        driver       : array[0..0] of TAIODRIVERLISTENTRY;
+     end;
+
+const
+   AIO_DRIVER_LIST_GET_FIRST = -(1);
+
+{---------------------------------------------------------------------------- 
+      Definitions for use with AIOGetBoardList function.                       
+ ---------------------------------------------------------------------------- }
+type
+
+   PAIOBOARDLISTENTRY = ^TAIOBOARDLISTENTRY;
+   TAIOBOARDLISTENTRY = record
+        boardNumber : longint;
+        ports       : longint;
+        name        : array[0..127] of char;
+     end;
+
+   PAIOBOARDLIST = ^TAIOBOARDLIST;
+   TAIOBOARDLIST = record
+        returnLength : WORD;
+        board        : array[0..0] of TAIOBOARDLISTENTRY;
+     end;
+
+const
+   AIO_BOARD_LIST_GET_FIRST = -(1);
+
+{---------------------------------------------------------------------------- 
+      Definitions for use with AIOSetControlData function.                     
+ ---------------------------------------------------------------------------- }
+{  byte length of control data structure }
+type
+
+   PAIOCONTROLDATA = ^TAIOCONTROLDATA;
+   TAIOCONTROLDATA = record
+        returnLength : WORD;
+        byteData     : array[0..1] of BYTE;
+     end;
+
+
+{---------------------------------------------------------------------------- 
+      Definitions for use with AIOGetFirstPortInfo and AIOGetNextPortInfo      
+ ---------------------------------------------------------------------------- }
+
+   PAIOPORTSEARCH = ^TAIOPORTSEARCH;
+   TAIOPORTSEARCH = record
+        typeMask  : longint;
+        boardMask : longint;
+        portMask  : longint;
+        reserved  : array[0..5] of longint;
+     end;
+
+{---------------------------------------------------------------------------- 
+      Definition of AIO functions.                                             
+ ---------------------------------------------------------------------------- }
+
+{function with var params to be added... }
+
+function AIOAcquirePort(hardwareType:Plongint; boardNumber:Plongint; portNumber:Plongint; portHandle:Plongint):longint;cdecl;external External_library name 'AIOAcquirePort';
+function AIOAcquirePortWithRTag(hardwareType:Plongint; boardNumber:Plongint; portNumber:Plongint; portHandle:Plongint; RTag:longint):longint;cdecl;external External_library name 'AIOAcquirePortWithRTag';
+function AIOConfigurePort(portHandle:longint; bitRate:byte; dataBits:byte; stopBits:byte; parityMode:byte; 
+           flowCtrlMode:byte):longint;cdecl;external External_library name 'AIOConfigurePort';
+function AIOFlushBuffers(portHandle:longint; flushFlag:WORD):longint;cdecl;external External_library name 'AIOFlushBuffers';
+function AIOGetBoardList(hardwareType:longint; boardIndex:longint; pBoardList:PAIOBOARDLIST):longint;cdecl;external External_library name 'AIOGetBoardList';
+function AIOGetDriverList(lastHardwareType:longint; pDriverList:PAIODRIVERLIST):longint;cdecl;external External_library name 'AIOGetDriverList';
+function AIOGetExternalStatus(portHandle:longint; extStatus:PLongint; chgdExtStatus:PLongint):longint;cdecl;external External_library name 'AIOGetExternalStatus';
+function AIOGetFirstPortInfo(hardwareType:longint; boardNumber:longint; portNumber:longint; portSearchP:PAIOPORTSEARCH; portInfoP:PAIOPORTINFO; 
+           capabilitiesP:PAIOPORTCAPABILITIES; dvrCapabilitiesP:PAIODVRCAPABILITIES; NLMModuleNameP:Pchar):longint;cdecl;external External_library name 'AIOGetFirstPortInfo';
+function AIOGetNextPortInfo(portSearchP:PAIOPORTSEARCH; portInfoP:PAIOPORTINFO; capabilitiesP:PAIOPORTCAPABILITIES; dvrCapabilitiesP:PAIODVRCAPABILITIES; NLMModuleNameP:Pchar):longint;cdecl;external External_library name 'AIOGetNextPortInfo';
+function AIOGetName_FirstPortInfo(hardwareType:longint; boardNumber:longint; portNumber:longint; portSearchP:PAIOPORTSEARCH; portInfoP:PAIOPORTINFO; 
+           capabilitiesP:PAIOPORTCAPABILITIES; dvrCapabilitiesP:PAIODVRCAPABILITIES; NLMModuleNameP:Pchar):longint;cdecl;external External_library name 'AIOGetName_FirstPortInfo';
+function AIOGetName_NextPortInfo(portSearchP:PAIOPORTSEARCH; portInfoP:PAIOPORTINFO; capabilitiesP:PAIOPORTCAPABILITIES; dvrCapabilitiesP:PAIODVRCAPABILITIES; NLMModuleNameP:Pchar):longint;cdecl;external External_library name 'AIOGetName_NextPortInfo';
+function AIOGetPortCapability(portHandle:longint; pCapabilities:PAIOPORTCAPABILITIES; pDvrCapabilities:PAIODVRCAPABILITIES):longint;cdecl;external External_library name 'AIOGetPortCapability';
+function AIOGetPortConfiguration(portHandle:longint; pPortConfig:PAIOPORTCONFIG; pDvrConfig:PAIODVRCONFIG):longint;cdecl;external External_library name 'AIOGetPortConfiguration';
+function AIOGetPortStatus(portHandle:longint; writeCount:PLongint; writeState:PWORD; readCount:PLongint; readState:PWORD; 
+           extStatus:PLongint; chgdExtStatus:PLongint):longint;cdecl;external External_library name 'AIOGetPortStatus';
+function AIOGetReadBufferSize(portHandle:longint; readSize:PLongint):longint;cdecl;external External_library name 'AIOGetReadBufferSize';
+function AIOGetPortStatistics(portHandle:longint; pPortStatistics:PAIOPORTSTATISTICS; pDvrStatistics:PAIODVRSTATISTICS):longint;cdecl;external External_library name 'AIOGetPortStatistics';
+function AIOGetWriteBufferSize(portHandle:longint; writeSize:PLongint):longint;cdecl;external External_library name 'AIOGetWriteBufferSize';
+function AIOReadData(portHandle:longint; buffer:Pchar; length:longint; numberBytesRead:PLongint):longint;cdecl;external External_library name 'AIOReadData';
+function AIOReadStatus(portHandle:longint; count:PLongint; state:PWORD):longint;cdecl;external External_library name 'AIOReadStatus';
+function AIOReleasePort(portHandle:longint):longint;cdecl;external External_library name 'AIOReleasePort';
+function AIOSetControlData(portHandle:longint; requestType:longint; requestStructValue:PAIOCONTROLDATA):longint;cdecl;external External_library name 'AIOSetControlData';
+function AIOSetExternalControl(portHandle:longint; requestType:longint; requestValue:longint):longint;cdecl;external External_library name 'AIOSetExternalControl';
+function AIOSetFlowControl(portHandle:longint; flowCtrlMode:longint):longint;cdecl;external External_library name 'AIOSetFlowControl';
+function AIOSetFlowControlCharacters(portHandle:longint; transmitXon:byte; transmitXoff:byte; receiveXon:byte; receiveXoff:byte):longint;cdecl;external External_library name 'AIOSetFlowControlCharacters';
+function AIOSetReadBufferSize(portHandle:longint; bufferSize:longint):longint;cdecl;external External_library name 'AIOSetReadBufferSize';
+function AIOSetWriteBufferSize(portHandle:longint; bufferSize:longint):longint;cdecl;external External_library name 'AIOSetWriteBufferSize';
+function AIOWriteData(portHandle:longint; buffer:Pchar; length:longint; numberBytesWritten:PLongint):longint;cdecl;external External_library name 'AIOWriteData';
+function AIOWriteStatus(portHandle:longint; count:PLongint; state:PWORD):longint;cdecl;external External_library name 'AIOWriteStatus';
+
+
+implementation
+
+
+end.
+
+
+{
+  $Log$
+  Revision 1.1  2002-03-19 19:33:36  armin
+  + fist version of aio added
+
+ 
+}

+ 1 - 0
rtl/netware/compile.cmd

@@ -32,6 +32,7 @@ ppc386 %OPT% %INC% video.pp
 ppc386 %OPT% %INC% sockets.pp
 ppc386 %OPT% %INC% sockets.pp
 ppc386 %OPT% %INC% netware.pp
 ppc386 %OPT% %INC% netware.pp
 ppc386 %OPT% %INC% winsock2.pp
 ppc386 %OPT% %INC% winsock2.pp
+ppc386 %OPT% %INC% aio.pp
 
 
 copy *.on %DEST%
 copy *.on %DEST%
 copy *.ppn %DEST%
 copy *.ppn %DEST%