fpc/rtl/posix
2004-11-04 09:32:31 +00:00
..
errno.tem * old logs removed and tabs fixed 2002-09-07 16:01:16 +00:00
osposix.tem * old logs removed and tabs fixed 2002-09-07 16:01:16 +00:00
osposixh.tem * old logs removed and tabs fixed 2002-09-07 16:01:16 +00:00
posix.pp * for now. 2002-11-14 12:17:28 +00:00
posix.tem * old logs removed and tabs fixed 2002-09-07 16:01:16 +00:00
readme.txt
signal.tem * old logs removed and tabs fixed 2002-09-07 16:01:16 +00:00
sysposix.inc ErrOutput added 2004-11-04 09:32:31 +00:00
sysutils.pp * error handling for Variants improved 2003-11-26 20:00:19 +00:00
timezone.inc * old logs removed and tabs fixed 2002-09-07 16:01:16 +00:00

POSIX directory information
---------------------------
This directory contains the system call interface to
POSIX compliant systems. These files should be
completed by OS-specific files. This permits to
easily create  common and maintanable base
runtime library units (such as dos and system).

Limitations:
------------
- Only single byte character sets are supported (ASCII, ISO8859-1)
- Path and filenames are limited to 255 characters 
  (shortstrings are limited to 255 characters)

Files in this directory

posix.tem
----------
Posix unit template.

dos.pp
------
POSIX compliant dos unit. The following routines
and variables must be implemented / declared on
a platform by platform basis:

DiskFree()
DiskSize()
DosVersion()
GetTimeZoneString(): Should return the string of
the timezone information , as defined by POSIX,
if not available, should return an empty string.
This string is usually stored in the 'TZ' environment
variable.
GetTimeZoneFileName() : Should return the absolute path to 
the timezone filename to use to convert the UTC time to 
local time. The format of the timezone files are those 
specific in glibc.
FixDriveStr : Array of pchar which contains
the names of the fixed disks :
(index 0 : current directory
 index 1 : first floppy disk
 index 2 : second floppy disk
 index 3 : boot disk
)


sysposix.inc
------------
Most of the specific operating system
routines which can be implemented using
the POSIX interface are implemented in
this unit. This should be included in
the target operating system system unit
to create a complete system unit.

Files required to port the compiler to a POSIX
compliant system (should reside in the target
OS directory):

  osposixh.inc : This includes all constants,
  type definitions and structures used
  (this is operating system dependant), except
  for those related to signals. It includes
  the signal file.

  osposix.inc : The actuall system call routines
  to the routine prototypes defined in posixh.inc.
  (either these can be an interface to a libc, or
  actual system calls).

  errno.inc : All possible error codes which
  can be returned by the operating system.
  
  signal.inc : Defines all constants and types
  related to signals, it must at least define
  the POSIX signal types and constants, but
  can also add other OS specific types and
  constants related to signals.


Templates for the osposix.inc file (when linked
with the GNU libc), errno.inc and osposixh.inc
are included in this directory and have the 
extension .tem . They should be used as a basis 
to port to a new operating system.

When sysposix.inc is used, the following system
unit routines must be implemented for each new
operating system, as they are not reproducable
under the POSIX interface:

 function sbrk(size : longint): longint;
 procedure do_truncate (handle,pos:longint);
 function do_isdevice(handle:longint):boolean;

When dos.pp is used, the following dos
unit routines must be implemented for each new
operating system, as they are not reproducable
under the POSIX interface:

 function diskfree(drive : byte) : int64;
 function disksize(drive: byte) : int64;