Skip to content

Commit

Permalink
2006-10-13 Ulrich Drepper <[email protected]>
Browse files Browse the repository at this point in the history
	    Bernhard Kaindl <[email protected]>
	    Dmitry V. Levin  <[email protected]>
	    Michael Holzheu <[email protected]>

	Add hooks for new syscalls.  Add decoders for *at, inotify*,
	pselect6, ppoll and unshare syscalls.

	* defs.h: Declare print_sigset.
	* desc.c (sys_pselect6): New function.
	* file.c (decode_open, decode_access, decode_mkdir,
	decode_readlink, decode_chmod, decode_utimes, decode_mknod):
	New functions.
	(sys_open, sys_access, sys_mkdir, sys_readlink, sys_chmod,
	sys_utimes, sys_mknod): Use them.
	[LINUX] (fstatatflags, unlinkatflags, inotify_modes): New
	variables.
	[LINUX] (print_dirfd, sys_openat, sys_faccessat,
	sys_newfstatat, sys_mkdirat, sys_linkat, sys_unlinkat,
	sys_symlinkat, sys_readlinkat, sys_renameat, sys_fchownat,
	sys_fchmodat, sys_futimesat, sys_mknodat, sys_inotify_add_watch,
	sys_inotify_rm_watch): New functions.
	* process.c [LINUX] (sys_unshare): New function.
	* signal.c (print_sigset): New function.
	(sys_sigprocmask): Use it.
	* stream.c (decode_poll): New function.
	(sys_poll): Use it.
	[LINUX] (sys_ppoll): New function.
	* linux/syscall.h: Delcare new syscall handlers.
	* linux/syscallent.h: Hook up new syscalls.
	* linux/alpha/syscallent.h: Likewise.
	* linux/hppa/syscallent.h: Likewise.
	* linux/ia64/syscallent.h: Likewise.
	* linux/mips/syscallent.h: Likewise.
	* linux/powerpc/syscallent.h: Likewise.
	* linux/s390/syscallent.h: Likewise.
	* linux/s390x/syscallent.h: Likewise.
	* linux/sparc/syscallent.h: Likewise.
	* linux/sparc64/syscallent.h: Likewise.
	* linux/x86_64/syscallent.h: Likewise.
	Fixes RH#178633.
  • Loading branch information
ldv-alt committed Oct 13, 2006
1 parent 9633942 commit 95ebf5a
Show file tree
Hide file tree
Showing 19 changed files with 773 additions and 437 deletions.
42 changes: 42 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,45 @@
2006-10-13 Ulrich Drepper <[email protected]>
Bernhard Kaindl <[email protected]>
Dmitry V. Levin <[email protected]>
Michael Holzheu <[email protected]>

Add hooks for new syscalls. Add decoders for *at, inotify*,
pselect6, ppoll and unshare syscalls.

* defs.h: Declare print_sigset.
* desc.c (sys_pselect6): New function.
* file.c (decode_open, decode_access, decode_mkdir,
decode_readlink, decode_chmod, decode_utimes, decode_mknod):
New functions.
(sys_open, sys_access, sys_mkdir, sys_readlink, sys_chmod,
sys_utimes, sys_mknod): Use them.
[LINUX] (fstatatflags, unlinkatflags, inotify_modes): New
variables.
[LINUX] (print_dirfd, sys_openat, sys_faccessat,
sys_newfstatat, sys_mkdirat, sys_linkat, sys_unlinkat,
sys_symlinkat, sys_readlinkat, sys_renameat, sys_fchownat,
sys_fchmodat, sys_futimesat, sys_mknodat, sys_inotify_add_watch,
sys_inotify_rm_watch): New functions.
* process.c [LINUX] (sys_unshare): New function.
* signal.c (print_sigset): New function.
(sys_sigprocmask): Use it.
* stream.c (decode_poll): New function.
(sys_poll): Use it.
[LINUX] (sys_ppoll): New function.
* linux/syscall.h: Delcare new syscall handlers.
* linux/syscallent.h: Hook up new syscalls.
* linux/alpha/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/sparc64/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
Fixes RH#178633.

2006-10-06 Dmitry V. Levin <[email protected]>

* strace.c [!USE_PROCFS] (trace): Presence of PT_GETSIGINFO
Expand Down
1 change: 1 addition & 0 deletions defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -463,6 +463,7 @@ extern int setbpt P((struct tcb *));
extern int sigishandled P((struct tcb *, int));
extern void printcall P((struct tcb *));
extern const char *signame P((int));
extern void print_sigset P((struct tcb *, long, int));
extern void printsignal P((int));
extern void printleader P((struct tcb *));
extern void printtrailer P((struct tcb *));
Expand Down
28 changes: 26 additions & 2 deletions desc.c
Original file line number Diff line number Diff line change
Expand Up @@ -871,6 +871,30 @@ int
sys_select(tcp)
struct tcb *tcp;
{
long *args = tcp->u_arg;
return decode_select(tcp, args, 0);
return decode_select(tcp, tcp->u_arg, 0);
}

#ifdef LINUX
int
sys_pselect6(struct tcb *tcp)
{
int rc = decode_select(tcp, tcp->u_arg, 0);
if (exiting(tcp)) {
struct {
void *ss;
unsigned long len;
} data;
if (umove(tcp, tcp->u_arg[5], &data) < 0)
tprintf(", %#lx", tcp->u_arg[5]);
else {
tprintf(", {");
if (data.len < sizeof(sigset_t))
tprintf("%#lx", (long)data.ss);
else
print_sigset(tcp, (long)data.ss, 0);
tprintf(", %lu}", data.len);
}
}
return rc;
}
#endif
Loading

0 comments on commit 95ebf5a

Please sign in to comment.