aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2012-05-25 07:52:17 -0700
committerandroid code review <noreply-gerritcodereview@google.com>2012-05-25 07:52:18 -0700
commit7d2d23fd9b87c3a1fc61a51e6cb62923d952fb79 (patch)
tree6886d3747b533add0b53b0c773fe9cdecf73a4f6
parentfd36697f71f2272c6e1e1283b81d9d85b9085915 (diff)
parentf20b06e335baf9428a6b5d82648dc862dc4e1b41 (diff)
downloadstrace-jb-mr1-dev-plus-aosp.tar.gz
-rw-r--r--Android.mk5
-rw-r--r--defs.h4
-rw-r--r--file.c35
-rw-r--r--syscall-android.h2
-rw-r--r--system.c2
5 files changed, 42 insertions, 6 deletions
diff --git a/Android.mk b/Android.mk
index 112891ca..52742809 100644
--- a/Android.mk
+++ b/Android.mk
@@ -73,7 +73,6 @@ LOCAL_CFLAGS := -DLINUX=1 \
-DHAVE_STRUCT_STAT_ST_BLOCKS=1 \
-DHAVE_STRUCT_STAT_ST_RDEV=1 \
-DHAVE_STRUCT_USER_DESC=1 \
- -DHAVE_STRUCT___OLD_KERNEL_STAT=1 \
-DHAVE_SYS_EPOLL_H=1 \
-DHAVE_SYS_IOCTL_H=1 \
-DHAVE_SYS_POLL_H=1 \
@@ -109,13 +108,17 @@ LOCAL_CFLAGS := -DLINUX=1 \
arch := $(TARGET_ARCH)
ifeq ($(TARGET_ARCH),arm)
LOCAL_CFLAGS += -DARM=1 -DHAVE_LITTLE_ENDIAN_LONG_LONG=1
+ LOCAL_CFLAGS += -DHAVE_STRUCT___OLD_KERNEL_STAT=1
else ifeq ($(TARGET_ARCH),x86)
LOCAL_CFLAGS += -DI386=1 -DHAVE_LITTLE_ENDIAN_LONG_LONG=1
+ LOCAL_CFLAGS += -DHAVE_STRUCT___OLD_KERNEL_STAT=1
arch := i386
else ifeq ($(TARGET_ARCH),sh)
LOCAL_CFLAGS += -DSH=1 -DHAVE_LITTLE_ENDIAN_LONG_LONG=1
+ LOCAL_CFLAGS += -DHAVE_STRUCT___OLD_KERNEL_STAT=1
else ifeq ($(TARGET_ARCH),mips)
LOCAL_CFLAGS += -DMIPS=1 -DHAVE_LITTLE_ENDIAN_LONG_LONG=1
+# Mips does not use STRUCT__OLD_KERNEL_STAT type
endif
LOCAL_CFLAGS += -Wno-missing-field-initializers
diff --git a/defs.h b/defs.h
index 8be668aa..6aa76118 100644
--- a/defs.h
+++ b/defs.h
@@ -33,10 +33,6 @@
#include "config.h"
#endif
-#ifdef MIPS
-#include <sgidefs.h>
-#endif
-
#ifdef linux
#include <features.h>
#endif
diff --git a/file.c b/file.c
index 92efcfe8..7bad76b6 100644
--- a/file.c
+++ b/file.c
@@ -60,6 +60,7 @@ struct dirent64 {
// ANDROID: From kernel_headers/asm/statfs.h
+#if !defined(MIPS)
/*
* With EABI there is 4 bytes of padding added to this structure.
* Let's pack it so the padding goes away to simplify dual ABI support.
@@ -78,6 +79,24 @@ struct statfs64 {
__u32 f_frsize;
__u32 f_spare[5];
} __attribute__ ((packed,aligned(4)));
+#else
+struct statfs64 {
+ __u32 f_type;
+ __u32 f_bsize;
+ __u32 f_frsize;
+ __u32 __pad;
+ __u64 f_blocks;
+ __u64 f_bfree;
+ __u64 f_files;
+ __u64 f_ffree;
+ __u64 f_bavail;
+ __kernel_fsid_t f_fsid;
+ __u32 f_namelen;
+ __u32 f_spare[6];
+};
+#endif
+
+
#endif /* HAVE_ANDROID_OS */
#ifdef LINUX
@@ -1767,11 +1786,19 @@ printstatfs(struct tcb *tcp, long addr)
(unsigned long)statbuf.f_bsize,
(unsigned long)statbuf.f_blocks,
(unsigned long)statbuf.f_bfree);
+#ifdef MIPS
+ tprintf("f_bavail=%lu, f_files=%lu, f_ffree=%lu, f_fsid={%ld, %ld}",
+ (unsigned long)statbuf.f_bavail,
+ (unsigned long)statbuf.f_files,
+ (unsigned long)statbuf.f_ffree,
+ statbuf.f_fsid.val[0], statbuf.f_fsid.val[1]);
+#else
tprintf("f_bavail=%lu, f_files=%lu, f_ffree=%lu, f_fsid={%d, %d}",
(unsigned long)statbuf.f_bavail,
(unsigned long)statbuf.f_files,
(unsigned long)statbuf.f_ffree,
statbuf.f_fsid.__val[0], statbuf.f_fsid.__val[1]);
+#endif
#ifdef LINUX
tprintf(", f_namelen=%lu", (unsigned long)statbuf.f_namelen);
#endif /* LINUX */
@@ -1825,11 +1852,19 @@ printstatfs64(struct tcb *tcp, long addr)
(unsigned long long)statbuf.f_bsize,
(unsigned long long)statbuf.f_blocks,
(unsigned long long)statbuf.f_bfree);
+#ifdef MIPS
+ tprintf("f_bavail=%llu, f_files=%llu, f_ffree=%llu, f_fsid={%ld, %ld}",
+ (unsigned long long)statbuf.f_bavail,
+ (unsigned long long)statbuf.f_files,
+ (unsigned long long)statbuf.f_ffree,
+ statbuf.f_fsid.val[0], statbuf.f_fsid.val[1]);
+#else
tprintf("f_bavail=%llu, f_files=%llu, f_ffree=%llu, f_fsid={%d, %d}",
(unsigned long long)statbuf.f_bavail,
(unsigned long long)statbuf.f_files,
(unsigned long long)statbuf.f_ffree,
statbuf.f_fsid.__val[0], statbuf.f_fsid.__val[1]);
+#endif
tprintf(", f_namelen=%lu", (unsigned long)statbuf.f_namelen);
#ifdef _STATFS_F_FRSIZE
tprintf(", f_frsize=%llu", (unsigned long long)statbuf.f_frsize);
diff --git a/syscall-android.h b/syscall-android.h
index 3964b14f..ec2671d7 100644
--- a/syscall-android.h
+++ b/syscall-android.h
@@ -280,7 +280,9 @@
#define SYS_ustat __NR_ustat
#define SYS_utime __NR_utime
#define SYS_utimes __NR_utimes
+#ifdef __NR_vfork
#define SYS_vfork __NR_vfork
+#endif
#define SYS_vhangup __NR_vhangup
#define SYS_vm86 __NR_vm86
#define SYS_vm86old __NR_vm86old
diff --git a/system.c b/system.c
index 01bd9952..c0d300e5 100644
--- a/system.c
+++ b/system.c
@@ -88,7 +88,7 @@
#include <linux/utsname.h>
#endif
-#ifdef HAVE_ASM_SYSMIPS_H
+#ifdef MIPS
#include <asm/sysmips.h>
#endif