* more new RTL

This commit is contained in:
marco 2002-12-18 16:44:09 +00:00
parent 7dd70233f2
commit 5bbe43169c
2 changed files with 156 additions and 5 deletions

45
rtl/linux/baseunix.pp Normal file
View File

@ -0,0 +1,45 @@
{
$Id$
This file is part of the Free Pascal run time library.
Copyright (c) 2001 by Carl Eric Codere development team
Base Unix unit modelled after POSIX 2001.
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 BaseUnix;
Interface
{$define oldreaddir} // Keep using readdir system call instead
// of userland getdents stuff.
{$define usedomain} // Allow uname with "domain" entry.
// (which is a GNU extension)
{$define posixworkaround} // Temporary ugly workaround for signal handler.
// (mainly until baseunix migration is complete)
{$i errno.inc} { Error numbers }
{$i bunxtype.inc} { Types }
{$i bunxh.inc} { Functions}
implementation
{$i bunxmain.inc} { implementation}
{$i bunxovl.inc} { redefs and overloads implementation}
end.
{
$Log$
Revision 1.1 2002-12-18 16:44:09 marco
* more new RTL
Revision 1.2 2002/11/14 12:17:28 marco
* for now.
}

View File

@ -1,9 +1,11 @@
{
$Id$
This file is part of the Free Pascal run time library.
Copyright (c) 1999-2000 by Michael Van Canneyt,
This file is part of the Free Pascal run time librar~y.
Copyright (c) 2000 by Marco van de Voort
member of the Free Pascal development team.
System unit for the *BSD's.
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
@ -19,18 +21,122 @@
{ If you use an aout system, set the conditional AOUT}
{ $Define AOUT}
{$ifdef BSD}
Unit {$ifdef VER1_0}SysBSD{$else}System{$endif};
{$else}
Unit {$ifdef VER1_0}Syslinux{$else}System{$endif};
{$endif}
Interface
{$define oldreaddir}
{$define usedomain}
{$define posixworkaround}
{$I sysunixh.inc}
Implementation
{$I sysunix.inc}
{$ifdef ver_1_0}
Var
{$else}
ThreadVar
{$endif}
Errno : longint;
function geterrno:longint; [public, alias: 'FPC_SYS_GETERRNO'];
begin
GetErrno:=Errno;
end;
procedure seterrno(err:longint); [public, alias: 'FPC_SYS_SETERRNO'];
begin
Errno:=err;
end;
{$I system.inc}
{ OS dependant parts }
{$I errno.inc} // error numbers
{$I bunxtype.inc} // c-types, unix base types, unix
// base structures
{$I ossysc.inc} // base syscalls
{$I osmain.inc} // base wrappers *nix RTL (derivatives)
{ more OS independant parts}
{$I text.inc}
{$I heap.inc}
{*****************************************************************************
UnTyped File Handling
*****************************************************************************}
{$i file.inc}
{*****************************************************************************
Typed File Handling
*****************************************************************************}
{$i typefile.inc}
procedure SysInitStdIO;
begin
OpenStdIO(Input,fmInput,StdInputHandle);
OpenStdIO(Output,fmOutput,StdOutputHandle);
OpenStdIO(StdOut,fmOutput,StdOutputHandle);
OpenStdIO(StdErr,fmOutput,StdErrorHandle);
end;
Begin
IsConsole := TRUE;
IsLibrary := FALSE;
StackBottom := Sptr - StackLength;
{ Set up signals handlers }
InstallSignals;
{ Setup heap }
InitHeap;
SysInitExceptions;
{ Arguments }
SetupCmdLine;
{ Setup stdin, stdout and stderr }
SysInitStdIO;
{ Reset IO Error }
InOutRes:=0;
{$ifdef HASVARIANT}
initvariantmanager;
{$endif HASVARIANT}
End.
{
$Log$
Revision 1.2 2002-09-07 16:01:20 peter
Revision 1.3 2002-12-18 16:44:09 marco
* more new RTL
Revision 1.7 2002/11/12 14:57:48 marco
* Ugly hack to temporarily be able to use system.pp for Linux too
Revision 1.6 2002/10/27 11:58:30 marco
* Modifications from Saturday.
Revision 1.5 2002/10/26 18:27:51 marco
* First series POSIX calls commits. Including getcwd.
Revision 1.4 2002/10/18 12:19:58 marco
* Fixes to get the generic *BSD RTL compiling again + fixes for thread
support. Still problems left in fexpand. (inoutres?) Therefore fixed
sysposix not yet commited
Revision 1.3 2002/10/13 09:25:39 florian
+ call to initvariantmanager inserted
Revision 1.2 2002/09/07 16:01:17 peter
* old logs removed and tabs fixed
}
Revision 1.1 2002/08/19 12:29:11 marco
* First working POSIX *BSD system unit.
}