diff options
author | Jean-Baptiste Queru <jbq@google.com> | 2012-05-25 07:52:17 -0700 |
---|---|---|
committer | android code review <noreply-gerritcodereview@google.com> | 2012-05-25 07:52:18 -0700 |
commit | 7d2d23fd9b87c3a1fc61a51e6cb62923d952fb79 (patch) | |
tree | 6886d3747b533add0b53b0c773fe9cdecf73a4f6 | |
parent | fd36697f71f2272c6e1e1283b81d9d85b9085915 (diff) | |
parent | f20b06e335baf9428a6b5d82648dc862dc4e1b41 (diff) | |
download | strace-jb-mr1-dev-plus-aosp.tar.gz |
Merge "[MIPS] Add MIPS Support"android-sdk-support_r11android-sdk-adt_r20android-cts-4.2_r2android-cts-4.2_r1android-4.2_r1android-4.2.2_r1.2android-4.2.2_r1.1android-4.2.2_r1android-4.2.1_r1.2android-4.2.1_r1.1android-4.2.1_r1tools_r21tools_r20jb-mr1.1-releasejb-mr1.1-devjb-mr1-releasejb-mr1-dev-plus-aospjb-mr1-devics-plus-aosp
-rw-r--r-- | Android.mk | 5 | ||||
-rw-r--r-- | defs.h | 4 | ||||
-rw-r--r-- | file.c | 35 | ||||
-rw-r--r-- | syscall-android.h | 2 | ||||
-rw-r--r-- | system.c | 2 |
5 files changed, 42 insertions, 6 deletions
@@ -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 @@ -33,10 +33,6 @@ #include "config.h" #endif -#ifdef MIPS -#include <sgidefs.h> -#endif - #ifdef linux #include <features.h> #endif @@ -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 @@ -88,7 +88,7 @@ #include <linux/utsname.h> #endif -#ifdef HAVE_ASM_SYSMIPS_H +#ifdef MIPS #include <asm/sysmips.h> #endif |