* removed nwstdio and nwthread

* added nwnit.pp and nwserv.pp containing nearly all netware server structures/function definitions available in the c sdk
This commit is contained in:
armin 2003-02-22 18:23:26 +00:00
parent ecae861d6a
commit 5c0479975e
8 changed files with 8023 additions and 342 deletions

View File

@ -211,7 +211,7 @@ override FPCOPT+=-Ur
override FPCOPT+=-dMT
CREATESMART=1
OBJPASDIR=$(RTL)/objpas
override TARGET_UNITS+=$(SYSTEMUNIT) systhrds objpas strings netware winsock2 dos crt objects sysutils typinfo math cpu mmx getopts heaptrc lineinfo sockets aio varutils video mouse keyboard types nwsnut nwthread nwconio
override TARGET_UNITS+=$(SYSTEMUNIT) systhrds objpas strings netware winsock2 dos crt objects sysutils typinfo math cpu mmx getopts heaptrc lineinfo sockets aio varutils video mouse keyboard types nwsnut nwserv nwnit
override TARGET_LOADERS+=nwpre prelude
override TARGET_RSTS+=math typinfo varutils
override INSTALL_FPCPACKAGE=y

View File

@ -14,7 +14,7 @@ units=$(SYSTEMUNIT) systhrds objpas strings \
cpu mmx getopts heaptrc lineinfo \
sockets aio varutils \
video mouse keyboard types \
nwsnut nwthread nwconio
nwsnut nwserv nwnit
rsts=math typinfo varutils
[require]

14
rtl/netware/npackoff.inc Normal file
View File

@ -0,0 +1,14 @@
(* this header sets packing back to default *)
{$PACKRECORDS DEFAULT}
// pragma pack()
{
$Log$
Revision 1.1 2003-02-22 18:23:26 armin
* removed nwstdio and nwthread
* added nwnit.pp and nwserv.pp containing nearly all netware server structures/function definitions available in the c sdk
}

13
rtl/netware/npackon.inc Normal file
View File

@ -0,0 +1,13 @@
(* this header sets packing to 1 *)
{$PACKRECORDS 1}
// pragma pack(1)
{
$Log$
Revision 1.1 2003-02-22 18:23:26 armin
* removed nwstdio and nwthread
* added nwnit.pp and nwserv.pp containing nearly all netware server structures/function definitions available in the c sdk
}

View File

@ -1,141 +0,0 @@
{
$Id$
This file is part of the Free Pascal run time library
for Netware.
Copyright (c) 1999-2003 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.
**********************************************************************}
unit nwconio;
interface
{$mode objfpc}
const
ClibNlm = 'clib';
ThreadsNlm = 'threads';
{$PACKRECORDS C}
const
DONT_AUTO_ACTIVATE = 1;
DONT_SWITCH_SCREEN = 2;
DONT_CHECK_CTRL_CHARS = $10;
AUTO_DESTROY_SCREEN = $20;
POP_UP_SCREEN = $40;
UNCOUPLED_CURSORS = $80;
HAS_A_CLIB_HANDLE = $100;
_KEYBOARD_INPUT_ACTIVE = $00010000;
_PROCESS_BLOCKED_ON_KEYBOARD = $00020000;
_PROCESS_BLOCKED_ON_SCREEN = $00040000;
_INPUT_CURSOR_DISABLED = $00080000;
_SCREEN_HAS_TITLE_BAR = $00400000;
_NON_SWITCHABLE_SCREEN = $01000000;
function getch :longint; cdecl;external ThreadsNlm name 'getch';
function getche:longint; cdecl;external ThreadsNlm name 'getche';
function kbhit :longint; cdecl;external ThreadsNlm name 'kbhit';
function putch(c:longint):longint; cdecl;external ThreadsNlm name 'putch';
function ungetch(c:longint):longint; cdecl;external ThreadsNlm name 'ungetch';
function cgets(buf:Pchar):Pchar; cdecl;external ThreadsNlm name 'cgets';
function CheckIfScreenDisplayed(screenHandle:longint; waitFlag:longint):longint;
cdecl;external ThreadsNlm name 'CheckIfScreenDisplayed';
procedure clrscr; cdecl;external ThreadsNlm name 'clrscr';
procedure ConsolePrintf(format:Pchar; args:array of const);
cdecl;external ClibNlm name 'ConsolePrintf';
procedure ConsolePrintf(format:Pchar); cdecl;external ClibNlm name 'ConsolePrintf';
procedure CopyToScreenMemory(height,width:word; Rect:PBYTE; begx,begy:word);cdecl;external ThreadsNlm name 'CopyToScreenMemory';
procedure CopyToScreenMemory(height,width:word; var Rect:byte; begx,begy:word);cdecl;external ThreadsNlm name 'CopyToScreenMemory';
procedure CopyFromScreenMemory(height, width:word; Rect:PBYTE; begx,begy:word);cdecl;external ThreadsNlm name 'CopyFromScreenMemory';
procedure CopyFromScreenMemory(height, width:word; var Rect:byte; begx,begy:word);cdecl;external ThreadsNlm name 'CopyFromScreenMemory';
{ function CoupleInputOutputCursors:longint;cdecl;external ClibNlm name 'CoupleInputOutputCursors'; }
function cputs(buf:Pchar):longint; cdecl;external ThreadsNlm name 'cputs';
function cprintf(fmt:Pchar; args:array of const):longint;
cdecl;external ClibNlm name 'cprintf';
function cprintf(fmt:Pchar):longint; cdecl;external ClibNlm name 'cprintf';
function CreateScreen(screenName:Pchar; attr:byte):longint;
cdecl;external ThreadsNlm name 'CreateScreen';
function cscanf(fmt:Pchar; args:array of const):longint;cdecl;external ClibNlm name 'cscanf';
function cscanf(fmt:Pchar):longint; cdecl;external ClibNlm name 'cscanf';
{ function DecoupleInputOutputCursors:longint;cdecl;external External_library name 'DecoupleInputOutputCursors'; }
function DestroyScreen(screenHandle:longint):longint; cdecl;external ThreadsNlm name 'DestroyScreen';
function DisplayInputCursor:longint; cdecl;external ThreadsNlm name 'DisplayInputCursor';
function DisplayScreen(screenHandle:longint):longint; cdecl;external ThreadsNlm name 'DisplayScreen';
function DropPopUpScreen(screenHandle:longint):longint; cdecl;external ThreadsNlm name 'DropPopUpScreen';
function GetCurrentScreen:longint; cdecl;external ThreadsNlm name 'GetCurrentScreen';
function GetCursorCouplingMode:byte; cdecl;external ThreadsNlm name 'GetCursorCouplingMode';
function GetCursorShape(startline,endline:byte):word; cdecl;external ThreadsNlm name 'GetCursorShape';
function GetCursorSize(var firstline,lastl:byte):word; cdecl;external ThreadsNlm name 'GetCursorSize';
function GetPositionOfOutputCursor(var row,columnP:word):longint;
cdecl;external ThreadsNlm name 'GetPositionOfOutputCursor';
function __GetScreenID(screenHandle:longint):longint; cdecl;external ThreadsNlm name '__GetScreenID';
function GetScreenInfo(handle:longint; name:Pchar; var attr:longint):longint;
cdecl;external ThreadsNlm name 'GetScreenInfo';
function GetSizeOfScreen(var height,width:word):longint;cdecl;external ThreadsNlm name 'GetSizeOfScreen';
procedure gotoxy(x,y:word); cdecl;external ThreadsNlm name 'gotoxy';
function HideInputCursor:longint; cdecl;external ThreadsNlm name 'HideInputCursor';
function IsColorMonitor:longint; cdecl;external ThreadsNlm name 'IsColorMonitor';
function PressAnyKeyToContinue:longint; cdecl;external ThreadsNlm name 'PressAnyKeyToContinue';
function PressEscapeToQuit:longint; cdecl;external ThreadsNlm name 'PressEscapeToQuit';
procedure RingTheBell; cdecl;external ThreadsNlm name 'RingTheBell';
function ScanScreens(LastScreenID:longint; name:Pchar; var attr:longint):longint;
cdecl;external ThreadsNlm name 'ScanScreens';
function ScrollScreenRegionDown(firstLine,lines:longint):longint;cdecl;external ThreadsNlm name 'ScrollScreenRegionDown';
function ScrollScreenRegionUp(firstLine,lines:longint):longint;cdecl;external ThreadsNlm name 'ScrollScreenRegionUp';
function SetAutoScreenDestructionMode(newMode:byte):byte;cdecl;external ThreadsNlm name 'SetAutoScreenDestructionMode';
function SetCtrlCharCheckMode(newMode:byte):byte; cdecl;external ThreadsNlm name 'SetCtrlCharCheckMode';
function SetCursorCouplingMode(newMode:byte):byte; cdecl;external ThreadsNlm name 'SetCursorCouplingMode';
function SetCursorShape(startline,endline:byte):word; cdecl;external ThreadsNlm name 'SetCursorShape';
function SetCurrentScreen(screenHandle:longint):longint; cdecl;external ThreadsNlm name 'SetCurrentScreen';
function SetInputAtOutputCursorPosition:longint; cdecl;external ThreadsNlm name 'SetInputAtOutputCursorPosition';
function SetOutputAtInputCursorPosition:longint; cdecl;external ThreadsNlm name 'SetOutputAtInputCursorPosition';
function SetPositionOfInputCursor(row,col:word):longint; cdecl;external ThreadsNlm name 'SetPositionOfInputCursor';
function SetScreenAreaAttribute(line,column,numLines,numColumns,attr:longint):longint;
cdecl;external ThreadsNlm name 'SetScreenAreaAttribute';
{function SetScreenAttributes(mask,attr:longint):longint; cdecl;external ClibNlm name 'SetScreenAttributes';}
function SetScreenCharacterAttribute(line,column,attr:longint):longint;
cdecl;external ThreadsNlm name 'SetScreenCharacterAttribute';
function SetScreenRegionAttribute(firstLine,lines:longint; attr:byte):longint;
cdecl;external ThreadsNlm name 'SetScreenRegionAttribute';
function wherex:word; cdecl;external ThreadsNlm name 'wherex';
function wherey:word; cdecl;external ThreadsNlm name 'wherey';
implementation
end.
{
$Log$
Revision 1.1 2003-02-16 17:45:08 armin
* added nwsnut, nwconio and nwthreads for netware
}

3166
rtl/netware/nwnit.pp Normal file

File diff suppressed because it is too large Load Diff

4828
rtl/netware/nwserv.pp Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,199 +0,0 @@
{
$Id$
This file is part of the Free Pascal run time library
for Netware.
Copyright (c) 1999-2003 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.
**********************************************************************}
unit nwthread;
interface
{$mode objfpc}
const
ThreadsNlm = 'threads';
Lib0Nlm = 'lib0';
NlmLibNlm = 'nlmlib';
Type
PLong = ^longint;
{$PACKRECORDS C}
{ values for __action_code used with ExitThread() }
const
TSR_THREAD = -1;
EXIT_THREAD = 0;
EXIT_NLM = 1;
{ values for __mode used with spawnxx() }
P_WAIT = 0;
P_NOWAIT = 1;
P_OVERLAY = 2;
P_NOWAITO = 4;
P_SPAWN_IN_CURRENT_DOMAIN = 8;
NO_CONTEXT = 0;
USE_CURRENT_CONTEXT = 1;
{ stack defines }
MIN_STACKSIZE = 16384;
DEFAULT_STACKSIZE = 16384;
type
PWorkToDo = ^TWorkToDo;
TProcedure = procedure; cdecl;
TThreadFunc = procedure (param1:pointer); cdecl;
TWorkToDoProc = procedure (data:pointer; workToDo:PWorkToDo); cdecl;
TCleanup = procedure (para1:longint); cdecl;
PAESProcessStructure = ^TAESProcessStructure;
TAESProcessStructure = record
ALink : PAESProcessStructure;
AWakeUpDelayAmount : longint;
AWakeUpTime : longint;
AProcessToCall : procedure (para1:pointer);cdecl;
ARTag : longint;
AOldLink : longint;
end;
PWorkToDoStructure = ^TWorkToDoStructure;
TWorkToDoStructure = record
Link : PWorkToDoStructure;
workProcedure : TProcedure;
WorkResourceTag : longint;
PollCountAmount : longint;
PollCountWhen : longint;
userProcedure : TProcedure;
dataPtr : pointer;
destThreadGroup : longint;
end;
TWorkToDo = TWorkToDoStructure;
{ custom data area variables... }
var
threadCustomDataPtr : pointer;cvar;external;
threadCustomDataSize : longint;cvar;external;
threadGroupCustomDataPtr : pointer;cvar;external;
threadGroupCustomDataSize : longint;cvar;external;
function AtUnload(func:Tprocedure):longint; cdecl;external ThreadsNlm name 'AtUnload';
function BeginThread(func:TThreadFunc;
stackP:pointer;
stackSize:dword;
arg:pointer):longint; cdecl;external ThreadsNlm name 'BeginThread';
function BeginThreadGroup(func:TThreadFunc;
stackP:pointer;
stackSize:dword;
arg:pointer):longint; cdecl;external ThreadsNlm name 'BeginThreadGroup';
function Breakpoint(arg:longint):longint; cdecl;external Lib0Nlm name 'Breakpoint';
procedure CancelNoSleepAESProcessEvent(EventNode:PAESProcessStructure);cdecl;external ThreadsNlm name 'CancelNoSleepAESProcessEvent';
procedure CancelSleepAESProcessEvent (EventNode:PAESProcessStructure);cdecl;external ThreadsNlm name 'CancelSleepAESProcessEvent';
function ClearNLMDontUnloadFlag(NLMID:longint):longint; cdecl;external ThreadsNlm name 'ClearNLMDontUnloadFlag';
procedure delay(milliseconds:dword); cdecl;external ThreadsNlm name 'delay';
function EnterCritSec:longint; cdecl;external ThreadsNlm name 'EnterCritSec';
function ExitCritSec:longint; cdecl;external ThreadsNlm name 'ExitCritSec';
procedure ExitThread(action_code :longint;
termination_code:longint); cdecl;external ThreadsNlm name 'ExitThread';
function FindNLMHandle(NLMFileName:Pchar):dword; cdecl;external ThreadsNlm name 'FindNLMHandle';
function getcmd(cmdLine:Pchar):Pchar; cdecl;external ThreadsNlm name 'getcmd';
function GetNLMHandle:dword; cdecl;external ThreadsNlm name 'GetNLMHandle';
function GetNLMID:longint; cdecl;external ThreadsNlm name 'GetNLMID';
function GetNLMIDFromNLMHandle(NLMHandle:longint):longint; cdecl;external ThreadsNlm name 'GetNLMIDFromNLMHandle';
function GetNLMIDFromThreadID(threadID:longint;fileName:Pchar):longint;cdecl;external ThreadsNlm name 'GetNLMIDFromThreadID';
function GetNLMNameFromNLMID(NLMID:longint;
fileName:Pchar;
description:Pchar):longint; cdecl;external ThreadsNlm name 'GetNLMNameFromNLMID';
function GetNLMNameFromNLMHandle(NLMHandle:longint;
LDFileName:Pchar;
LDName:Pchar):longint; cdecl;external ThreadsNlm name 'GetNLMNameFromNLMHandle';
function GetThreadContextSpecifier(threadID:longint):longint; cdecl;external ThreadsNlm name 'GetThreadContextSpecifier';
function GetThreadGroupID:longint; cdecl;external ThreadsNlm name 'GetThreadGroupID';
function __GetThreadIDFromPCB(PCB:longint):longint; cdecl;external Lib0Nlm name '__GetThreadIDFromPCB';
function GetThreadHandicap(threadID:longint):longint; cdecl;external ThreadsNlm name 'GetThreadHandicap';
function GetThreadID:longint; cdecl;external ThreadsNlm name 'GetThreadID';
function GetThreadName(threadID:longint; tName:Pchar):longint; cdecl;external ThreadsNlm name 'GetThreadName';
function MapNLMIDToHandle(NLMID:longint):longint; cdecl;external ThreadsNlm name 'MapNLMIDToHandle';
function PopThreadCleanup(execute:longint):TCLEANUP; cdecl;external ThreadsNlm name 'PopThreadCleanup';
function PopThreadGroupCleanup(execute:longint):TCLEANUP; cdecl;external ThreadsNlm name 'PopThreadGroupCleanup';
function PushThreadCleanup(func:TCLEANUP):longint; cdecl;external ThreadsNlm name 'PushThreadCleanup';
function PushThreadGroupCleanup(func:TCLEANUP):longint; cdecl;external ThreadsNlm name 'PushThreadGroupCleanup';
function RenameThread(threadID:longint; newName:Pchar):longint; cdecl;external ThreadsNlm name 'RenameThread';
function ResumeThread(threadID:longint):longint; cdecl;external ThreadsNlm name 'ResumeThread';
function ReturnNLMVersionInfoFromFile(pathName:pchar;
majorVersion:PLONG;
minorVersion:PLONG;
revision:PLONG;
year:PLONG;
month:PLONG;
day:PLONG;
copyrightString:pchar;
description:pchar):longint; cdecl;external NlmLibNlm name 'ReturnNLMVersionInfoFromFile';
function ReturnNLMVersionInfoFromFile(pathName:pchar;
var majorVersion,minorVersion,revision:longint;
var year,month,day:longint;
copyrightString:pchar;
description:pchar):longint; cdecl;external NlmLibNlm name 'ReturnNLMVersionInfoFromFile';
function ReturnNLMVersionInformation(NLMHandle:longint;
majorVersion,minorVersion,revision,year,month,day:PLONG;
copyrightString:pchar; description:pchar):longint;cdecl;external NlmLibNlm name 'ReturnNLMVersionInformation';
function ReturnNLMVersionInformation(NLMHandle:longint;
var majorVersion,minorVersion,revision,year,month,day:longint;
copyrightString:pchar; description:pchar):longint;cdecl;external NlmLibNlm name 'ReturnNLMVersionInformation';
procedure ScheduleNoSleepAESProcessEvent(EventNode:PAESProcessStructure);cdecl;external ThreadsNlm name 'ScheduleNoSleepAESProcessEvent';
procedure ScheduleSleepAESProcessEvent(EventNode:PAESProcessStructure); cdecl;external ThreadsNlm name 'ScheduleSleepAESProcessEvent';
function ScheduleWorkToDo(ProcedureToCall:TWorkToDoProc;
workData :pointer;
workToDo :PWorkToDo):longint; cdecl;external ThreadsNlm name 'ScheduleWorkToDo';
function SetNLMDontUnloadFlag(NLMID:longint):longint; cdecl;external ThreadsNlm name 'SetNLMDontUnloadFlag';
function SetNLMID(newNLMID:longint):longint; cdecl;external ThreadsNlm name 'SetNLMID';
function SetThreadContextSpecifier(threadID,
contextSpecifier:longint):longint; cdecl;external ThreadsNlm name 'SetThreadContextSpecifier';
function SetThreadGroupID(newThreadGroupID:longint):longint; cdecl;external ThreadsNlm name 'SetThreadGroupID';
procedure SetThreadHandicap(threadID, handicap:longint); cdecl;external ThreadsNlm name 'SetThreadHandicap';
function spawnlp(mode:longint;
path,arg0:Pchar;
args:array of const):longint; cdecl;external ThreadsNlm name 'spawnlp';
function spawnlp(mode:longint;
path,arg0:Pchar):longint; cdecl;external ThreadsNlm name 'spawnlp';
function spawnvp(mode:longint;
path,argv:PPchar):longint; cdecl;external ThreadsNlm name 'spawnvp';
function SuspendThread(threadID:longint):longint; cdecl;external ThreadsNlm name 'SuspendThread';
procedure ThreadSwitch; cdecl;external ThreadsNlm name 'ThreadSwitch';
procedure ThreadSwitchLowPriority; cdecl;external ThreadsNlm name 'ThreadSwitchLowPriority';
procedure ThreadSwitchWithDelay; cdecl;external ThreadsNlm name 'ThreadSwitchWithDelay';
implementation
end.
{
$Log$
Revision 1.1 2003-02-16 17:45:08 armin
* added nwsnut, nwconio and nwthreads for netware
}