fpc/rtl/emx/emx.pas
2023-07-27 19:04:03 +02:00

69 lines
1.8 KiB
ObjectPascal

{****************************************************************************
EMX - Interface unit for the EMX dynamic runtime library.
Part of Free Pascal runtime library for OS/2
History:
2 June 1997 : Creation.
This unit is Copyright (c) 1999-2000 by Daniel Mantione.
Free Pascal is Copyright (c) -1999-2000 by Florian Klaempfl.
EMX.DLL is Copyright (c) -1999-2000 by Eberhard Mattes.
Modifying this unit is allowed, under the following conditions:
- You will not make anyone beleive that you or someone else wrote this.
- Unless you are developing on the official version of FPC, you will make a
note in this file that it is not the original one.
****************************************************************************}
{$IFNDEF FPC_DOTTEDUNITS}
Unit emx;
{$ENDIF FPC_DOTTEDUNITS}
Interface
{$Mode ObjFpc}
{16:16 far pointer}
type
Far16Ptr=record
Segment, Offset: Word;
end;
{! Don't call this one. It is used by the startup code.}
//procedure emxinit; cdecl;
// external 'emx' index 1;
{! Calling this is not recommended. Use ___syscall instead.}
//procedure emx_syscall; cdecl;
// external 'emx' index 2;
{This one converts 16:16 far pointers to 32 bit flat ones.}
function emx_16to32(APtr: Far16Ptr): pointer; cdecl;
external 'emx' index 3;
{This one converts 32 bit flat pointers to 16:16 far ones.}
function emx_32to16(APtr: pointer): Far16Ptr; cdecl;
external 'emx' index 4;
{This one should be called to call 16-bit procedures and functions.}
function emx_thunk1(Args: Pointer; Fun: Pointer): cardinal; cdecl;
external 'emx' index 5;
procedure emx_exception; cdecl;
external 'emx' index 6;
// REXX function
//ULONG emx_revision (PCSZ name, LONG argc, const RXSTRING *argv,
// PCSZ queuename, PRXSTRING retstr)
procedure emx_revision; cdecl;
external 'emx' index 128;
Implementation
End.