summaryrefslogtreecommitdiff
path: root/rtl/unix
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2013-07-24 13:49:35 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2013-07-24 13:49:35 +0000
commit645fa8a988ec8b529cf97544538dc07566fa8032 (patch)
tree470efdbe1c04f7d85a26fd947998c619fc6e4ab6 /rtl/unix
parent8c50d366ced3776d7f8e2b446b268312781f4de8 (diff)
downloadfpc-645fa8a988ec8b529cf97544538dc07566fa8032.tar.gz
* ordered the declarations the same was as in bunxh.inc, so it's easier
to see what's missing + added missing declarations for fpexecv (causing an unnecessary slowdown in executeprocess due to it calling the ansistring overload), fplink, fpwait and fpsetrlimit * changed sigset parameters of FpSigSuspend and FpSigTimedWait from const into constref, since they must be passed by reference git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25167 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/unix')
-rw-r--r--rtl/unix/oscdeclh.inc178
1 files changed, 99 insertions, 79 deletions
diff --git a/rtl/unix/oscdeclh.inc b/rtl/unix/oscdeclh.inc
index b4b37e8518..84f79dfcda 100644
--- a/rtl/unix/oscdeclh.inc
+++ b/rtl/unix/oscdeclh.inc
@@ -37,20 +37,60 @@ const
suffix64bit = '';
{$endif}
- function FpAccess (pathname : pchar; amode : cint): cint; cdecl; external clib name 'access';
- function FpChdir (path : pchar): cint; cdecl; external clib name 'chdir';
+ function FPSigProcMask(how:cint;nset : psigset;oset : psigset):cint;cdecl; external clib name 'sigprocmask';
+ function FPSigProcMask(how:cint;const nset : sigset;var oset : sigset):cint;cdecl; external clib name 'sigprocmask';
+ Function FpSigPending (var nset : sigset): cInt; external clib name 'sigpending';
+ Function FpSigSuspend (constref sigmask : TSigSet): cInt; external clib name 'sigsuspend';
+{$if not defined(darwin) and not defined(haiku)}
+ Function FpSigTimedWait (Constref sigset : TSigSet; info : Psiginfo; timeout:Ptimespec): cInt; cdecl; external clib name 'sigtimedwait';
+{$endif}
+ Function FpUmask (cmask : TMode): TMode; cdecl; external clib name 'umask';
+ Function FpLink (existing : pChar; newone : pChar): cInt; cdecl; external clib name 'link';
+ Function FpMkfifo (path: pchar; mode: tmode): cint; cdecl; external clib name 'mkfifo';
+ Function FpChmod (path : pChar; Mode : TMode): cInt; cdecl; external clib name 'chmod';
Function FpChown (path : pChar; owner : TUid; group : TGid): cInt; cdecl; external clib name 'chown';
- function FpClose (fd : cint): cint; cdecl; external clib name 'close';
- Function FpClosedir (var dirp : Dir): cInt; cdecl; external clib name 'closedir'{$ifdef aix}+suffix64bit{$endif};
- function FpClosedir (dirp : pdir): cint; cdecl; external clib name 'closedir'{$ifdef aix}+suffix64bit{$endif};
+ Function FPUtime(path:pchar;times:putimbuf):cint; cdecl; external clib name 'utime';
+ Function FpPipe (var fildes : tfildes):cInt; cdecl;external clib name 'pipe';
function FpDup (oldd:cint):cint; cdecl; external clib name 'dup';
function FpDup2 (oldd:cint;newd:cint):cint; cdecl; external clib name 'dup2';
- function FpExecve (path : pchar; argv : ppchar; envp: ppchar): cint; cdecl; external clib name 'execve';
+ function FpTimes (var buffer : tms): TClock; cdecl; external clib name 'times';
+
+ Function FpAlarm (seconds : cuint) : cuint; cdecl;external clib name 'alarm';
+ Function FpPause : cInt; cdecl; external clib name 'pause';
+ Function FpSleep (seconds : cuint): cuint; external clib name 'sleep';
+
+ Function FpGetpid : TPid; cdecl;external clib name 'getpid';
+ Function FpGetppid : TPid;cdecl;external clib name 'getppid';
+ Function FpGetuid : TUid;cdecl;external clib name 'getuid';
+ Function FpGeteuid : TUid;cdecl;external clib name 'geteuid';
+ Function FpGetgid : TGid;cdecl;external clib name 'getgid';
+ Function FpGetegid : TGid;cdecl;external clib name 'getegid';
+ Function FpSetuid (uid : TUid): cInt;cdecl;external clib name 'setuid';
+ Function FpSetgid (gid : TGid): cInt;cdecl;external clib name 'setgid';
+ Function FpGetgroups (gidsetsize : cInt; var grouplist : tgrparr):cint; cdecl;external clib name 'getgroups';
+ Function FpGetpgrp : TPid; cdecl;external clib name 'getpgrp';
+ Function FpSetsid : TPid; cdecl;external clib name 'setsid';
+ Function FpGetsid (pid:TPid) : TPid; cdecl; external clib name 'getsid';
+
+ { The libc version has "..." as third parameter -> wrap for }
+ { interface compatibility with syscalls }
+ Function FpFcntl (fildes : cInt; cmd : cInt): cInt; {$ifdef FPC_IS_SYSTEM}forward;{$endif}
+ Function FpFcntl (fildes : cInt; cmd : cInt; arg :cInt): cInt; {$ifdef FPC_IS_SYSTEM}forward;{$endif}
+ Function FpFcntl (fildes : cInt; cmd : cInt; var arg : flock): cInt; {$ifdef FPC_IS_SYSTEM}forward;{$endif}
+
+ Function FpGetcwd (path:pChar; siz:TSize):pChar; cdecl; external clib name 'getcwd';
function FpFork : TPid; cdecl; external clib name 'fork';
- function FpvFork : TPid; cdecl; external clib name 'vfork';
- function FpFtruncate(fd : cint; flength : TOff): cint; cdecl; external clib name 'ftruncate'+suffix64bit;
- function FpLseek (fd : cint; offset : TOff; whence : cint): TOff; cdecl; external clib name 'lseek'+suffix64bit;
- function FpMkdir (path : pchar; mode: TMode):cint; cdecl; external clib name 'mkdir';
+ function FpExecve (path : pchar; argv : ppchar; envp: ppchar): cint; cdecl; external clib name 'execve';
+ function FpExecv (path : pchar; argv : ppchar): cint; cdecl; external clib name 'execv';
+ function FpWaitpid (pid : TPid; stat_loc : pcint; options: cint): TPid; cdecl; external clib name 'waitpid';
+ Function FpWait (var stat_loc : cInt): TPid; cdecl; external clib name 'waitpid';
+ procedure FpExit (status : cint); cdecl; external clib name '_exit';
+ Function FpKill (pid : TPid; sig: cInt): cInt; cdecl; external clib name 'kill';
+ function FpUname (var name: utsname): cint; cdecl; external clib name 'uname';
+ function FpOpendir (dirname : pchar): pdir; cdecl; external clib name 'opendir'{$ifdef aix}+suffix64bit{$endif};
+ Function FpReaddir (var dirp : Dir) : pDirent;cdecl; external clib name 'readdir'+suffix64bit;
+ Function FpClosedir (var dirp : Dir): cInt; cdecl; external clib name 'closedir'{$ifdef aix}+suffix64bit{$endif};
+ function FpChdir (path : pchar): cint; cdecl; external clib name 'chdir';
function FpOpen (path: pchar; flags : cint; mode: TMode):cint;
{$if defined(linux) and not defined(fs32bit)}
{ we need a wrapper for linux to automatically pass O_LARGEFILE with flags }
@@ -58,36 +98,36 @@ const
function __FpOpen (path: pchar; flags : cint; mode: TMode):cint;
{$endif}
cdecl; external clib name 'open'{$ifdef aix}+suffix64bit{$endif};
- function FpOpendir (dirname : pchar): pdir; cdecl; external clib name 'opendir'{$ifdef aix}+suffix64bit{$endif};
- function FpRead (fd: cint; buf: pchar; nbytes : TSize): TSSize; cdecl; external clib name 'read';
- function FpReaddir (dirp : pdir) : pdirent;cdecl; external clib name 'readdir'+suffix64bit;
- Function FpReaddir (var dirp : Dir) : pDirent;cdecl; external clib name 'readdir'+suffix64bit;
- function FpRename (old : pchar; newpath: pchar): cint; cdecl;external clib name 'rename';
- function FpRmdir (path : pchar): cint; cdecl; external clib name 'rmdir';
- function FpSigaction (sig: cint;var act : sigactionrec; var oact : sigactionrec): cint; cdecl; external clib name 'sigaction';
- Function FPSigaction (sig: cInt; act :pSigActionRec;oact:pSigActionRec):cint;cdecl; external clib name 'sigaction';
- Function FpChmod (path : pChar; Mode : TMode): cInt; cdecl; external clib name 'chmod';
- Function FPUtime(path:pchar;times:putimbuf):cint; cdecl; external clib name 'utime';
- Function FpGetcwd (path:pChar; siz:TSize):pChar; cdecl; external clib name 'getcwd';
- function FPSigProcMask(how:cint;nset : psigset;oset : psigset):cint;cdecl; external clib name 'sigprocmask';
- function FPSigProcMask(how:cint;const nset : sigset;var oset : sigset):cint;cdecl; external clib name 'sigprocmask';
-{$if not defined(darwin) and not defined(haiku)}
- Function FpSigTimedWait (Const sigset : TSigSet; info : Psiginfo; timeout:Ptimespec): cInt; cdecl; external clib name 'sigtimedwait';
- Function FpSigTimedWait (Const sigset : TSigSet; info : Psiginfo; var timeout:Ttimespec): cInt; cdecl; external clib name 'sigtimedwait';
-{$endif}
- function FpTime (tloc:ptime_t): time_t; cdecl; external clib name 'time';
- Function FpTime (var tloc : Time_t): Time_t; cdecl; external clib name 'time';
- function FpTimes (var buffer : tms): TClock; cdecl; external clib name 'times';
- function FpUname (var name: utsname): cint; cdecl; external clib name 'uname';
+ function FpMkdir (path : pchar; mode: TMode):cint; cdecl; external clib name 'mkdir';
function FpUnlink (path: pchar): cint; cdecl; external clib name 'unlink';
- function FpWaitpid (pid : TPid; stat_loc : pcint; options: cint): TPid; cdecl; external clib name 'waitpid';
+ function FpRmdir (path : pchar): cint; cdecl; external clib name 'rmdir';
+ function FpRename (old : pchar; newpath: pchar): cint; cdecl;external clib name 'rename';
+{$ifdef linux}
+{$ifndef FPC_IS_SYSTEM}
+ { those functions are macros on linux }
+ function FpFstat (fd : cint; var sb : stat): cint;inline;
+ Function fpLstat (path:pchar;Info:pstat):cint;inline;
+ function FpStat (path: pchar; var buf : stat): cint;inline;
+{$endif FPC_IS_SYSTEM}
+{$else linux}
+ function FpFstat (fd : cint; var sb : stat): cint; cdecl; external clib name 'fstat'+suffix64bit;
+ Function fpLstat (path:pchar;Info:pstat):cint; cdecl; external clib name 'lstat'+suffix64bit;
+ function FpStat (path: pchar; var buf : stat): cint; cdecl; external clib name 'stat'+suffix64bit;
+{$endif linux}
+ function FpAccess (pathname : pchar; amode : cint): cint; cdecl; external clib name 'access';
+ function FpClose (fd : cint): cint; cdecl; external clib name 'close';
+
+ function FpRead (fd: cint; buf: pchar; nbytes : TSize): TSSize; cdecl; external clib name 'read';
+ Function FpPRead (fd : cInt; buf: pChar; nbytes : TSize; offset:Toff): TSsize; cdecl; external clib name 'pread'+suffix64bit;
+ function FpReadV (fd: cint; const iov : piovec; iovcnt : cint):TSSize; cdecl; external clib name 'readv';
function FpWrite (fd: cint;buf:pchar; nbytes : TSize): TSSize; cdecl; external clib name 'write';
- procedure FpExit (status : cint); cdecl; external clib name '_exit';
- function fpmmap (addr:pointer;len:size_t;prot:cint;flags:cint;fd:cint;ofs:off_t):pointer; cdecl; external clib name 'mmap'+suffix64bit;
- function fpmunmap (addr:pointer;len:size_t):cint; cdecl; external clib name 'munmap';
- { The libc version has "..." as third parameter -> wrap for }
- { interface compatibility with syscalls }
- function FpIOCtl (Handle:cint;Ndx: TIOCtlRequest;Data: Pointer):cint; {$ifdef FPC_IS_SYSTEM}forward;{$endif}
+ Function FpPWrite (fd : cInt; buf:pChar; nbytes : TSize; offset:Toff): TSSize; cdecl; external clib name 'pwrite'+suffix64bit;
+ function FpWriteV (fd: cint; const iov : piovec; iovcnt : cint):TSSize; cdecl; external clib name 'writev';
+
+ function FpLseek (fd : cint; offset : TOff; whence : cint): TOff; cdecl; external clib name 'lseek'+suffix64bit;
+ Function FpTime (var tloc : Time_t): Time_t; cdecl; external clib name 'time';
+ function FpFtruncate(fd : cint; flength : TOff): cint; cdecl; external clib name 'ftruncate'+suffix64bit;
+ Function FPSigaction (sig: cInt; act :pSigActionRec;oact:pSigActionRec):cint;cdecl; external clib name 'sigaction';
{$ifdef beos}
{$ifdef haiku}
Function FPSelect (N:cint;readfds,writefds,exceptfds:pfdSet;TimeOut:PTimeVal):cint; cdecl; external 'network' name 'select';
@@ -100,30 +140,9 @@ const
Function FPSelect (N:cint;readfds,writefds,exceptfds:pfdSet;TimeOut:PTimeVal):cint; cdecl; external clib name 'select';
Function FpPoll (fds: ppollfd; nfds: cuint; timeout: clong): cint; cdecl; external clib name 'poll';
{$endif}
- function fpgetenv (name : pchar):pchar; cdecl; external clib name 'getenv';
- Function FpKill (pid : TPid; sig: cInt): cInt; cdecl; external clib name 'kill';
- Function FpGetpid : TPid; cdecl;external clib name 'getpid';
- Function FpGetppid : TPid;cdecl;external clib name 'getppid';
- Function FpGetuid : TUid;cdecl;external clib name 'getuid';
- Function FpGeteuid : TUid;cdecl;external clib name 'geteuid';
- Function FpGetgid : TGid;cdecl;external clib name 'getgid';
- Function FpGetegid : TGid;cdecl;external clib name 'getegid';
- Function FpSetuid (uid : TUid): cInt;cdecl;external clib name 'setuid';
- Function FpSetgid (gid : TGid): cInt;cdecl;external clib name 'setgid';
- Function FpGetgroups (gidsetsize : cInt; var grouplist : tgrparr):cint; cdecl;external clib name 'getgroups';
- Function FpGetpgrp : TPid; cdecl;external clib name 'getpgrp';
- Function FpSetsid : TPid; cdecl;external clib name 'setsid';
- Function FpGetsid (pid:TPid) : TPid; cdecl; external clib name 'getsid';
-
- Function FpPipe (var fildes : tfildes):cInt; cdecl;external clib name 'pipe';
{ The libc version has "..." as third parameter -> wrap for }
{ interface compatibility with syscalls }
- Function FpFcntl (fildes : cInt; cmd : cInt): cInt; {$ifdef FPC_IS_SYSTEM}forward;{$endif}
- Function FpFcntl (fildes : cInt; cmd : cInt; arg :cInt): cInt; {$ifdef FPC_IS_SYSTEM}forward;{$endif}
- Function FpFcntl (fildes : cInt; cmd : cInt; var arg : flock): cInt; {$ifdef FPC_IS_SYSTEM}forward;{$endif}
- Function FpAlarm (seconds : cuint) : cuint; cdecl;external clib name 'alarm';
- Function FpPause : cInt; cdecl; external clib name 'pause';
- Function FpMkfifo (path: pchar; mode: tmode): cint; cdecl; external clib name 'mkfifo';
+ function FpIOCtl (Handle:cint;Ndx: TIOCtlRequest;Data: Pointer):cint; {$ifdef FPC_IS_SYSTEM}forward;{$endif}
{$ifdef solaris}
{$linklib md5}
{$linklib aio}
@@ -134,34 +153,35 @@ const
{$else}
{$endif}
{$endif solaris}
+ Function fpSymlink (oldname,newname:pchar):cint; cdecl; external clib name 'symlink';
+ Function fpReadLink (name,linkname:pchar;maxlen:size_t):cint; cdecl; external clib name 'readlink';
+
function fpNice (N:cint):cint; cdecl; external clib name 'nice';
Function fpGetPriority (Which,Who:cint):cint; cdecl; external clib name 'getpriority';
Function fpSetPriority (Which,Who,What:cint):cint; cdecl; external clib name 'setpriority';
- Function fpSymlink (oldname,newname:pchar):cint; cdecl; external clib name 'symlink';
- Function fpReadLink (name,linkname:pchar;maxlen:size_t):cint; cdecl; external clib name 'readlink';
- Function FpUmask (cmask : TMode): TMode; cdecl; external clib name 'umask';
+ function fpmmap (addr:pointer;len:size_t;prot:cint;flags:cint;fd:cint;ofs:off_t):pointer; cdecl; external clib name 'mmap'+suffix64bit;
+ function fpmunmap (addr:pointer;len:size_t):cint; cdecl; external clib name 'munmap';
+
+ function fpgetenv (name : pchar):pchar; cdecl; external clib name 'getenv';
{$ifndef beos}
function fpsettimeofday(tp:ptimeval;tzp:ptimezone):cint; cdecl; external clib name 'settimeofday';
{$else}
// function fpsettimeofday(tp:ptimeval;tzp:ptimezone):cint;
{$endif}
+
function FpGetRLimit(resource : cInt; rlim : PRLimit) : cInt; cdecl; external clib name 'getrlimit';
+ function FpSetRLimit(resource : cInt; rlim : PRLimit) : cInt; cdecl; external clib name 'setrlimit';
-{$ifdef linux}
-{$ifndef FPC_IS_SYSTEM}
- { those functions are macros on linux }
- function FpFstat (fd : cint; var sb : stat): cint;inline;
- Function fpLstat (path:pchar;Info:pstat):cint;inline;
- function FpStat (path: pchar; var buf : stat): cint;inline;
-{$endif FPC_IS_SYSTEM}
-{$else linux}
- function FpFstat (fd : cint; var sb : stat): cint; cdecl; external clib name 'fstat'+suffix64bit;
- Function fpLstat (path:pchar;Info:pstat):cint; cdecl; external clib name 'lstat'+suffix64bit;
- function FpStat (path: pchar; var buf : stat): cint; cdecl; external clib name 'stat'+suffix64bit;
-{$endif linux}
+ { not supported with syscalls }
+ function FpvFork : TPid; cdecl; external clib name 'vfork';
+
+ { overloads not available in bunxh.inc }
+ function FpReaddir (dirp : pdir) : pdirent;cdecl; external clib name 'readdir'+suffix64bit;
+ function FpClosedir (dirp : pdir): cint; cdecl; external clib name 'closedir'{$ifdef aix}+suffix64bit{$endif};
+ function FpSigaction (sig: cint;var act : sigactionrec; var oact : sigactionrec): cint; cdecl; external clib name 'sigaction';
+{$if not defined(darwin) and not defined(haiku)}
+ Function FpSigTimedWait (Const sigset : TSigSet; info : Psiginfo; var timeout:Ttimespec): cInt; cdecl; external clib name 'sigtimedwait';
+{$endif}
+ function FpTime (tloc:ptime_t): time_t; cdecl; external clib name 'time';
- Function FpPRead (fd : cInt; buf: pChar; nbytes : TSize; offset:Toff): TSsize; cdecl; external clib name 'pread'+suffix64bit;
- function FpReadV (fd: cint; const iov : piovec; iovcnt : cint):TSSize; cdecl; external clib name 'readv';
- Function FpPWrite (fd : cInt; buf:pChar; nbytes : TSize; offset:Toff): TSSize; cdecl; external clib name 'pwrite'+suffix64bit;
- function FpWriteV (fd: cint; const iov : piovec; iovcnt : cint):TSSize; cdecl; external clib name 'writev';