From 79dcd7aa9cdb1784a4e799fbb4fc37374d6424f1 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 12 Jan 2006 22:34:50 +0000 Subject: [PATCH] 2006-01-12 Roland McGrath * signal.c [LINUX] (sys_restart_syscall): New function. * linux/syscall.h: Declare sys_restart_syscall. * linux/sparc/syscall.h: Likewise. * linux/syscallent.h: Call 0 is restart_syscall. * linux/arm/syscallent.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/m68k/syscallent.h: Likewise. * linux/hppa/syscallent.h: Likewise. * linux/sh/syscallent.h: Likewise. * linux/sparc/syscallent.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/alpha/syscallent.h: Use sys_restart_syscall. * linux/ia64/syscallent.h: Likewise. * linux/mips/syscallent.h: Likewise. * linux/x86_64/syscallent.h: Likewise. --- linux/alpha/syscallent.h | 2 +- linux/arm/syscallent.h | 2 +- linux/hppa/syscallent.h | 2 +- linux/ia64/syscallent.h | 2 +- linux/m68k/syscallent.h | 2 +- linux/mips/syscallent.h | 2 +- linux/powerpc/syscallent.h | 2 +- linux/sh/syscallent.h | 2 +- linux/sparc/syscall.h | 1 + linux/sparc/syscallent.h | 2 +- linux/sparc64/syscallent.h | 2 +- linux/syscall.h | 1 + linux/syscallent.h | 2 +- linux/x86_64/syscallent.h | 2 +- signal.c | 9 +++++++++ 15 files changed, 23 insertions(+), 12 deletions(-) diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h index 0f0556c7..4eb81794 100644 --- a/linux/alpha/syscallent.h +++ b/linux/alpha/syscallent.h @@ -440,7 +440,7 @@ { 4, TD, sys_epoll_wait, "epoll_wait" }, /* 409 */ { 5, 0, sys_remap_file_pages, "remap_file_pages" }, /* 410 */ { 1, 0, printargs, "set_tid_address" }, /* 411 */ - { 0, 0, printargs, "restart_syscall" }, /* 412 */ + { 0, 0, sys_restart_syscall, "restart_syscall" }, /* 412 */ { 4, 0, printargs, "fadvise" }, /* 413 */ { 3, 0, sys_timer_create, "timer_create" }, /* 414 */ { 4, 0, sys_timer_settime, "timer_settime" }, /* 415 */ diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h index d19f7989..569c7bfc 100644 --- a/linux/arm/syscallent.h +++ b/linux/arm/syscallent.h @@ -28,7 +28,7 @@ * $Id$ */ - { 0, 0, sys_setup, "setup" }, /* 0 */ + { 0, 0, sys_restart_syscall, "restart_syscall"}, /* 0 */ { 1, TP, sys_exit, "_exit" }, /* 1 */ { 0, TP, sys_fork, "fork" }, /* 2 */ { 3, 0, sys_read, "read" }, /* 3 */ diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h index f897bebe..f4c9dd67 100644 --- a/linux/hppa/syscallent.h +++ b/linux/hppa/syscallent.h @@ -5,7 +5,7 @@ * */ - { 5, 0, printargs, "SYS_0" }, /* 0 */ + { 0, 0, sys_restart_syscall, "restart_syscall" }, /* 0 */ { 1, TP, sys_exit, "exit" }, /* 1 */ { 0, TP, sys_fork, "fork" }, /* 2 */ { 3, TD, sys_read, "read" }, /* 3 */ diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h index cc43a38b..006e64df 100644 --- a/linux/ia64/syscallent.h +++ b/linux/ia64/syscallent.h @@ -1149,7 +1149,7 @@ { 1, 0, sys_epoll_create, "epoll_create" }, /* 1243 */ { 4, TD, sys_epoll_ctl, "epoll_ctl" }, /* 1244 */ { 4, TD, sys_epoll_wait, "epoll_wait" }, /* 1245 */ - { 0, 0, printargs, "restart_syscall"}, /* 1246 */ + { 0, 0, sys_restart_syscall, "restart_syscall"}, /* 1246 */ { 5, TI, sys_semtimedop, "semtimedop" }, /* 1247 */ { 3, 0, sys_timer_create, "timer_create" }, /* 1248 */ { 4, 0, sys_timer_settime, "timer_settime" }, /* 1249 */ diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h index c16b0f0a..b89077b9 100644 --- a/linux/m68k/syscallent.h +++ b/linux/m68k/syscallent.h @@ -28,7 +28,7 @@ * $Id$ */ - { 0, 0, sys_setup, "setup" }, /* 0 */ + { 0, 0, sys_restart_syscall, "restart_syscall" }, /* 0 */ { 1, TP, sys_exit, "_exit", SYS_exit }, /* 1 */ { 0, TP, sys_fork, "fork", SYS_fork }, /* 2 */ { 3, 0, sys_read, "read", SYS_read }, /* 3 */ diff --git a/linux/mips/syscallent.h b/linux/mips/syscallent.h index faabfa44..bd1dc133 100644 --- a/linux/mips/syscallent.h +++ b/linux/mips/syscallent.h @@ -4251,7 +4251,7 @@ { 3, TD, sys_epoll_wait, "epoll_wait" }, /* 4250 */ { 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 4251 */ { 1, 0, printargs, "set_tid_address"}, /* 4252 */ - { 0, 0, printargs, "restart_syscall"}, /* 4253 */ + { 0, 0, sys_restart_syscall, "restart_syscall"}, /* 4253 */ { 7, 0, sys_fadvise64_64, "fadvise64_64" }, /* 4254 */ { 3, TF, sys_statfs64, "statfs64" }, /* 4255 */ { 2, TD, sys_fstatfs64, "fstatfs64" }, /* 4256 */ diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h index 4a31aff0..e57e4e04 100644 --- a/linux/powerpc/syscallent.h +++ b/linux/powerpc/syscallent.h @@ -28,7 +28,7 @@ * $Id$ */ - { 5, 0, printargs, "SYS_0" }, /* 0 */ + { 0, 0, sys_restart_syscall, "restart_syscall" }, /* 0 */ { 1, TP, sys_exit, "exit" }, /* 1 */ { 0, TP, sys_fork, "fork" }, /* 2 */ { 3, TD, sys_read, "read" }, /* 3 */ diff --git a/linux/sh/syscallent.h b/linux/sh/syscallent.h index a5acd4ed..b820e4aa 100644 --- a/linux/sh/syscallent.h +++ b/linux/sh/syscallent.h @@ -30,7 +30,7 @@ * $Id$ */ - { 0, 0, sys_setup, "setup" }, /* 0 */ + { 0, 0, sys_restart_syscall, "restart_syscall"}, /* 0 */ { 1, TP, sys_exit, "_exit" }, /* 1 */ { 0, TP, sys_fork, "fork" }, /* 2 */ { 3, TD, sys_read, "read" }, /* 3 */ diff --git a/linux/sparc/syscall.h b/linux/sparc/syscall.h index b4eb5d26..a21f9ff8 100644 --- a/linux/sparc/syscall.h +++ b/linux/sparc/syscall.h @@ -29,6 +29,7 @@ */ #include "dummy.h" +int sys_restart_syscall(); int sys_nosys(); int sys_nullsys(); int sys_errsys(); diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h index 84b3d952..712cca9b 100644 --- a/linux/sparc/syscallent.h +++ b/linux/sparc/syscallent.h @@ -1,4 +1,4 @@ - { 1, 0, sys_setup, "setup" }, /* 0 */ + { 01, 0, sys_restart_syscall,"restart_syscall" },/* 0 */ { 1, TP, sys_exit, "exit" }, /* 1 */ { 0, TP, sys_fork, "fork" }, /* 2 */ { 3, TD, sys_read, "read" }, /* 3 */ diff --git a/linux/sparc64/syscallent.h b/linux/sparc64/syscallent.h index 84b3d952..5b14c0c2 100644 --- a/linux/sparc64/syscallent.h +++ b/linux/sparc64/syscallent.h @@ -1,4 +1,4 @@ - { 1, 0, sys_setup, "setup" }, /* 0 */ + { 0, 0, sys_restart_syscall, "restart_syscall" },/* 0 */ { 1, TP, sys_exit, "exit" }, /* 1 */ { 0, TP, sys_fork, "fork" }, /* 2 */ { 3, TD, sys_read, "read" }, /* 3 */ diff --git a/linux/syscall.h b/linux/syscall.h index 22977e60..24331fed 100644 --- a/linux/syscall.h +++ b/linux/syscall.h @@ -32,6 +32,7 @@ /* primary syscalls */ +int sys_restart_syscall(); int sys_setup(), sys_exit(), sys_fork(), sys_read(), sys_write(); int sys_open(), sys_close(), sys_waitpid(), sys_creat(), sys_link(); int sys_unlink(), sys_execve(), sys_chdir(), sys_time(), sys_mknod(); diff --git a/linux/syscallent.h b/linux/syscallent.h index 8aa750b8..b982f283 100644 --- a/linux/syscallent.h +++ b/linux/syscallent.h @@ -28,7 +28,7 @@ * $Id$ */ - { 0, 0, sys_setup, "setup" }, /* 0 */ + { 0, 0, sys_restart_syscall, "restart_syscall" }, /* 0 */ { 1, TP, sys_exit, "_exit", SYS_exit }, /* 1 */ { 0, TP, sys_fork, "fork", SYS_fork }, /* 2 */ { 3, TD, sys_read, "read", SYS_read }, /* 3 */ diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h index 41c17939..1172c8af 100644 --- a/linux/x86_64/syscallent.h +++ b/linux/x86_64/syscallent.h @@ -217,7 +217,7 @@ { 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 216 */ { 4, TD, sys_getdents64, "getdents64" }, /* 217 */ { 1, 0, printargs, "set_tid_address"}, /* 218 */ - { 5, 0, printargs, "restart_syscall"}, /* 219 */ + { 0, 0, sys_restart_syscall, "restart_syscall"}, /* 219 */ { 5, TI, sys_semtimedop, "semtimedop" }, /* 220 */ { 4, 0, sys_fadvise64_64, "fadvise64" }, /* 221 */ { 3, 0, sys_timer_create, "timer_create" }, /* 222 */ diff --git a/signal.c b/signal.c index 2df70a0f..520562e1 100644 --- a/signal.c +++ b/signal.c @@ -1950,4 +1950,13 @@ int sys_rt_sigtimedwait(tcp) return 0; }; +int +sys_restart_syscall(tcp) +struct tcb *tcp; +{ + if (entering(tcp)) + tprintf("<... resuming interrupted call ...>"); + return 0; +} + #endif /* LINUX */ -- 2.40.0