From bfb2c916dc0b1c64b55ce0140f6a9c7159a6b0f2 Mon Sep 17 00:00:00 2001 From: tom_at_work <tom_at_work@idefix.freepascal.org> Date: Mon, 10 Oct 2005 23:45:57 +0000 Subject: [PATCH] * fixed problem with too large offsets in conditional jumps (see also rev 1161 for the PowerPC code) * updated sysnr.inc for PowerPC64 from 2.6.11 kernel sources * fixed SigactionRec sa_flags field sizes, which improves signal handling for PowerPC64 platform git-svn-id: trunk@1352 - --- compiler/powerpc64/aasmcpu.pas | 88 +++++- compiler/psub.pas | 6 +- rtl/linux/powerpc64/sighnd.inc | 7 + rtl/linux/powerpc64/sysnr.inc | 530 +++++++++++++++++---------------- rtl/linux/signal.inc | 4 +- 5 files changed, 373 insertions(+), 262 deletions(-) diff --git a/compiler/powerpc64/aasmcpu.pas b/compiler/powerpc64/aasmcpu.pas index b45ecbc10f..c6afb756a6 100644 --- a/compiler/powerpc64/aasmcpu.pas +++ b/compiler/powerpc64/aasmcpu.pas @@ -106,9 +106,11 @@ procedure DoneAsm; function spilling_create_load(const ref: treference; r: tregister): tai; function spilling_create_store(r: tregister; const ref: treference): tai; +procedure fixup_jmps(list: taasmoutput); + implementation -uses cutils; +uses cutils, cclasses; {***************************************************************************** taicpu Constructors @@ -405,6 +407,90 @@ procedure DoneAsm; begin end; +procedure fixup_jmps(list: taasmoutput); +var + p: tai; + newjmp: taicpu; + labelpositions: tlist; + instrpos: ptrint; + l: tasmlabel; + inserted_something: boolean; +begin + // if certainly not enough instructions to cause an overflow, don't bother + if (list.count <= (high(smallint) div 4)) then + exit; + labelpositions := tlist.create; + p := tai(list.first); + instrpos := 1; + // record label positions + while assigned(p) do + begin + if p.typ = ait_label then + begin + if (tai_label(p).l.labelnr > labelpositions.count) then + labelpositions.count := tai_label(p).l.labelnr * 2; + labelpositions[tai_label(p).l.labelnr] := pointer(instrpos); + end; + if p.typ = ait_instruction then + inc(instrpos); + p := tai(p.next); + end; + + // check and fix distances + repeat + inserted_something := false; + p := tai(list.first); + instrpos := 1; + while assigned(p) do + begin + case p.typ of + ait_label: + // update labelposition in case it changed due to insertion + // of jumps + begin + // can happen because of newly inserted labels + if (tai_label(p).l.labelnr > labelpositions.count) then + labelpositions.count := tai_label(p).l.labelnr * 2; + labelpositions[tai_label(p).l.labelnr] := pointer(instrpos); + end; + ait_instruction: + begin + inc(instrpos); + case taicpu(p).opcode of + A_BC: + if (taicpu(p).oper[0]^.typ = top_ref) and + assigned(taicpu(p).oper[0]^.ref^.symbol) and + (taicpu(p).oper[0]^.ref^.symbol is tasmlabel) and + (labelpositions[tasmlabel(taicpu(p).oper[0]^.ref^.symbol).labelnr] <> NIL) and + (ptruint(abs(ptrint(labelpositions[tasmlabel(taicpu(p).oper[0]^.ref^.symbol).labelnr]-instrpos)) - (low(smallint) div 4)) > ptruint((high(smallint) - low(smallint)) div 4)) then + begin + // add a new label after this jump + objectlibrary.getjumplabel(l); + list.insertafter(tai_label.create(l),p); + // add a new unconditional jump between this jump and the label + newjmp := taicpu.op_sym(A_B,taicpu(p).oper[0]^.ref^.symbol); + newjmp.is_jmp := true; + newjmp.fileinfo := taicpu(p).fileinfo; + list.insertafter(newjmp,p); + inc(instrpos); + // change the conditional jump to point to the newly inserted label + tasmlabel(taicpu(p).oper[0]^.ref^.symbol).decrefs; + taicpu(p).oper[0]^.ref^.symbol := l; + l.increfs; + // and invert its condition code + taicpu(p).condition := inverse_cond(taicpu(p).condition); + // we inserted an instruction, so will have to check everything again + inserted_something := true; + end; + end; + end; + end; + p := tai(p.next); + end; + until not inserted_something; + labelpositions.free; +end; + begin cai_align := tai_align; cai_cpu := taicpu; diff --git a/compiler/psub.pas b/compiler/psub.pas index a69780d5f8..e82db30242 100644 --- a/compiler/psub.pas +++ b/compiler/psub.pas @@ -97,7 +97,7 @@ implementation { codegen } tgobj,cgobj,dbgbase, ncgutil,regvars -{$if defined(arm) or defined(powerpc)} +{$if defined(arm) or defined(powerpc) or defined(powerpc64)} ,aasmcpu {$endif arm} {$ifndef NOOPT} @@ -852,7 +852,9 @@ implementation {$ifdef POWERPC} fixup_jmps(aktproccode); {$endif POWERPC} - +{$ifdef POWERPC64} + fixup_jmps(aktproccode); +{$endif POWERPC64} { insert line debuginfo } if (cs_debuginfo in aktmoduleswitches) or (cs_use_lineinfo in aktglobalswitches) then diff --git a/rtl/linux/powerpc64/sighnd.inc b/rtl/linux/powerpc64/sighnd.inc index a680a2f009..0f70825adf 100644 --- a/rtl/linux/powerpc64/sighnd.inc +++ b/rtl/linux/powerpc64/sighnd.inc @@ -22,7 +22,9 @@ var { fpustate: longint; } begin res:=0; + {$IFDEF EXCDEBUG} writeln('signaltorunerror'); + {$ENDIF} { exception flags are turned off by kernel } fpc_enable_ppc_fpu_exceptions; case sig of @@ -47,6 +49,11 @@ begin SIGSEGV : res:=216; end; + {$IFDEF EXCDEBUG} + writeln('sig = ', sig); + writeln('siginfo = ', hexstr(ptrint(siginfo), sizeof(siginfo)*2)); + writeln('sigcontext = ', hexstr(ptrint(sigcontext), sizeof(sigcontext)*2)); + {$ENDIF} { give runtime error at the position where the signal was raised } if res<>0 then HandleErrorAddrFrame(res,pointer(SigContext^.pt_regs^.nip),pointer(SigContext^.pt_regs^.gpr[1])); diff --git a/rtl/linux/powerpc64/sysnr.inc b/rtl/linux/powerpc64/sysnr.inc index 66ce72bd78..285c15836c 100644 --- a/rtl/linux/powerpc64/sysnr.inc +++ b/rtl/linux/powerpc64/sysnr.inc @@ -1,260 +1,276 @@ -{ - 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. - - **********************************************************************} - - -{ -* This file contains the system call numbers. +{ + Automatically converted by H2Pas 1.0.0 from + /usr/include/asm-ppc64/unistd.h + The following command line parameters were used: + unistd.h } -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; +{* 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; + 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_vm86 = 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 for Andrew File System } + syscall_nr_afs_syscall = 137; + 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_query_module = 166; + syscall_nr_poll = 167; + syscall_nr_nfsservctl = 168; + syscall_nr_setresgid = 169; + syscall_nr_getresgid = 170; + syscall_nr_prctl = 171; + syscall_nr_rt_sigreturn = 172; + syscall_nr_rt_sigaction = 173; + syscall_nr_rt_sigprocmask = 174; + syscall_nr_rt_sigpending = 175; + syscall_nr_rt_sigtimedwait = 176; + syscall_nr_rt_sigqueueinfo = 177; + syscall_nr_rt_sigsuspend = 178; + syscall_nr_pread = 179; + syscall_nr_pwrite = 180; + syscall_nr_chown = 181; + syscall_nr_getcwd = 182; + syscall_nr_capget = 183; + syscall_nr_capset = 184; + syscall_nr_sigaltstack = 185; + syscall_nr_sendfile = 186; + { some people actually want streams } + syscall_nr_getpmsg = 187; + { some people actually want streams } + syscall_nr_putpmsg = 188; + syscall_nr_vfork = 189; + { SuS compliant getrlimit } + syscall_nr_ugetrlimit = 190; + 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_pciconfig_read = 198; + syscall_nr_pciconfig_write = 199; + syscall_nr_pciconfig_iobase = 200; + syscall_nr_multiplexer = 201; + syscall_nr_getdents64 = 202; + syscall_nr_pivot_root = 203; + syscall_nr_fcntl64 = 204; + syscall_nr_madvise = 205; + syscall_nr_mincore = 206; + syscall_nr_gettid = 207; + syscall_nr_tkill = 208; + syscall_nr_setxattr = 209; + syscall_nr_lsetxattr = 210; + syscall_nr_fsetxattr = 211; + syscall_nr_getxattr = 212; + syscall_nr_lgetxattr = 213; + syscall_nr_fgetxattr = 214; + syscall_nr_listxattr = 215; + syscall_nr_llistxattr = 216; + syscall_nr_flistxattr = 217; + syscall_nr_removexattr = 218; + syscall_nr_lremovexattr = 219; + syscall_nr_fremovexattr = 220; + syscall_nr_futex = 221; + syscall_nr_sched_setaffinity = 222; + syscall_nr_sched_getaffinity = 223; + { 224 currently unused } + syscall_nr_tuxcall = 225; + syscall_nr_sendfile64 = 226; + syscall_nr_io_setup = 227; + syscall_nr_io_destroy = 228; + syscall_nr_io_getevents = 229; + syscall_nr_io_submit = 230; + syscall_nr_io_cancel = 231; + syscall_nr_set_tid_address = 232; + syscall_nr_fadvise64 = 233; + syscall_nr_exit_group = 234; + syscall_nr_lookup_dcookie = 235; + syscall_nr_epoll_create = 236; + syscall_nr_epoll_ctl = 237; + syscall_nr_epoll_wait = 238; + syscall_nr_remap_file_pages = 239; + syscall_nr_timer_create = 240; + syscall_nr_timer_settime = 241; + syscall_nr_timer_gettime = 242; + syscall_nr_timer_getoverrun = 243; + syscall_nr_timer_delete = 244; + syscall_nr_clock_settime = 245; + syscall_nr_clock_gettime = 246; + syscall_nr_clock_getres = 247; + syscall_nr_clock_nanosleep = 248; + syscall_nr_tgkill = 250; + syscall_nr_utimes = 251; + syscall_nr_rtas = 255; + syscall_nr_mq_open = 262; + syscall_nr_mq_unlink = 263; + syscall_nr_mq_timedsend = 264; + syscall_nr_mq_timedreceive = 265; + syscall_nr_mq_notify = 266; + syscall_nr_mq_getsetattr = 267; + syscall_nr_kexec_load = 268; + syscall_nr_add_key = 269; + syscall_nr_request_key = 270; + syscall_nr_keyctl = 271; + syscall_nr_waitid = 272; diff --git a/rtl/linux/signal.inc b/rtl/linux/signal.inc index a0e3d649c9..86daed6f7b 100644 --- a/rtl/linux/signal.inc +++ b/rtl/linux/signal.inc @@ -193,12 +193,12 @@ type SigActionRec = packed record // this is temporary for the migration sa_handler : SigActionHandler; {$ifdef NEWSIGNAL} - Sa_Flags : cuint; + Sa_Flags : culong; Sa_restorer : SignalRestorer; { Obsolete - Don't use } Sa_Mask : SigSet; {$else NEWSIGNAL} Sa_Mask : SigSet; - Sa_Flags : Longint; + Sa_Flags : cuLong; Sa_restorer : SignalRestorer; { Obsolete - Don't use } {$endif NEWSIGNAL} end;