* made system unit on m68k-linux compilable

git-svn-id: trunk@5266 -
This commit is contained in:
florian 2006-11-06 18:42:47 +00:00
parent 56196fc242
commit b07cd83892
11 changed files with 839 additions and 222 deletions

8
.gitattributes vendored
View File

@ -4633,8 +4633,12 @@ rtl/linux/m68k/gprt0.as -text
rtl/linux/m68k/gprt21.as -text
rtl/linux/m68k/prt0.as -text
rtl/linux/m68k/prt1.as -text
rtl/linux/m68k/signal.inc svneol=native#text/plain
rtl/linux/m68k/sighnd.inc svneol=native#text/plain
rtl/linux/m68k/sighndh.inc svneol=native#text/plain
rtl/linux/m68k/stat.inc svneol=native#text/plain
rtl/linux/m68k/syscall.inc svneol=native#text/plain
rtl/linux/m68k/syscallh.inc svneol=native#text/plain
rtl/linux/m68k/sysnr.inc svneol=native#text/plain
rtl/linux/oldlinux.pp svneol=native#text/plain
rtl/linux/osdefs.inc svneol=native#text/plain
rtl/linux/osmacro.inc svneol=native#text/plain
@ -4717,6 +4721,8 @@ rtl/m68k/readme -text
rtl/m68k/set.inc svneol=native#text/plain
rtl/m68k/setjump.inc svneol=native#text/plain
rtl/m68k/setjumph.inc svneol=native#text/plain
rtl/m68k/strings.inc svneol=native#text/plain
rtl/m68k/stringss.inc svneol=native#text/plain
rtl/macos/MPWmake -text
rtl/macos/Makefile svneol=native#text/plain
rtl/macos/Makefile.fpc svneol=native#text/plain

View File

@ -4,7 +4,7 @@
member of the Free Pascal development team.
The syscalls for the new RTL, moved to platform dependant dir.
Old linux calling convention is stil kept.
Old linux calling convention is still kept.
See the file COPYING.FPC, included in this distribution,
for details about the copyright.

116
rtl/linux/m68k/sighnd.inc Normal file
View File

@ -0,0 +1,116 @@
{
This file is part of the Free Pascal run time library.
Copyright (c) 1999-2000 by Michael Van Canneyt,
member of the Free Pascal development team.
Signal handler is arch dependant due to processor to language
exception conversion.
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.
**********************************************************************}
const
{ Bits in control register }
RoundingMode = $30;
RoundingPrecision = $c0;
InexactDecimal = $100;
InexactOperation = $200;
DivideByZero = $400;
UnderFlow = $800;
OverFlow = $1000;
OperandError = $2000;
SignalingNaN = $4000;
BranchOnUnordered = $800;
fpucw : longint = {InexactOperation or }DivideByZero or
OverFlow or OperandError or
SignalingNaN or BranchOnUnordered;
fpust : longint = 0;
{ Bits in status register }
FPU_Invalid = $80;
FPU_Denormal = $8;
FPU_DivisionByZero = $10;
FPU_Overflow = $40;
FPU_Underflow = $20;
{ m68k is not stack based }
FPU_StackUnderflow = $0;
FPU_StackOverflow = $0;
FPU_All = $f8;
Procedure ResetFPU;
begin
asm
fmove.l fpucw,fpcr
fmove.l fpust,fpsr
end;
end;
function GetFPUState(const SigContext : TSigContext) : longint;
begin
GetfpuState:=SigContext.psr;
{$ifdef SYSTEM_DEBUG}
Writeln(stderr,'FpuState = ',GetFpuState);
{$endif SYSTEM_DEBUG}
end;
procedure SignalToRunerror(Sig: longint; Info : pointer; var SigContext: TSigContext); cdecl;
var
res,fpustate : word;
begin
res:=0;
case sig of
SIGFPE :
begin
{ this is not allways necessary but I don't know yet
how to tell if it is or not PM }
res:=200;
fpustate:=GetFPUState(SigContext);
if (FpuState and FPU_All) <> 0 then
begin
{ first check the more precise options }
if (FpuState and FPU_DivisionByZero)<>0 then
res:=200
else if (FpuState and FPU_Overflow)<>0 then
res:=205
else if (FpuState and FPU_Underflow)<>0 then
res:=206
else if (FpuState and FPU_Denormal)<>0 then
res:=216
else if (FpuState and (FPU_StackOverflow or FPU_StackUnderflow))<>0 then
res:=207
else if (FpuState and FPU_Invalid)<>0 then
res:=216
else
res:=207; {'Coprocessor Error'}
end;
ResetFPU;
end;
SIGILL,
SIGBUS,
SIGSEGV :
res:=216;
end;
reenable_signal(sig);
{ give runtime error at the position where the signal was raised }
if res<>0 then
begin
{ HandleErrorAddrFrame(res,SigContext.sc_pc,SigContext.sc_fp);}
{ fp is not saved in context record :( }
HandleError(res);
HandleError(res);
end;
end;

View File

@ -0,0 +1,57 @@
{
This file is part of the Free Pascal run time library.
Copyright (c) 1999-2000 by Pierre Muller,
member of 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.
**********************************************************************}
type
{ REMARK: floating point regs are defined as arrays of
3 longints; I don't know if C does align this to
16 byte boundaries for each element of the array PM }
{ If C does we might need to define this as
array from 0 to 3 }
tfpreg = array[0..2] of longint;
pfpstate = ^tfpstate;
tfpstate = record
pcr,psr,fpiaddr : longint;
fpreg : array [0..7] of tfpreg;
end;
{ as defined in asm_m68k/signal.h }
Stack_T = Record
ss_sp : pointer;
ss_flags : longint;
ss_size : size_t;
end;
{ SigContextRec corresponds to the ucontext record
in linux asm-m68k/ucontext.h include file }
PSigContext = ^TSigContext;
TSigContext = record
uc_flags : cardinal;
uc_link : pSigContext;
uc_stack : stack_t; { what's that ?? }
{ fields from 'version' to 'pc'
correspond to the mcontext struct in asm-m68k/ucontext.h file }
version : longint; { SigContext version check }
{ 18 general registers }
d0,d1,d2,d3,d4,d5,d6,d7 : cardinal;
a0,a1,a2,a3,a4,a5 : cardinal;
fp,sp,ps,pc : cardinal;
{ fields from 'pcr' to 'fpreg'
are floating point part }
pcr,psr,fpiaddr : longint;
fpreg : array[0..7] of tfpreg; { how is this aligned ?? }
filler : array[0..79] of cardinal;
sigmask : TSigSet;
end;

View File

@ -1,220 +0,0 @@
{
$Id: signal.inc,v 1.1.2.2 2002/10/10 19:31:28 pierre Exp $
This file is part of the Free Pascal run time library.
Copyright (c) 1999-2000 by Pierre Muller,
member of 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.
**********************************************************************}
{$packrecords C}
{********************
Signal
********************}
Const
{ For sending a signal }
SA_NOCLDSTOP = 1;
SA_SHIRQ = $04000000;
SA_STACK = $08000000;
SA_RESTART = $10000000;
SA_INTERRUPT = $20000000;
SA_NOMASK = $40000000;
SA_ONESHOT = $80000000;
SIG_BLOCK = 0;
SIG_UNBLOCK = 1;
SIG_SETMASK = 2;
SIG_DFL = 0 ;
SIG_IGN = 1 ;
SIG_ERR = -1 ;
SIGHUP = 1;
SIGINT = 2;
SIGQUIT = 3;
SIGILL = 4;
SIGTRAP = 5;
SIGABRT = 6;
SIGIOT = 6;
SIGBUS = 7;
SIGFPE = 8;
SIGKILL = 9;
SIGUSR1 = 10;
SIGSEGV = 11;
SIGUSR2 = 12;
SIGPIPE = 13;
SIGALRM = 14;
SIGTerm = 15;
SIGSTKFLT = 16;
SIGCHLD = 17;
SIGCONT = 18;
SIGSTOP = 19;
SIGTSTP = 20;
SIGTTIN = 21;
SIGTTOU = 22;
SIGURG = 23;
SIGXCPU = 24;
SIGXFSZ = 25;
SIGVTALRM = 26;
SIGPROF = 27;
SIGWINCH = 28;
SIGIO = 29;
SIGPOLL = SIGIO;
SIGPWR = 30;
SIGUNUSED = 31;
{ not sure this value is correct for m68k PM }
const
SI_PAD_SIZE = ((128 div sizeof(longint)) - 3);
type
{ REMARK: floating point regs are defined as arrays of
3 longints; I don't know if C does align this to
16 byte boundaries for each element of the array PM }
{ If C does we might need to define this as
array from 0 to 3 }
tfpreg = array[0..2] of longint;
pfpstate = ^tfpstate;
tfpstate = record
pcr,psr,fpiaddr : longint;
fpreg : array [0..7] of tfpreg;
end;
Size_T = cardinal;
SigSet = Longint;
PSigSet = ^SigSet;
{ as defined in asm_m68k/signal.h }
Stack_T = Record
ss_sp : pointer;
ss_flags : longint;
ss_size : size_t;
end;
{ SigContextRec corresponds to the ucontext record
in linux asm-m68k/ucontext.h include file }
PSigContextRec = ^SigContextRec;
SigContextRec = record
uc_flags : cardinal;
uc_link : pSigContextRec;
uc_stack : stack_t; { what's that ?? }
{ fields from 'version' to 'pc'
correspond to the mcontext struct in asm-m68k/ucontext.h file }
version : longint; { SigContext version check }
{ 18 general registers }
d0,d1,d2,d3,d4,d5,d6,d7 : cardinal;
a0,a1,a2,a3,a4,a5 : cardinal;
fp,sp,ps,pc : cardinal;
{ fields from 'pcr' to 'fpreg'
are floating point part }
pcr,psr,fpiaddr : longint;
fpreg : array[0..7] of tfpreg; { how is this aligned ?? }
filler : array[0..79] of cardinal;
sigmask : SigSet;
end;
PSigInfoRec = ^SigInfoRec;
SigInfoRec = record
si_signo: longint;
si_errno: longint;
si_code: longint;
case longint of
0:
(pad: array[0 .. SI_PAD_SIZE-1] of longint);
1: { kill }
( kill: record
pid: longint; { sender's pid }
uid : longint; { sender's uid }
end );
2: { POSIX.1b timers }
( timer : record
timer1 : cardinal;
timer2 : cardinal;
end );
3: { POSIX.1b signals }
( rt : record
pid : longint; { sender's pid }
uid : longint; { sender's uid }
sigval : longint;
end );
4: { SIGCHLD }
( sigchld : record
pid : longint; { which child }
uid : longint; { sender's uid }
status : longint; { exit code }
utime : timeval;
stime : timeval;
end );
5: { SIGILL, SIGFPE, SIGSEGV, SIGBUS }
( sigfault : record
addr : pointer;{ faulting insn/memory ref. }
end );
6:
( sigpoll : record
band : longint; { POLL_IN, POLL_OUT, POLL_MSG }
fd : longint;
end );
end;
SignalHandler = Procedure(Sig : Longint);cdecl;
PSignalHandler = ^SignalHandler;
SignalRestorer = Procedure;cdecl;
PSignalRestorer = ^SignalRestorer;
{ the third argument is only a guess for now,
asm-m68k/signal.h gives only void * arg type PM }
TSigAction = procedure(Sig: Longint; SigInfoPtr : PSigInfoRec; SigContextPtr : PSigContextRec);cdecl;
SigActionRec = packed record
Handler : record
case byte of
0: (Sh: SignalHandler);
1: (Sa: TSigAction);
end;
Sa_Mask : SigSet;
Sa_Flags : Longint;
Sa_restorer : SignalRestorer; { Obsolete - Don't use }
end;
PSigActionRec = ^SigActionRec;
(*
Procedure SigAction(Signum:Integer;Act,OldAct:PSigActionRec );
{
Change action of process upon receipt of a signal.
Signum specifies the signal (all except SigKill and SigStop).
If Act is non-nil, it is used to specify the new action.
If OldAct is non-nil the previous action is saved there.
}
Var
sr : Syscallregs;
begin
sr.reg2:=Signum;
sr.reg3:=Longint(act);
sr.reg4:=Longint(oldact);
SysCall(Syscall_nr_sigaction,sr);
end; *)
{
$Log: signal.inc,v $
Revision 1.1.2.2 2002/10/10 19:31:28 pierre
* update those files that are unused currently
Revision 1.1.2.1 2001/07/13 15:05:40 pierre
+ first signal context tries
}

View File

@ -0,0 +1,60 @@
{
Copyright (c) 2002 by the Free Pascal development team
Syscall implementation for linux m68k
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
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. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
****************************************************************************
}
function FpSysCall(sysnr:TSysParam):TSysResult; assembler; [public,alias:'FPC_SYSCALL0'];
asm
end;
function FpSysCall(sysnr,param1:TSysParam):TSysResult; assembler; [public,alias:'FPC_SYSCALL1'];
asm
end;
function FpSysCall(sysnr,param1,param2:TSysParam):TSysResult; assembler; [public,alias:'FPC_SYSCALL2'];
asm
end;
function FpSysCall(sysnr,param1,param2,param3:TSysParam):TSysResult; assembler; [public,alias:'FPC_SYSCALL3'];
asm
end;
function FpSysCall(sysnr,param1,param2,param3,param4:TSysParam):TSysResult; assembler; [public,alias:'FPC_SYSCALL4'];
asm
end;
function FpSysCall(sysnr,param1,param2,param3,param4,param5:TSysParam):TSysResult; assembler; [public,alias:'FPC_SYSCALL5'];
asm
end;
{$ifdef notsupported}
function FpSysCall(sysnr,param1,param2,param3,param4,param5,param6:TSysParam):TSysResult; assembler; [public,alias:'FPC_SYSCALL6'];
asm
end;
{$endif notsupported}

View File

@ -0,0 +1,37 @@
{
Copyright (c) 2002 by Marco van de Voort
Header for syscall in system unit for i386 *BSD.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
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. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
****************************************************************************
}
Type
TSysResult = longint;
TSysParam = Longint;
function Do_SysCall(sysnr:TSysParam):TSysResult; external name 'FPC_SYSCALL0';
function Do_SysCall(sysnr,param1:TSysParam):TSysResult; external name 'FPC_SYSCALL1';
function Do_SysCall(sysnr,param1,param2:TSysParam):TSysResult; external name 'FPC_SYSCALL2';
function Do_SysCall(sysnr,param1,param2,param3:TSysParam):TSysResult; external name 'FPC_SYSCALL3';
function Do_SysCall(sysnr,param1,param2,param3,param4:TSysParam):TSysResult; external name 'FPC_SYSCALL4';
function Do_SysCall(sysnr,param1,param2,param3,param4,param5:TSysParam):TSysResult; external name 'FPC_SYSCALL5';
{$ifdef notsupported}
function Do_SysCall(sysnr,param1,param2,param3,param4,param5,param6:TSysParam):TSysResult; external name 'FPC_SYSCALL6';
{$endif notsupported}

497
rtl/linux/m68k/sysnr.inc Normal file
View File

@ -0,0 +1,497 @@
{
This file is part of the Free Pascal run time library.
Copyright (c) 1999-2000 by Michael Van Canneyt,
member of the Free Pascal development team.
Syscall nrs for 2.4.18
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.
**********************************************************************}
{$warning FIX ME!!!!}
{
* This file contains the system call numbers.
}
Const
syscall_nr_exit = 1;
syscall_nr_fork = 2;
syscall_nr_read = 3;
syscall_nr_write = 4;
syscall_nr_open = 5;
syscall_nr_close = 6;
syscall_nr_waitpid = 7;
syscall_nr_creat = 8;
syscall_nr_link = 9;
syscall_nr_unlink = 10;
syscall_nr_execve = 11;
syscall_nr_chdir = 12;
syscall_nr_time = 13;
syscall_nr_mknod = 14;
syscall_nr_chmod = 15;
syscall_nr_lchown = 16;
syscall_nr_break = 17;
syscall_nr_oldstat = 18;
syscall_nr_lseek = 19;
syscall_nr_getpid = 20;
syscall_nr_mount = 21;
syscall_nr_umount = 22;
syscall_nr_setuid = 23;
syscall_nr_getuid = 24;
syscall_nr_stime = 25;
syscall_nr_ptrace = 26;
syscall_nr_alarm = 27;
syscall_nr_oldfstat = 28;
syscall_nr_pause = 29;
syscall_nr_utime = 30;
syscall_nr_stty = 31;
syscall_nr_gtty = 32;
syscall_nr_access = 33;
syscall_nr_nice = 34;
syscall_nr_ftime = 35;
syscall_nr_sync = 36;
syscall_nr_kill = 37;
syscall_nr_rename = 38;
syscall_nr_mkdir = 39;
syscall_nr_rmdir = 40;
syscall_nr_dup = 41;
syscall_nr_pipe = 42;
syscall_nr_times = 43;
syscall_nr_prof = 44;
syscall_nr_brk = 45;
syscall_nr_setgid = 46;
syscall_nr_getgid = 47;
syscall_nr_signal = 48;
syscall_nr_geteuid = 49;
syscall_nr_getegid = 50;
syscall_nr_acct = 51;
syscall_nr_umount2 = 52;
syscall_nr_lock = 53;
syscall_nr_ioctl = 54;
syscall_nr_fcntl = 55;
syscall_nr_mpx = 56;
syscall_nr_setpgid = 57;
syscall_nr_ulimit = 58;
syscall_nr_oldolduname = 59;
syscall_nr_umask = 60;
syscall_nr_chroot = 61;
syscall_nr_ustat = 62;
syscall_nr_dup2 = 63;
syscall_nr_getppid = 64;
syscall_nr_getpgrp = 65;
syscall_nr_setsid = 66;
syscall_nr_sigaction = 67;
syscall_nr_sgetmask = 68;
syscall_nr_ssetmask = 69;
syscall_nr_setreuid = 70;
syscall_nr_setregid = 71;
syscall_nr_sigsuspend = 72;
syscall_nr_sigpending = 73;
syscall_nr_sethostname = 74;
syscall_nr_setrlimit = 75;
syscall_nr_getrlimit = 76; { Back compatible 2Gig limited rlimit }
syscall_nr_getrusage = 77;
syscall_nr_gettimeofday = 78;
syscall_nr_settimeofday = 79;
syscall_nr_getgroups = 80;
syscall_nr_setgroups = 81;
syscall_nr_select = 82;
syscall_nr_symlink = 83;
syscall_nr_oldlstat = 84;
syscall_nr_readlink = 85;
syscall_nr_uselib = 86;
syscall_nr_swapon = 87;
syscall_nr_reboot = 88;
syscall_nr_readdir = 89;
syscall_nr_mmap = 90;
syscall_nr_munmap = 91;
syscall_nr_truncate = 92;
syscall_nr_ftruncate = 93;
syscall_nr_fchmod = 94;
syscall_nr_fchown = 95;
syscall_nr_getpriority = 96;
syscall_nr_setpriority = 97;
syscall_nr_profil = 98;
syscall_nr_statfs = 99;
syscall_nr_fstatfs = 100;
syscall_nr_ioperm = 101;
syscall_nr_socketcall = 102;
syscall_nr_syslog = 103;
syscall_nr_setitimer = 104;
syscall_nr_getitimer = 105;
syscall_nr_stat = 106;
syscall_nr_lstat = 107;
syscall_nr_fstat = 108;
syscall_nr_olduname = 109;
syscall_nr_iopl = 110;
syscall_nr_vhangup = 111;
syscall_nr_idle = 112;
syscall_nr_vm86old = 113;
syscall_nr_wait4 = 114;
syscall_nr_swapoff = 115;
syscall_nr_sysinfo = 116;
syscall_nr_ipc = 117;
syscall_nr_fsync = 118;
syscall_nr_sigreturn = 119;
syscall_nr_clone = 120;
syscall_nr_setdomainname = 121;
syscall_nr_uname = 122;
syscall_nr_modify_ldt = 123;
syscall_nr_adjtimex = 124;
syscall_nr_mprotect = 125;
syscall_nr_sigprocmask = 126;
syscall_nr_create_module = 127;
syscall_nr_init_module = 128;
syscall_nr_delete_module = 129;
syscall_nr_get_kernel_syms = 130;
syscall_nr_quotactl = 131;
syscall_nr_getpgid = 132;
syscall_nr_fchdir = 133;
syscall_nr_bdflush = 134;
syscall_nr_sysfs = 135;
syscall_nr_personality = 136;
syscall_nr_afs_syscall = 137; { Syscall for Andrew File System }
syscall_nr_setfsuid = 138;
syscall_nr_setfsgid = 139;
syscall_nr__llseek = 140;
syscall_nr_getdents = 141;
syscall_nr__newselect = 142;
syscall_nr_flock = 143;
syscall_nr_msync = 144;
syscall_nr_readv = 145;
syscall_nr_writev = 146;
syscall_nr_getsid = 147;
syscall_nr_fdatasync = 148;
syscall_nr__sysctl = 149;
syscall_nr_mlock = 150;
syscall_nr_munlock = 151;
syscall_nr_mlockall = 152;
syscall_nr_munlockall = 153;
syscall_nr_sched_setparam = 154;
syscall_nr_sched_getparam = 155;
syscall_nr_sched_setscheduler = 156;
syscall_nr_sched_getscheduler = 157;
syscall_nr_sched_yield = 158;
syscall_nr_sched_get_priority_max = 159;
syscall_nr_sched_get_priority_min = 160;
syscall_nr_sched_rr_get_interval = 161;
syscall_nr_nanosleep = 162;
syscall_nr_mremap = 163;
syscall_nr_setresuid = 164;
syscall_nr_getresuid = 165;
syscall_nr_vm86 = 166;
syscall_nr_query_module = 167;
syscall_nr_poll = 168;
syscall_nr_nfsservctl = 169;
syscall_nr_setresgid = 170;
syscall_nr_getresgid = 171;
syscall_nr_prctl = 172;
syscall_nr_rt_sigreturn = 173;
syscall_nr_rt_sigaction = 174;
syscall_nr_rt_sigprocmask = 175;
syscall_nr_rt_sigpending = 176;
syscall_nr_rt_sigtimedwait = 177;
syscall_nr_rt_sigqueueinfo = 178;
syscall_nr_rt_sigsuspend = 179;
syscall_nr_pread = 180;
syscall_nr_pwrite = 181;
syscall_nr_chown = 182;
syscall_nr_getcwd = 183;
syscall_nr_capget = 184;
syscall_nr_capset = 185;
syscall_nr_sigaltstack = 186;
syscall_nr_sendfile = 187;
syscall_nr_getpmsg = 188; { some people actually want streams }
syscall_nr_putpmsg = 189; { some people actually want streams }
syscall_nr_vfork = 190;
syscall_nr_ugetrlimit = 191; { SuS compliant getrlimit }
syscall_nr_mmap2 = 192;
syscall_nr_truncate64 = 193;
syscall_nr_ftruncate64 = 194;
syscall_nr_stat64 = 195;
syscall_nr_lstat64 = 196;
syscall_nr_fstat64 = 197;
syscall_nr_lchown32 = 198;
syscall_nr_getuid32 = 199;
syscall_nr_getgid32 = 200;
syscall_nr_geteuid32 = 201;
syscall_nr_getegid32 = 202;
syscall_nr_setreuid32 = 203;
syscall_nr_setregid32 = 204;
syscall_nr_getgroups32 = 205;
syscall_nr_setgroups32 = 206;
syscall_nr_fchown32 = 207;
syscall_nr_setresuid32 = 208;
syscall_nr_getresuid32 = 209;
syscall_nr_setresgid32 = 210;
syscall_nr_getresgid32 = 211;
syscall_nr_chown32 = 212;
syscall_nr_setuid32 = 213;
syscall_nr_setgid32 = 214;
syscall_nr_setfsuid32 = 215;
syscall_nr_setfsgid32 = 216;
syscall_nr_pivot_root = 217;
syscall_nr_mincore = 218;
syscall_nr_madvise = 219;
syscall_nr_madvise1 = 219; { delete when C lib stub is removed }
syscall_nr_getdents64 = 220;
syscall_nr_fcntl64 = 221;
syscall_nr_security = 223; { syscall for security modules }
syscall_nr_gettid = 224;
syscall_nr_readahead = 225;
syscall_nr_setxattr = 226;
syscall_nr_lsetxattr = 227;
syscall_nr_fsetxattr = 228;
syscall_nr_getxattr = 229;
syscall_nr_lgetxattr = 230;
syscall_nr_fgetxattr = 231;
syscall_nr_listxattr = 232;
syscall_nr_llistxattr = 233;
syscall_nr_flistxattr = 234;
syscall_nr_removexattr = 235;
syscall_nr_lremovexattr = 236;
syscall_nr_fremovexattr = 237;
syscall_nr_tkill = 238;
syscall_nr_sendfile64 = 239;
syscall_nr_futex = 240;
syscall_nr_sched_setaffinity = 241;
syscall_nr_sched_getaffinity = 242;
syscall_nr_set_thread_area = 243;
syscall_nr_get_thread_area = 244;
syscall_nr_io_setup = 245;
syscall_nr_io_destroy = 246;
syscall_nr_io_getevents = 247;
syscall_nr_io_submit = 248;
syscall_nr_io_cancel = 249;
syscall_nr_fadvise64 = 250;
syscall_nr_set_zone_reclaim = 251;
syscall_nr_exit_group = 252;
syscall_nr_lookup_dcookie = 253;
syscall_nr_epoll_create = 254;
syscall_nr_epoll_ctl = 255;
syscall_nr_epoll_wait = 256;
syscall_nr_remap_file_pages = 257;
syscall_nr_set_tid_address = 258;
syscall_nr_timer_create = 259;
syscall_nr_timer_settime = syscall_nr_timer_create+1;
syscall_nr_timer_gettime = syscall_nr_timer_create+2;
syscall_nr_timer_getoverrun = syscall_nr_timer_create+3;
syscall_nr_timer_delete = syscall_nr_timer_create+4;
syscall_nr_clock_settime = syscall_nr_timer_create+5;
syscall_nr_clock_gettime = syscall_nr_timer_create+6;
syscall_nr_clock_getres = syscall_nr_timer_create+7;
syscall_nr_clock_nanosleep = syscall_nr_timer_create+8;
syscall_nr_statfs64 = 268;
syscall_nr_fstatfs64 = 269;
syscall_nr_tgkill = 270;
syscall_nr_utimes = 271;
syscall_nr_fadvise64_64 = 272;
syscall_nr_vserver = 273;
syscall_nr_mbind = 274;
syscall_nr_get_mempolicy = 275;
syscall_nr_set_mempolicy = 276;
syscall_nr_mq_open = 277;
syscall_nr_mq_unlink = syscall_nr_mq_open+1;
syscall_nr_mq_timedsend = syscall_nr_mq_open+2;
syscall_nr_mq_timedreceive = syscall_nr_mq_open+3;
syscall_nr_mq_notify = syscall_nr_mq_open+4;
syscall_nr_mq_getsetattr = syscall_nr_mq_open+5;
syscall_nr_sys_kexec_load = 283;
syscall_nr_waitid = 284;
{ syscall_sys_setaltroot 285 }
syscall_nr_add_key = 286;
syscall_nr_request_key = 287;
syscall_nr_keyctl = 288;
syscall_nr_ioprio_set = 289;
syscall_nr_ioprio_get = 290;
syscall_nr_inotify_init = 291;
syscall_nr_inotify_add_watch = 292;
syscall_nr_inotify_rm_watch = 293;

View File

@ -314,3 +314,31 @@ function abs(l : longint) : longint;
end;
function InterLockedDecrement (var Target: longint) : longint;
begin
{$warning FIX ME}
end;
function InterLockedIncrement (var Target: longint) : longint;
begin
{$warning FIX ME}
end;
function InterLockedExchange (var Target: longint;Source : longint) : longint;
begin
{$warning FIX ME}
end;
function InterLockedExchangeAdd (var Target: longint;Source : longint) : longint;
begin
{$warning FIX ME}
end;
function InterlockedCompareExchange(var Target: longint; NewValue: longint; Comperand: longint): longint;
begin
{$warning FIX ME}
end;

18
rtl/m68k/strings.inc Normal file
View File

@ -0,0 +1,18 @@
{
This file is part of the Free Pascal run time library.
Copyright (c) 2000 by Jonas Maebe, member of the
Free Pascal development team
Processor dependent part of strings.pp, that can be shared with
sysutils unit.
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.
**********************************************************************}

18
rtl/m68k/stringss.inc Normal file
View File

@ -0,0 +1,18 @@
{
This file is part of the Free Pascal run time library.
Copyright (c) 1999-2000 by Jonas Maebe, member of the
Free Pascal development team
Processor dependent part of strings.pp, not shared with
sysutils unit.
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.
**********************************************************************}