You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

249 lines
5.8 KiB

Index: file.c
--- file.c.orig 2009-10-21 15:44:04 +0200
+++ file.c 2009-10-22 08:55:42 +0200
@@ -1642,7 +1642,11 @@
statbuf.f_bsize, statbuf.f_blocks, statbuf.f_bfree);
tprintf("f_bavail=%u, f_files=%u, f_ffree=%u, f_fsid={%d, %d}, f_namelen=%u",
statbuf.f_bavail,statbuf.f_files, statbuf.f_ffree,
+#ifdef LINUX
statbuf.f_fsid.__val[0], statbuf.f_fsid.__val[1],
+#else
+ statbuf.f_fsid.val[0], statbuf.f_fsid.val[1],
+#endif
statbuf.f_namelen);
#else /* !ALPHA */
tprintf("{f_type=%s, f_bsize=%lu, f_blocks=%lu, f_bfree=%lu, ",
@@ -1654,7 +1658,11 @@
(unsigned long)statbuf.f_bavail,
(unsigned long)statbuf.f_files,
(unsigned long)statbuf.f_ffree,
+#ifdef LINUX
statbuf.f_fsid.__val[0], statbuf.f_fsid.__val[1]);
+#else
+ statbuf.f_fsid.val[0], statbuf.f_fsid.val[1]);
+#endif
#ifdef LINUX
tprintf(", f_namelen=%lu", (unsigned long)statbuf.f_namelen);
#endif /* LINUX */
@@ -2799,6 +2807,7 @@
}
+#ifdef LINUX
static const struct xlat advise[] = {
{ POSIX_FADV_NORMAL, "POSIX_FADV_NORMAL" },
{ POSIX_FADV_RANDOM, "POSIX_FADV_RANDOM" },
@@ -2808,6 +2817,7 @@
{ POSIX_FADV_NOREUSE, "POSIX_FADV_NOREUSE" },
{ 0, NULL }
};
+#endif
#ifdef LINUX
@@ -2830,6 +2840,7 @@
#endif
+#ifdef LINUX
int
sys_fadvise64_64(struct tcb *tcp)
{
@@ -2854,6 +2865,7 @@
}
return 0;
}
+#endif
#ifdef LINUX
static const struct xlat inotify_modes[] = {
Index: freebsd/i386/syscall.h
--- freebsd/i386/syscall.h.orig 2001-03-08 18:27:20 +0100
+++ freebsd/i386/syscall.h 2009-10-22 08:55:42 +0200
@@ -9,6 +9,7 @@
int sys_write();
int sys_open();
int sys_close();
+int sys_waitpid();
int sys_wait4();
int sys_creat();
int sys_link();
Index: net.c
--- net.c.orig 2009-09-01 21:53:29 +0200
+++ net.c 2009-10-22 08:55:42 +0200
@@ -43,12 +43,8 @@
#endif
#include <netinet/in.h>
-#ifdef HAVE_NETINET_TCP_H
#include <netinet/tcp.h>
-#endif
-#ifdef HAVE_NETINET_UDP_H
#include <netinet/udp.h>
-#endif
#include <arpa/inet.h>
#include <net/if.h>
#if defined(LINUX)
@@ -1103,6 +1099,9 @@
#ifdef SCM_RIGHTS
{ SCM_RIGHTS, "SCM_RIGHTS" },
#endif
+#ifdef SCM_CREDS
+ { SCM_CREDS, "SCM_CREDS" },
+#endif
#ifdef SCM_CREDENTIALS
{ SCM_CREDENTIALS, "SCM_CREDENTIALS" },
#endif
@@ -1146,6 +1145,13 @@
free(cmsg);
return;
}
+#ifdef SCM_CREDS
+ if (cmsg->cmsg_type == SCM_CREDS
+ && CMSG_LEN(sizeof(struct cmsgcred)) <= cmsg_len) {
+ struct cmsgcred *uc = (struct cmsgcred *) CMSG_DATA (cmsg);
+ tprintf("{pid=%ld, uid=%ld, gid=%ld}}",
+ (long)uc->cmcred_pid, (long)uc->cmcred_uid, (long)uc->cmcred_gid);
+#else
if (cmsg->cmsg_type == SCM_CREDENTIALS
&& CMSG_LEN(sizeof(struct ucred)) <= cmsg_len) {
struct ucred *uc = (struct ucred *) CMSG_DATA (cmsg);
@@ -1153,6 +1159,7 @@
tprintf("{pid=%ld, uid=%ld, gid=%ld}}",
(long)uc->pid, (long)uc->uid, (long)uc->gid);
free(cmsg);
+#endif
return;
}
}
@@ -1178,17 +1185,12 @@
tprint_iov(tcp, (unsigned long)msg.msg_iovlen,
(unsigned long)msg.msg_iov);
-#ifdef HAVE_STRUCT_MSGHDR_MSG_CONTROL
tprintf(", msg_controllen=%lu", (unsigned long)msg.msg_controllen);
if (msg.msg_controllen)
printcmsghdr(tcp, (unsigned long) msg.msg_control,
msg.msg_controllen);
tprintf(", msg_flags=");
printflags(msg_flags, msg.msg_flags, "MSG_???");
-#else /* !HAVE_STRUCT_MSGHDR_MSG_CONTROL */
- tprintf("msg_accrights=%#lx, msg_accrightslen=%u",
- (unsigned long) msg.msg_accrights, msg.msg_accrightslen);
-#endif /* !HAVE_STRUCT_MSGHDR_MSG_CONTROL */
tprintf("}");
}
Index: process.c
--- process.c.orig 2009-10-12 21:54:21 +0200
+++ process.c 2009-10-22 08:55:42 +0200
@@ -3280,7 +3280,9 @@
int
sys_ptrace(struct tcb *tcp)
{
+#ifndef FREEBSD
const struct xlat *x;
+#endif
long addr;
if (entering(tcp)) {
Index: sock.c
--- sock.c.orig 2009-01-13 19:30:55 +0100
+++ sock.c 2009-10-22 08:55:42 +0200
@@ -37,6 +37,7 @@
#include <sys/sockio.h>
#endif
#include <arpa/inet.h>
+#include <netinet/in.h>
#if defined (ALPHA) || defined(SH) || defined(SH64)
#ifdef HAVE_SYS_IOCTL_H
@@ -53,20 +54,31 @@
{ IFF_DEBUG, "IFF_DEBUG" },
{ IFF_LOOPBACK, "IFF_LOOPBACK" },
{ IFF_POINTOPOINT, "IFF_POINTOPOINT" },
+#ifdef IFF_NOTRAILERS
{ IFF_NOTRAILERS, "IFF_NOTRAILERS" },
+#endif
{ IFF_RUNNING, "IFF_RUNNING" },
{ IFF_NOARP, "IFF_NOARP" },
{ IFF_PROMISC, "IFF_PROMISC" },
{ IFF_ALLMULTI, "IFF_ALLMULTI" },
+#ifdef IFF_MASTER
{ IFF_MASTER, "IFF_MASTER" },
+#endif
+#ifdef IFF_SLAVE
{ IFF_SLAVE, "IFF_SLAVE" },
+#endif
{ IFF_MULTICAST, "IFF_MULTICAST" },
+#ifdef IFF_PORTSEL
{ IFF_PORTSEL, "IFF_PORTSEL" },
+#endif
+#ifdef IFF_AUTOMEDIA
{ IFF_AUTOMEDIA, "IFF_AUTOMEDIA" },
+#endif
{ 0, NULL }
};
+#ifdef LINUX
static void
print_addr(tcp, addr, ifr)
struct tcb *tcp;
@@ -80,14 +92,19 @@
} else
printstr(tcp, addr, sizeof(ifr->ifr_addr.sa_data));
}
+#endif
int
sock_ioctl(struct tcb *tcp, long code, long arg)
{
+#ifdef LINUX
struct ifreq ifr;
+#endif
struct ifconf ifc;
+#ifdef LINUX
const char *str = NULL;
unsigned char *bytes;
+#endif
if (entering(tcp)) {
if (code == SIOCGIFCONF) {
Index: time.c
--- time.c.orig 2009-04-14 14:51:00 +0200
+++ time.c 2009-10-22 08:55:42 +0200
@@ -36,6 +36,7 @@
#include <sys/timex.h>
#include <linux/ioctl.h>
#include <linux/rtc.h>
+#endif /* LINUX */
#ifndef UTIME_NOW
#define UTIME_NOW ((1l << 30) - 1l)
@@ -43,7 +44,6 @@
#ifndef UTIME_OMIT
#define UTIME_OMIT ((1l << 30) - 2l)
#endif
-#endif /* LINUX */
struct timeval32
{
Index: util.c
--- util.c.orig 2009-10-12 21:54:21 +0200
+++ util.c 2009-10-22 09:01:31 +0200
@@ -231,10 +231,14 @@
tcp->ptrace_errno = err;
msg = "SYSCALL";
+#ifdef PTRACE_CONT
if (op == PTRACE_CONT)
msg = "CONT";
+#endif
+#ifdef PTRACE_DETACH
if (op == PTRACE_DETACH)
msg = "DETACH";
+#endif
fprintf(stderr, "strace: ptrace(PTRACE_%s,1,%d): %s\n",
msg, sig, strerror(err));
return -1;