syscall_emul: add many Linux kernel flags
authorBrandon Potter <brandon.potter@amd.com>
Thu, 17 Mar 2016 17:22:39 +0000 (10:22 -0700)
committerBrandon Potter <brandon.potter@amd.com>
Thu, 17 Mar 2016 17:22:39 +0000 (10:22 -0700)
13 files changed:
src/arch/alpha/linux/linux.cc
src/arch/alpha/linux/linux.hh
src/arch/arm/linux/linux.cc
src/arch/arm/linux/linux.hh
src/arch/mips/linux/linux.cc
src/arch/mips/linux/linux.hh
src/arch/power/linux/linux.cc
src/arch/power/linux/linux.hh
src/arch/sparc/linux/linux.cc
src/arch/sparc/linux/linux.hh
src/arch/x86/linux/linux.cc
src/arch/x86/linux/linux.hh
src/kern/linux/linux.hh

index 6641b3b60f49998d137ab38c555935193615cd99..b86b92c2ee6c6a11fa3a25abd35cc9f97d3e34ee 100644 (file)
 // open(2) flags translation table
 SyscallFlagTransTable AlphaLinux::openFlagTable[] = {
 #ifdef _MSC_VER
-  { AlphaLinux::TGT_O_RDONLY,   _O_RDONLY },
-  { AlphaLinux::TGT_O_WRONLY,   _O_WRONLY },
-  { AlphaLinux::TGT_O_RDWR,     _O_RDWR },
-  { AlphaLinux::TGT_O_APPEND,   _O_APPEND },
-  { AlphaLinux::TGT_O_CREAT,    _O_CREAT },
-  { AlphaLinux::TGT_O_TRUNC,    _O_TRUNC },
-  { AlphaLinux::TGT_O_EXCL,     _O_EXCL },
+  { AlphaLinux::TGT_O_RDONLY,    _O_RDONLY },
+  { AlphaLinux::TGT_O_WRONLY,    _O_WRONLY },
+  { AlphaLinux::TGT_O_RDWR,      _O_RDWR },
+  { AlphaLinux::TGT_O_CREAT,     _O_CREAT },
+  { AlphaLinux::TGT_O_EXCL,      _O_EXCL },
+#ifdef _O_NOCTTY
+  { AlphaLinux::TGT_O_NOCTTY,    _O_NOCTTY },
+#endif
+  { AlphaLinux::TGT_O_TRUNC,     _O_TRUNC },
+  { AlphaLinux::TGT_O_APPEND,    _O_APPEND },
 #ifdef _O_NONBLOCK
-  { AlphaLinux::TGT_O_NONBLOCK, _O_NONBLOCK },
+  { AlphaLinux::TGT_O_NONBLOCK,  _O_NONBLOCK },
 #endif
-#ifdef _O_NOCTTY
-  { AlphaLinux::TGT_O_NOCTTY,   _O_NOCTTY },
+#ifdef _O_DSYNC
+  { AlphaLinux::TGT_O_DSYNC,     _O_DSYNC },
+#endif
+  { AlphaLinux::TGT_FASYNC,      _O_ASYNC },
+  { AlphaLinux::TGT_O_DIRECT,    _O_DIRECT },
+  { AlphaLinux::TGT_O_LARGEFILE, _O_LARGEFILE },
+  { AlphaLinux::TGT_O_DIRECTORY, _O_DIRECTORY },
+  { AlphaLinux::TGT_O_NOFOLLOW,  _O_NOFOLLOW },
+  { AlphaLinux::TGT_O_NOATIME,   _O_NOATIME },
+#ifdef _O_CLOEXEC
+  { AlphaLinux::TGT_O_CLOEXEC,   _O_CLOEXEC },
 #endif
 #ifdef _O_SYNC
-  { AlphaLinux::TGT_O_SYNC,     _O_SYNC },
+  { AlphaLinux::TGT_O_SYNC,      _O_SYNC },
+#endif
+#ifdef _O_PATH
+  { AlphaLinux::TGT_O_PATH,      _O_PATH },
 #endif
 #else /* !_MSC_VER */
-  { AlphaLinux::TGT_O_RDONLY,   O_RDONLY },
-  { AlphaLinux::TGT_O_WRONLY,   O_WRONLY },
-  { AlphaLinux::TGT_O_RDWR,     O_RDWR },
-  { AlphaLinux::TGT_O_APPEND,   O_APPEND },
-  { AlphaLinux::TGT_O_CREAT,    O_CREAT },
-  { AlphaLinux::TGT_O_TRUNC,    O_TRUNC },
-  { AlphaLinux::TGT_O_EXCL,     O_EXCL },
-  { AlphaLinux::TGT_O_NONBLOCK, O_NONBLOCK },
-  { AlphaLinux::TGT_O_NOCTTY,   O_NOCTTY },
+  { AlphaLinux::TGT_O_RDONLY,    O_RDONLY },
+  { AlphaLinux::TGT_O_WRONLY,    O_WRONLY },
+  { AlphaLinux::TGT_O_RDWR,      O_RDWR },
+  { AlphaLinux::TGT_O_CREAT,     O_CREAT },
+  { AlphaLinux::TGT_O_EXCL,      O_EXCL },
+  { AlphaLinux::TGT_O_NOCTTY,    O_NOCTTY },
+  { AlphaLinux::TGT_O_TRUNC,     O_TRUNC },
+  { AlphaLinux::TGT_O_APPEND,    O_APPEND },
+  { AlphaLinux::TGT_O_NONBLOCK,  O_NONBLOCK },
+#ifdef O_DSYNC
+  { AlphaLinux::TGT_O_DSYNC,     O_DSYNC },
+#endif
+  { AlphaLinux::TGT_FASYNC,     O_ASYNC },
+  { AlphaLinux::TGT_O_DIRECT,    O_DIRECT },
+  { AlphaLinux::TGT_O_LARGEFILE, O_LARGEFILE },
+  { AlphaLinux::TGT_O_DIRECTORY, O_DIRECTORY },
+  { AlphaLinux::TGT_O_NOFOLLOW,  O_NOFOLLOW },
+  { AlphaLinux::TGT_O_NOATIME,   O_NOATIME },
+#ifdef O_CLOEXEC
+  { AlphaLinux::TGT_O_CLOEXEC,   O_CLOEXEC },
+#endif
 #ifdef O_SYNC
-  { AlphaLinux::TGT_O_SYNC,     O_SYNC },
+  { AlphaLinux::TGT_O_SYNC,      O_SYNC },
+#endif
+#ifdef O_PATH
+  { AlphaLinux::TGT_O_PATH,      O_PATH },
 #endif
 #endif /* _MSC_VER */
 };
index 37508c65b7b96edcfba95d3336a6a9f480626272..7864c64144203bf02ed97e352630ed180b2109df 100644 (file)
@@ -41,6 +41,38 @@ class AlphaLinux : public Linux
 {
   public:
 
+    static const int TGT_SIGHUP         = 0x000001;
+    static const int TGT_SIGINT         = 0x000002;
+    static const int TGT_SIGQUIT        = 0x000003;
+    static const int TGT_SIGILL         = 0x000004;
+    static const int TGT_SIGTRAP        = 0x000005;
+    static const int TGT_SIGABRT        = 0x000006;
+    static const int TGT_SIGEMT         = 0x000007;
+    static const int TGT_SIGFPE         = 0x000008;
+    static const int TGT_SIGKILL        = 0x000009;
+    static const int TGT_SIGBUS         = 0x00000a;
+    static const int TGT_SIGSEGV        = 0x00000b;
+    static const int TGT_SIGSYS         = 0x00000c;
+    static const int TGT_SIGPIPE        = 0x00000d;
+    static const int TGT_SIGALRM        = 0x00000e;
+    static const int TGT_SIGTERM        = 0x00000f;
+    static const int TGT_SIGURG         = 0x000010;
+    static const int TGT_SIGSTOP        = 0x000011;
+    static const int TGT_SIGTSTP        = 0x000012;
+    static const int TGT_SIGCONT        = 0x000013;
+    static const int TGT_SIGCHLD        = 0x000014;
+    static const int TGT_SIGTTIN        = 0x000015;
+    static const int TGT_SIGTTOU        = 0x000016;
+    static const int TGT_SIGIO          = 0x000017;
+    static const int TGT_SIGXCPU        = 0x000018;
+    static const int TGT_SIGXFSZ        = 0x000019;
+    static const int TGT_SIGVTALRM      = 0x00001a;
+    static const int TGT_SIGPROF        = 0x00001b;
+    static const int TGT_SIGWINCH       = 0x00001c;
+    static const int TGT_SIGINFO        = 0x00001d;
+    static const int TGT_SIGUSR1        = 0x00001e;
+    static const int TGT_SIGUSR2        = 0x00001f;
+
     /// This table maps the target open() flags to the corresponding
     /// host open() flags.
     static SyscallFlagTransTable openFlagTable[];
@@ -50,21 +82,25 @@ class AlphaLinux : public Linux
 
     //@{
     /// open(2) flag values.
-    static const int TGT_O_RDONLY       = 00000000;     //!< O_RDONLY
-    static const int TGT_O_WRONLY       = 00000001;     //!< O_WRONLY
-    static const int TGT_O_RDWR         = 00000002;     //!< O_RDWR
-    static const int TGT_O_NONBLOCK     = 00000004;     //!< O_NONBLOCK
-    static const int TGT_O_APPEND       = 00000010;     //!< O_APPEND
-    static const int TGT_O_CREAT        = 00001000;     //!< O_CREAT
-    static const int TGT_O_TRUNC        = 00002000;     //!< O_TRUNC
-    static const int TGT_O_EXCL         = 00004000;     //!< O_EXCL
-    static const int TGT_O_NOCTTY       = 00010000;     //!< O_NOCTTY
-    static const int TGT_O_SYNC         = 00040000;     //!< O_SYNC
-    static const int TGT_O_DRD          = 00100000;     //!< O_DRD
-    static const int TGT_O_DIRECTIO     = 00200000;     //!< O_DIRECTIO
-    static const int TGT_O_CACHE        = 00400000;     //!< O_CACHE
-    static const int TGT_O_DSYNC        = 02000000;     //!< O_DSYNC
-    static const int TGT_O_RSYNC        = 04000000;     //!< O_RSYNC
+    static const int TGT_O_RDONLY       = 000000000;    //!< O_RDONLY
+    static const int TGT_O_WRONLY       = 000000001;    //!< O_WRONLY
+    static const int TGT_O_RDWR         = 000000002;    //!< O_RDWR
+    static const int TGT_O_CREAT        = 000001000;    //!< O_CREAT
+    static const int TGT_O_EXCL         = 000004000;    //!< O_EXCL
+    static const int TGT_O_NOCTTY       = 000010000;    //!< O_NOCTTY
+    static const int TGT_O_TRUNC        = 000002000;    //!< O_TRUNC
+    static const int TGT_O_APPEND       = 000000010;    //!< O_APPEND
+    static const int TGT_O_NONBLOCK     = 000000004;    //!< O_NONBLOCK
+    static const int TGT_O_DSYNC        = 000040000;    //!< O_DSYNC
+    static const int TGT_FASYNC         = 000020000;    //!< FASYNC
+    static const int TGT_O_DIRECT       = 002000000;    //!< O_DIRECT
+    static const int TGT_O_LARGEFILE    = 000400000;    //!< O_LARGEFILE
+    static const int TGT_O_DIRECTORY    = 000100000;    //!< O_DIRECTORY
+    static const int TGT_O_NOFOLLOW     = 000200000;    //!< O_NOFOLLOW
+    static const int TGT_O_NOATIME      = 004000000;    //!< O_NOATIME
+    static const int TGT_O_CLOEXEC      = 010000000;    //!< O_CLOEXEC
+    static const int TGT_O_SYNC         = 020040000;    //!< O_SYNC
+    static const int TGT_O_PATH         = 040000000;    //!< O_PATH
     //@}
 
     /// For mmap().
index 2428c49864285c642a42f6e1298a68ef9f99aaea..ac114048ae3c4b2e741e4638d521fa8a4f66d548 100644 (file)
@@ -51,19 +51,34 @@ SyscallFlagTransTable ArmLinux32::openFlagTable[] = {
   { ArmLinux32::TGT_O_RDONLY,     _O_RDONLY },
   { ArmLinux32::TGT_O_WRONLY,     _O_WRONLY },
   { ArmLinux32::TGT_O_RDWR,       _O_RDWR },
-  { ArmLinux32::TGT_O_APPEND,     _O_APPEND },
   { ArmLinux32::TGT_O_CREAT,      _O_CREAT },
-  { ArmLinux32::TGT_O_TRUNC,      _O_TRUNC },
   { ArmLinux32::TGT_O_EXCL,       _O_EXCL },
+#ifdef _O_NOCTTY
+  { ArmLinux32::TGT_O_NOCTTY,     _O_NOCTTY },
+#endif
+  { ArmLinux32::TGT_O_TRUNC,      _O_TRUNC },
+  { ArmLinux32::TGT_O_APPEND,     _O_APPEND },
 #ifdef _O_NONBLOCK
   { ArmLinux32::TGT_O_NONBLOCK,   _O_NONBLOCK },
 #endif
-#ifdef _O_NOCTTY
-  { ArmLinux32::TGT_O_NOCTTY,     _O_NOCTTY },
+#ifdef _O_DSYNC
+  { ArmLinux32::TGT_O_DSYNC,      _O_DSYNC },
+#endif
+  { ArmLinux32::TGT_FASYNC,       _O_ASYNC },
+  { ArmLinux32::TGT_O_DIRECT,     _O_DIRECT },
+  { ArmLinux32::TGT_O_LARGEFILE,  _O_LARGEFILE },
+  { ArmLinux32::TGT_O_DIRECTORY,  _O_DIRECTORY },
+  { ArmLinux32::TGT_O_NOFOLLOW,   _O_NOFOLLOW },
+  { ArmLinux32::TGT_O_NOATIME,    _O_NOATIME },
+#ifdef _O_CLOEXEC
+  { ArmLinux32::TGT_O_CLOEXEC,    _O_CLOEXEC },
 #endif
 #ifdef _O_SYNC
   { ArmLinux32::TGT_O_SYNC,       _O_SYNC },
 #endif
+#ifdef _O_PATH
+  { ArmLinux32::TGT_O_PATH,       _O_PATH },
+#endif
 #else /* !_MSC_VER */
   { ArmLinux32::TGT_O_RDONLY,     O_RDONLY },
   { ArmLinux32::TGT_O_WRONLY,     O_WRONLY },
@@ -74,12 +89,10 @@ SyscallFlagTransTable ArmLinux32::openFlagTable[] = {
   { ArmLinux32::TGT_O_TRUNC,      O_TRUNC },
   { ArmLinux32::TGT_O_APPEND,     O_APPEND },
   { ArmLinux32::TGT_O_NONBLOCK,   O_NONBLOCK },
-#ifdef O_SYNC
-  { ArmLinux32::TGT_O_SYNC,       O_SYNC },
-#endif
-#ifdef FASYNC
-  { ArmLinux32::TGT_FASYNC,       FASYNC },
+#ifdef O_DSYNC
+  { ArmLinux32::TGT_O_DSYNC,      O_DSYNC },
 #endif
+  { ArmLinux32::TGT_FASYNC,       O_ASYNC },
 #ifdef O_DIRECT
   { ArmLinux32::TGT_O_DIRECT,     O_DIRECT },
 #endif
@@ -91,6 +104,16 @@ SyscallFlagTransTable ArmLinux32::openFlagTable[] = {
 #endif
 #ifdef O_NOFOLLOW
   { ArmLinux32::TGT_O_NOFOLLOW,   O_NOFOLLOW },
+#endif
+  { ArmLinux32::TGT_O_NOATIME,    O_NOATIME },
+#ifdef O_CLOEXEC
+  { ArmLinux32::TGT_O_CLOEXEC,    O_CLOEXEC },
+#endif
+#ifdef O_SYNC
+  { ArmLinux32::TGT_O_SYNC,       O_SYNC },
+#endif
+#ifdef O_PATH
+  { ArmLinux32::TGT_O_PATH,       O_PATH },
 #endif
 #endif /* _MSC_VER */
 };
@@ -104,19 +127,34 @@ SyscallFlagTransTable ArmLinux64::openFlagTable[] = {
   { ArmLinux64::TGT_O_RDONLY,     _O_RDONLY },
   { ArmLinux64::TGT_O_WRONLY,     _O_WRONLY },
   { ArmLinux64::TGT_O_RDWR,       _O_RDWR },
-  { ArmLinux64::TGT_O_APPEND,     _O_APPEND },
   { ArmLinux64::TGT_O_CREAT,      _O_CREAT },
-  { ArmLinux64::TGT_O_TRUNC,      _O_TRUNC },
   { ArmLinux64::TGT_O_EXCL,       _O_EXCL },
+#ifdef _O_NOCTTY
+  { ArmLinux64::TGT_O_NOCTTY,     _O_NOCTTY },
+#endif
+  { ArmLinux64::TGT_O_TRUNC,      _O_TRUNC },
+  { ArmLinux64::TGT_O_APPEND,     _O_APPEND },
 #ifdef _O_NONBLOCK
   { ArmLinux64::TGT_O_NONBLOCK,   _O_NONBLOCK },
 #endif
-#ifdef _O_NOCTTY
-  { ArmLinux64::TGT_O_NOCTTY,     _O_NOCTTY },
+#ifdef _O_DSYNC
+  { ArmLinux64::TGT_O_DSYNC,       _O_DSYNC },
+#endif
+  { ArmLinux64::TGT_FASYNC,       _O_ASYNC },
+  { ArmLinux64::TGT_O_DIRECT,     _O_DIRECT },
+  { ArmLinux64::TGT_O_LARGEFILE,  _O_LARGEFILE },
+  { ArmLinux64::TGT_O_DIRECTORY,  _O_DIRECTORY },
+  { ArmLinux64::TGT_O_NOFOLLOW,   _O_NOFOLLOW },
+  { ArmLinux64::TGT_O_NOATIME,    _O_NOATIME },
+#ifdef _O_CLOEXEC
+  { ArmLinux64::TGT_O_CLOEXEC,    _O_CLOEXEC },
 #endif
 #ifdef _O_SYNC
   { ArmLinux64::TGT_O_SYNC,       _O_SYNC },
 #endif
+#ifdef _O_PATH
+  { ArmLinux64::TGT_O_PATH,       _O_PATH },
+#endif
 #else /* !_MSC_VER */
   { ArmLinux64::TGT_O_RDONLY,     O_RDONLY },
   { ArmLinux64::TGT_O_WRONLY,     O_WRONLY },
@@ -127,11 +165,9 @@ SyscallFlagTransTable ArmLinux64::openFlagTable[] = {
   { ArmLinux64::TGT_O_TRUNC,      O_TRUNC },
   { ArmLinux64::TGT_O_APPEND,     O_APPEND },
   { ArmLinux64::TGT_O_NONBLOCK,   O_NONBLOCK },
-#ifdef O_SYNC
-  { ArmLinux64::TGT_O_SYNC,       O_SYNC },
-#endif
+  { ArmLinux64::TGT_O_DSYNC,      O_DSYNC },
 #ifdef FASYNC
-  { ArmLinux64::TGT_FASYNC,       FASYNC },
+  { ArmLinux64::TGT_FASYNC,       O_ASYNC },
 #endif
 #ifdef O_DIRECT
   { ArmLinux64::TGT_O_DIRECT,     O_DIRECT },
@@ -144,6 +180,16 @@ SyscallFlagTransTable ArmLinux64::openFlagTable[] = {
 #endif
 #ifdef O_NOFOLLOW
   { ArmLinux64::TGT_O_NOFOLLOW,   O_NOFOLLOW },
+#endif
+  { ArmLinux64::TGT_O_NOATIME,    O_NOATIME },
+#ifdef O_CLOEXEC
+  { ArmLinux64::TGT_O_CLOEXEC,    O_CLOEXEC },
+#endif
+#ifdef O_SYNC
+  { ArmLinux64::TGT_O_SYNC,       O_SYNC },
+#endif
+#ifdef O_PATH
+  { ArmLinux64::TGT_O_PATH,       O_PATH },
 #endif
 #endif /* _MSC_VER */
 };
index 68ed6ed77a35cc16075a888ec5c67204626e56b5..a2eaea52c71018c03814014ab5053563cb2bab0a 100644 (file)
@@ -51,6 +51,41 @@ class ArmLinux32 : public Linux
 {
   public:
 
+    static const int TGT_SIGHUP         = 0x000001;
+    static const int TGT_SIGINT         = 0x000002;
+    static const int TGT_SIGQUIT        = 0x000003;
+    static const int TGT_SIGILL         = 0x000004;
+    static const int TGT_SIGTRAP        = 0x000005;
+    static const int TGT_SIGABRT        = 0x000006;
+    static const int TGT_SIGIOT         = 0x000006;
+    static const int TGT_SIGBUS         = 0x000007;
+    static const int TGT_SIGFPE         = 0x000008;
+    static const int TGT_SIGKILL        = 0x000009;
+    static const int TGT_SIGUSR1        = 0x00000a;
+    static const int TGT_SIGSEGV        = 0x00000b;
+    static const int TGT_SIGUSR2        = 0x00000c;
+    static const int TGT_SIGPIPE        = 0x00000d;
+    static const int TGT_SIGALRM        = 0x00000e;
+    static const int TGT_SIGTERM        = 0x00000f;
+    static const int TGT_SIGSTKFLT      = 0x000010;
+    static const int TGT_SIGCHLD        = 0x000011;
+    static const int TGT_SIGCONT        = 0x000012;
+    static const int TGT_SIGSTOP        = 0x000013;
+    static const int TGT_SIGTSTP        = 0x000014;
+    static const int TGT_SIGTTIN        = 0x000015;
+    static const int TGT_SIGTTOU        = 0x000016;
+    static const int TGT_SIGURG         = 0x000017;
+    static const int TGT_SIGXCPU        = 0x000018;
+    static const int TGT_SIGXFSZ        = 0x000019;
+    static const int TGT_SIGVTALRM      = 0x00001a;
+    static const int TGT_SIGPROF        = 0x00001b;
+    static const int TGT_SIGWINCH       = 0x00001c;
+    static const int TGT_SIGIO          = 0x00001d;
+    static const int TGT_SIGPOLL        = 0x00001d;
+    static const int TGT_SIGPWR         = 0x00001e;
+    static const int TGT_SIGSYS         = 0x00001f;
+    static const int TGT_SIGUNUSED      = 0x00001f;
+
     /// This table maps the target open() flags to the corresponding
     /// host open() flags.
     static SyscallFlagTransTable openFlagTable[];
@@ -68,25 +103,25 @@ class ArmLinux32 : public Linux
 
     //@{
     /// open(2) flag values.
-    static const int TGT_O_RDONLY    = 00000000; //!< O_RDONLY
-    static const int TGT_O_WRONLY    = 00000001; //!< O_WRONLY
-    static const int TGT_O_RDWR      = 00000002; //!< O_RDWR
-    static const int TGT_O_CREAT     = 00000100; //!< O_CREAT
-    static const int TGT_O_EXCL      = 00000200; //!< O_EXCL
-    static const int TGT_O_NOCTTY    = 00000400; //!< O_NOCTTY
-    static const int TGT_O_TRUNC     = 00001000; //!< O_TRUNC
-    static const int TGT_O_APPEND    = 00002000; //!< O_APPEND
-    static const int TGT_O_NONBLOCK  = 00004000; //!< O_NONBLOCK
-    static const int TGT_O_SYNC      = 00010000; //!< O_SYNC
-    static const int TGT_FASYNC      = 00020000; //!< FASYNC
-    static const int TGT_O_DIRECT    = 00040000; //!< O_DIRECT
-    static const int TGT_O_LARGEFILE = 00100000; //!< O_LARGEFILE
-    static const int TGT_O_DIRECTORY = 00200000; //!< O_DIRECTORY
-    static const int TGT_O_NOFOLLOW  = 00400000; //!< O_NOFOLLOW
-    static const int TGT_O_NOATIME   = 01000000; //!< O_NOATIME
-    static const int TGT_O_CLOEXEC   = 02000000; //!< O_NOATIME
-
-
+    static const int TGT_O_RDONLY    = 000000000; //!< O_RDONLY
+    static const int TGT_O_WRONLY    = 000000001; //!< O_WRONLY
+    static const int TGT_O_RDWR      = 000000002; //!< O_RDWR
+    static const int TGT_O_CREAT     = 000000100; //!< O_CREAT
+    static const int TGT_O_EXCL      = 000000200; //!< O_EXCL
+    static const int TGT_O_NOCTTY    = 000000400; //!< O_NOCTTY
+    static const int TGT_O_TRUNC     = 000001000; //!< O_TRUNC
+    static const int TGT_O_APPEND    = 000002000; //!< O_APPEND
+    static const int TGT_O_NONBLOCK  = 000004000; //!< O_NONBLOCK
+    static const int TGT_O_DSYNC     = 000010000; //!< O_DSYNC
+    static const int TGT_FASYNC      = 000020000; //!< FASYNC
+    static const int TGT_O_DIRECT    = 000200000; //!< O_DIRECT
+    static const int TGT_O_LARGEFILE = 000400000; //!< O_LARGEFILE
+    static const int TGT_O_DIRECTORY = 000040000; //!< O_DIRECTORY
+    static const int TGT_O_NOFOLLOW  = 000100000; //!< O_NOFOLLOW
+    static const int TGT_O_NOATIME   = 001000000; //!< O_NOATIME
+    static const int TGT_O_CLOEXEC   = 002000000; //!< O_NOATIME
+    static const int TGT_O_SYNC      = 004010000; //!< O_SYNC
+    static const int TGT_O_PATH      = 010000000; //!< O_PATH
     //@}
 
     /// For mmap().
@@ -211,6 +246,41 @@ class ArmLinux64 : public Linux
 {
   public:
 
+    static const int TGT_SIGHUP         = 0x000001;
+    static const int TGT_SIGINT         = 0x000002;
+    static const int TGT_SIGQUIT        = 0x000003;
+    static const int TGT_SIGILL         = 0x000004;
+    static const int TGT_SIGTRAP        = 0x000005;
+    static const int TGT_SIGABRT        = 0x000006;
+    static const int TGT_SIGIOT         = 0x000006;
+    static const int TGT_SIGBUS         = 0x000007;
+    static const int TGT_SIGFPE         = 0x000008;
+    static const int TGT_SIGKILL        = 0x000009;
+    static const int TGT_SIGUSR1        = 0x00000a;
+    static const int TGT_SIGSEGV        = 0x00000b;
+    static const int TGT_SIGUSR2        = 0x00000c;
+    static const int TGT_SIGPIPE        = 0x00000d;
+    static const int TGT_SIGALRM        = 0x00000e;
+    static const int TGT_SIGTERM        = 0x00000f;
+    static const int TGT_SIGSTKFLT      = 0x000010;
+    static const int TGT_SIGCHLD        = 0x000011;
+    static const int TGT_SIGCONT        = 0x000012;
+    static const int TGT_SIGSTOP        = 0x000013;
+    static const int TGT_SIGTSTP        = 0x000014;
+    static const int TGT_SIGTTIN        = 0x000015;
+    static const int TGT_SIGTTOU        = 0x000016;
+    static const int TGT_SIGURG         = 0x000017;
+    static const int TGT_SIGXCPU        = 0x000018;
+    static const int TGT_SIGXFSZ        = 0x000019;
+    static const int TGT_SIGVTALRM      = 0x00001a;
+    static const int TGT_SIGPROF        = 0x00001b;
+    static const int TGT_SIGWINCH       = 0x00001c;
+    static const int TGT_SIGIO          = 0x00001d;
+    static const int TGT_SIGPOLL        = 0x00001d;
+    static const int TGT_SIGPWR         = 0x00001e;
+    static const int TGT_SIGSYS         = 0x00001f;
+    static const int TGT_SIGUNUSED      = 0x00001f;
+
     /// This table maps the target open() flags to the corresponding
     /// host open() flags.
     static SyscallFlagTransTable openFlagTable[];
@@ -228,23 +298,25 @@ class ArmLinux64 : public Linux
 
     //@{
     /// open(2) flag values.
-    static const int TGT_O_RDONLY    = 00000000; //!< O_RDONLY
-    static const int TGT_O_WRONLY    = 00000001; //!< O_WRONLY
-    static const int TGT_O_RDWR      = 00000002; //!< O_RDWR
-    static const int TGT_O_CREAT     = 00000100; //!< O_CREAT
-    static const int TGT_O_EXCL      = 00000200; //!< O_EXCL
-    static const int TGT_O_NOCTTY    = 00000400; //!< O_NOCTTY
-    static const int TGT_O_TRUNC     = 00001000; //!< O_TRUNC
-    static const int TGT_O_APPEND    = 00002000; //!< O_APPEND
-    static const int TGT_O_NONBLOCK  = 00004000; //!< O_NONBLOCK
-    static const int TGT_O_SYNC      = 00010000; //!< O_SYNC
-    static const int TGT_FASYNC      = 00020000; //!< FASYNC
-    static const int TGT_O_DIRECT    = 00040000; //!< O_DIRECT
-    static const int TGT_O_LARGEFILE = 00100000; //!< O_LARGEFILE
-    static const int TGT_O_DIRECTORY = 00200000; //!< O_DIRECTORY
-    static const int TGT_O_NOFOLLOW  = 00400000; //!< O_NOFOLLOW
-    static const int TGT_O_NOATIME   = 01000000; //!< O_NOATIME
-    static const int TGT_O_CLOEXEC   = 02000000; //!< O_NOATIME
+    static const int TGT_O_RDONLY    = 000000000; //!< O_RDONLY
+    static const int TGT_O_WRONLY    = 000000001; //!< O_WRONLY
+    static const int TGT_O_RDWR      = 000000002; //!< O_RDWR
+    static const int TGT_O_CREAT     = 000000100; //!< O_CREAT
+    static const int TGT_O_EXCL      = 000000200; //!< O_EXCL
+    static const int TGT_O_NOCTTY    = 000000400; //!< O_NOCTTY
+    static const int TGT_O_TRUNC     = 000001000; //!< O_TRUNC
+    static const int TGT_O_APPEND    = 000002000; //!< O_APPEND
+    static const int TGT_O_NONBLOCK  = 000004000; //!< O_NONBLOCK
+    static const int TGT_O_DSYNC     = 000010000; //!< O_DSYNC
+    static const int TGT_FASYNC      = 000020000; //!< FASYNC
+    static const int TGT_O_DIRECT    = 000200000; //!< O_DIRECT
+    static const int TGT_O_LARGEFILE = 000400000; //!< O_LARGEFILE
+    static const int TGT_O_DIRECTORY = 000040000; //!< O_DIRECTORY
+    static const int TGT_O_NOFOLLOW  = 000100000; //!< O_NOFOLLOW
+    static const int TGT_O_NOATIME   = 001000000; //!< O_NOATIME
+    static const int TGT_O_CLOEXEC   = 002000000; //!< O_NOATIME
+    static const int TGT_O_SYNC      = 004010000; //!< O_SYNC
+    static const int TGT_O_PATH      = 010000000; //!< O_PATH
     //@}
 
     /// For mmap().
index ce1d7664a50425c8edd336b1ae20f000d4f9098b..4861f7cb99269f8cbf1f4ac12b612c8c030cd7db 100644 (file)
@@ -38,32 +38,60 @@ SyscallFlagTransTable MipsLinux::openFlagTable[] = {
   { MipsLinux::TGT_O_RDONLY,    _O_RDONLY },
   { MipsLinux::TGT_O_WRONLY,    _O_WRONLY },
   { MipsLinux::TGT_O_RDWR,      _O_RDWR },
-  { MipsLinux::TGT_O_APPEND,    _O_APPEND },
   { MipsLinux::TGT_O_CREAT,     _O_CREAT },
-  { MipsLinux::TGT_O_TRUNC,     _O_TRUNC },
   { MipsLinux::TGT_O_EXCL,      _O_EXCL },
+#ifdef _O_NOCTTY
+  { MipsLinux::TGT_O_NOCTTY,    _O_NOCTTY },
+#endif
+  { MipsLinux::TGT_O_TRUNC,     _O_TRUNC },
+  { MipsLinux::TGT_O_APPEND,    _O_APPEND },
 #ifdef _O_NONBLOCK
   { MipsLinux::TGT_O_NONBLOCK,  _O_NONBLOCK },
 #endif
-#ifdef _O_NOCTTY
-  { MipsLinux::TGT_O_NOCTTY,    _O_NOCTTY },
+#ifdef _O_DSYNC
+  { MipsLinux::TGT_O_DSYNC,      _O_DSYNC },
+#endif
+  { MipsLinux::TGT_O_DIRECT,    _O_DIRECT },
+  { MipsLinux::TGT_O_LARGEFILE, _O_LARGEFILE },
+  { MipsLinux::TGT_O_DIRECTORY, _O_DIRECTORY },
+  { MipsLinux::TGT_O_NOFOLLOW,  _O_NOFOLLOW },
+  { MipsLinux::TGT_O_NOATIME,   _O_NOATIME },
+#ifdef _O_CLOEXEC
+  { MipsLinux::TGT_O_CLOEXEC,   _O_CLOEXEC },
 #endif
 #ifdef _O_SYNC
   { MipsLinux::TGT_O_SYNC,      _O_SYNC },
 #endif
+#ifdef _O_PATH
+  { MipsLinux::TGT_O_PATH,      _O_PATH },
+#endif
 #else /* !_MSC_VER */
   { MipsLinux::TGT_O_RDONLY,    O_RDONLY },
   { MipsLinux::TGT_O_WRONLY,    O_WRONLY },
   { MipsLinux::TGT_O_RDWR,      O_RDWR },
-  { MipsLinux::TGT_O_APPEND,    O_APPEND },
   { MipsLinux::TGT_O_CREAT,     O_CREAT },
-  { MipsLinux::TGT_O_TRUNC,     O_TRUNC },
   { MipsLinux::TGT_O_EXCL,      O_EXCL },
-  { MipsLinux::TGT_O_NONBLOCK,  O_NONBLOCK },
   { MipsLinux::TGT_O_NOCTTY,    O_NOCTTY },
+  { MipsLinux::TGT_O_TRUNC,     O_TRUNC },
+  { MipsLinux::TGT_O_APPEND,    O_APPEND },
+  { MipsLinux::TGT_O_NONBLOCK,  O_NONBLOCK },
+#ifdef O_DSYNC
+  { MipsLinux::TGT_O_DSYNC,     O_DSYNC },
+#endif
+  { MipsLinux::TGT_O_DIRECT,    O_DIRECT },
+  { MipsLinux::TGT_O_LARGEFILE, O_LARGEFILE },
+  { MipsLinux::TGT_O_DIRECTORY, O_DIRECTORY },
+  { MipsLinux::TGT_O_NOFOLLOW,  O_NOFOLLOW },
+  { MipsLinux::TGT_O_NOATIME,   O_NOATIME },
+#ifdef O_CLOEXEC
+  { MipsLinux::TGT_O_CLOEXEC,   O_CLOEXEC },
+#endif
 #ifdef O_SYNC
   { MipsLinux::TGT_O_SYNC,      O_SYNC },
 #endif
+#ifdef O_PATH
+  { MipsLinux::TGT_O_PATH,      O_PATH },
+#endif
 #endif /* _MSC_VER */
 };
 
index 50a0362dac26bc37104b63bdc979a3408c5b8bce..6e4b6a82d02f5b107fcc4ef65a64cce715f2ac48 100644 (file)
@@ -37,6 +37,41 @@ class MipsLinux : public Linux
 {
   public:
 
+    static const int TGT_SIGHUP         = 0x000001;
+    static const int TGT_SIGINT         = 0x000002;
+    static const int TGT_SIGQUIT        = 0x000003;
+    static const int TGT_SIGILL         = 0x000004;
+    static const int TGT_SIGTRAP        = 0x000005;
+    static const int TGT_SIGIOT         = 0x000006;
+    static const int TGT_SIGABRT        = 0x000006;
+    static const int TGT_SIGEMT         = 0x000007;
+    static const int TGT_SIGFPE         = 0x000008;
+    static const int TGT_SIGKILL        = 0x000009;
+    static const int TGT_SIGBUS         = 0x00000a;
+    static const int TGT_SIGSEGV        = 0x00000b;
+    static const int TGT_SIGSYS         = 0x00000c;
+    static const int TGT_SIGPIPE        = 0x00000d;
+    static const int TGT_SIGALRM        = 0x00000e;
+    static const int TGT_SIGTERM        = 0x00000f;
+    static const int TGT_SIGUSR1        = 0x000010;
+    static const int TGT_SIGUSR2        = 0x000011;
+    static const int TGT_SIGCHLD        = 0x000012;
+    static const int TGT_SIGCLD         = 0x000012;
+    static const int TGT_SIGPWR         = 0x000013;
+    static const int TGT_SIGWINCH       = 0x000014;
+    static const int TGT_SIGURG         = 0x000015;
+    static const int TGT_SIGIO          = 0x000016;
+    static const int TGT_SIGPOLL        = 0x000016;
+    static const int TGT_SIGSTOP        = 0x000017;
+    static const int TGT_SIGTSTP        = 0x000018;
+    static const int TGT_SIGCONT        = 0x000019;
+    static const int TGT_SIGTTIN        = 0x00001a;
+    static const int TGT_SIGTTOU        = 0x00001b;
+    static const int TGT_SIGVTALRM      = 0x00001c;
+    static const int TGT_SIGPROF        = 0x00001d;
+    static const int TGT_SIGXCPU        = 0x00001e;
+    static const int TGT_SIGXFSZ        = 0x00001f;
+
     /// This table maps the target open() flags to the corresponding
     /// host open() flags.
     static SyscallFlagTransTable openFlagTable[];
@@ -49,18 +84,21 @@ class MipsLinux : public Linux
     static const int TGT_O_RDONLY       = 0x00000000;   //!< O_RDONLY
     static const int TGT_O_WRONLY       = 0x00000001;   //!< O_WRONLY
     static const int TGT_O_RDWR         = 0x00000002;   //!< O_RDWR
-    static const int TGT_O_NONBLOCK     = 0x00000080;   //!< O_NONBLOCK
-    static const int TGT_O_APPEND       = 0x00000008;   //!< O_APPEND
     static const int TGT_O_CREAT        = 0x00000100;   //!< O_CREAT
-    static const int TGT_O_TRUNC        = 0x00000200;   //!< O_TRUNC
     static const int TGT_O_EXCL         = 0x00000400;   //!< O_EXCL
     static const int TGT_O_NOCTTY       = 0x00000800;   //!< O_NOCTTY
-    static const int TGT_O_SYNC         = 0x00000010;   //!< O_SYNC
-    static const int TGT_O_DRD          = 0x00010000;   //!< O_DRD
-    static const int TGT_O_DIRECTIO     = 0x00020000;   //!< O_DIRECTIO
-    static const int TGT_O_CACHE        = 0x00002000;   //!< O_CACHE
-    static const int TGT_O_DSYNC        = 0x00008000;   //!< O_DSYNC
-    static const int TGT_O_RSYNC        = 0x00040000;   //!< O_RSYNC
+    static const int TGT_O_TRUNC        = 0x00000200;   //!< O_TRUNC
+    static const int TGT_O_APPEND       = 0x00000008;   //!< O_APPEND
+    static const int TGT_O_NONBLOCK     = 0x00000080;   //!< O_NONBLOCK
+    static const int TGT_O_DSYNC        = 0x00000010;   //!< O_DSYNC
+    static const int TGT_O_DIRECT       = 0x00008000;   //!< O_DIRECT
+    static const int TGT_O_LARGEFILE    = 0x00002000;   //!< O_LARGEFILE
+    static const int TGT_O_DIRECTORY    = 0x00010000;   //!< O_DIRECTORY
+    static const int TGT_O_NOFOLLOW     = 0x00020000;   //!< O_NOFOLLOW
+    static const int TGT_O_NOATIME      = 0x00040000;   //!< O_NOATIME
+    static const int TGT_O_CLOEXEC      = 0x00080000;   //!< O_CLOEXEC
+    static const int TGT_O_SYNC         = 0x00004010;   //!< O_SYNC
+    static const int TGT_O_PATH         = 0x00200000;   //!< O_PATH
     //@}
 
     /// For mmap().
index 963233d832b5537b20d5b7d97f5765e97caa3ae5..f73dd063ba0c10d793c937a3f8a4d87b0063735c 100644 (file)
@@ -39,37 +39,65 @@ SyscallFlagTransTable PowerLinux::openFlagTable[] = {
   { PowerLinux::TGT_O_RDONLY,    _O_RDONLY },
   { PowerLinux::TGT_O_WRONLY,    _O_WRONLY },
   { PowerLinux::TGT_O_RDWR,      _O_RDWR },
-  { PowerLinux::TGT_O_APPEND,    _O_APPEND },
   { PowerLinux::TGT_O_CREAT,     _O_CREAT },
-  { PowerLinux::TGT_O_TRUNC,     _O_TRUNC },
   { PowerLinux::TGT_O_EXCL,      _O_EXCL },
+#ifdef _O_NOCTTY
+  { PowerLinux::TGT_O_NOCTTY,    _O_NOCTTY },
+#endif
+  { PowerLinux::TGT_O_TRUNC,     _O_TRUNC },
+  { PowerLinux::TGT_O_APPEND,    _O_APPEND },
 #ifdef _O_NONBLOCK
   { PowerLinux::TGT_O_NONBLOCK,  _O_NONBLOCK },
 #endif
-#ifdef _O_NOCTTY
-  { PowerLinux::TGT_O_NOCTTY,    _O_NOCTTY },
+#ifdef _O_DSYNC
+  { PowerLinux::TGT_O_DSYNC,     _O_DSYNC },
+#endif
+  { PowerLinux::TGT_FASYNC,      _O_ASYNC },
+  { PowerLinux::TGT_O_DIRECT,    _O_DIRECT },
+#ifdef _O_LARGEFILE
+  { PowerLinux::TGT_O_LARGEFILE, _O_LARGEFILE },
+#endif
+  { PowerLinux::TGT_O_DIRECTORY, _O_DIRECTORY },
+  { PowerLinux::TGT_O_NOFOLLOW,  _O_NOFOLLOW },
+  { PowerLinux::TGT_O_NOATIME,   _O_NOATIME },
+#ifdef _O_CLOEXEC
+  { PowerLinux::TGT_O_CLOEXEC,   _O_CLOEXEC },
 #endif
 #ifdef _O_SYNC
   { PowerLinux::TGT_O_SYNC,      _O_SYNC },
 #endif
-#ifdef _O_LARGEFILE
-  { PowerLinux::TGT_O_LARGEFILE, _O_LARGEFILE },
+#ifdef _O_PATH
+  { PowerLinux::TGT_O_PATH,      _O_PATH},
 #endif
 #else /* !_MSC_VER */
   { PowerLinux::TGT_O_RDONLY,    O_RDONLY },
   { PowerLinux::TGT_O_WRONLY,    O_WRONLY },
   { PowerLinux::TGT_O_RDWR,      O_RDWR },
-  { PowerLinux::TGT_O_APPEND,    O_APPEND },
   { PowerLinux::TGT_O_CREAT,     O_CREAT },
-  { PowerLinux::TGT_O_TRUNC,     O_TRUNC },
   { PowerLinux::TGT_O_EXCL,      O_EXCL },
-  { PowerLinux::TGT_O_NONBLOCK,  O_NONBLOCK },
   { PowerLinux::TGT_O_NOCTTY,    O_NOCTTY },
-#ifdef O_SYNC
-  { PowerLinux::TGT_O_SYNC,      O_SYNC },
+  { PowerLinux::TGT_O_TRUNC,     O_TRUNC },
+  { PowerLinux::TGT_O_APPEND,    O_APPEND },
+  { PowerLinux::TGT_O_NONBLOCK,  O_NONBLOCK },
+#ifdef O_DSYNC
+  { PowerLinux::TGT_O_DSYNC,     O_DSYNC },
 #endif
+  { PowerLinux::TGT_FASYNC,      O_ASYNC },
+  { PowerLinux::TGT_O_DIRECT,    O_DIRECT },
 #ifdef O_LARGEFILE
   { PowerLinux::TGT_O_LARGEFILE, O_LARGEFILE },
+#endif
+  { PowerLinux::TGT_O_DIRECTORY, O_DIRECTORY },
+  { PowerLinux::TGT_O_NOFOLLOW,  O_NOFOLLOW },
+  { PowerLinux::TGT_O_NOATIME,   O_NOATIME },
+#ifdef O_CLOEXEC
+  { PowerLinux::TGT_O_CLOEXEC,   O_CLOEXEC },
+#endif
+#ifdef O_SYNC
+  { PowerLinux::TGT_O_SYNC,      O_SYNC },
+#endif
+#ifdef O_PATH
+  { PowerLinux::TGT_O_PATH,      O_PATH},
 #endif
 #endif /* _MSC_VER */
 };
index 41b2fb6dec7e5c3592e47d538161c3cb46824f49..656f4402e882ddbccd531c2c4dfd948ed1fa17fa 100644 (file)
@@ -98,6 +98,41 @@ class PowerLinux : public Linux
         int32_t tms_cstime;     //!< system time of children
     };
 
+    static const int TGT_SIGHUP         = 0x000001;
+    static const int TGT_SIGINT         = 0x000002;
+    static const int TGT_SIGQUIT        = 0x000003;
+    static const int TGT_SIGILL         = 0x000004;
+    static const int TGT_SIGTRAP        = 0x000005;
+    static const int TGT_SIGABRT        = 0x000006;
+    static const int TGT_SIGIOT         = 0x000006;
+    static const int TGT_SIGBUS         = 0x000007;
+    static const int TGT_SIGFPE         = 0x000008;
+    static const int TGT_SIGKILL        = 0x000009;
+    static const int TGT_SIGUSR1        = 0x00000a;
+    static const int TGT_SIGSEGV        = 0x00000b;
+    static const int TGT_SIGUSR2        = 0x00000c;
+    static const int TGT_SIGPIPE        = 0x00000d;
+    static const int TGT_SIGALRM        = 0x00000e;
+    static const int TGT_SIGTERM        = 0x00000f;
+    static const int TGT_SIGSTKFLT      = 0x000010;
+    static const int TGT_SIGCHLD        = 0x000011;
+    static const int TGT_SIGCONT        = 0x000012;
+    static const int TGT_SIGSTOP        = 0x000013;
+    static const int TGT_SIGTSTP        = 0x000014;
+    static const int TGT_SIGTTIN        = 0x000015;
+    static const int TGT_SIGTTOU        = 0x000016;
+    static const int TGT_SIGURG         = 0x000017;
+    static const int TGT_SIGXCPU        = 0x000018;
+    static const int TGT_SIGXFSZ        = 0x000019;
+    static const int TGT_SIGVTALRM      = 0x00001a;
+    static const int TGT_SIGPROF        = 0x00001b;
+    static const int TGT_SIGWINCH       = 0x00001c;
+    static const int TGT_SIGIO          = 0x00001d;
+    static const int TGT_SIGPOLL        = 0x00001d;
+    static const int TGT_SIGPWR         = 0x00001e;
+    static const int TGT_SIGSYS         = 0x00001f;
+    static const int TGT_SIGUNUSED      = 0x00001f;
+
     /// This table maps the target open() flags to the corresponding
     /// host open() flags.
     static SyscallFlagTransTable openFlagTable[];
@@ -107,22 +142,25 @@ class PowerLinux : public Linux
 
     //@{
     /// open(2) flag values.
-    static const int TGT_O_RDONLY    = 00000000; //!< O_RDONLY
-    static const int TGT_O_WRONLY    = 00000001; //!< O_WRONLY
-    static const int TGT_O_RDWR      = 00000002; //!< O_RDWR
-    static const int TGT_O_CREAT     = 00000100; //!< O_CREAT
-    static const int TGT_O_EXCL      = 00000200; //!< O_EXCL
-    static const int TGT_O_NOCTTY    = 00000400; //!< O_NOCTTY
-    static const int TGT_O_TRUNC     = 00001000; //!< O_TRUNC
-    static const int TGT_O_APPEND    = 00002000; //!< O_APPEND
-    static const int TGT_O_NONBLOCK  = 00004000; //!< O_NONBLOCK
-    static const int TGT_O_SYNC      = 00010000; //!< O_SYNC
-    static const int TGT_FASYNC      = 00020000; //!< FASYNC
-    static const int TGT_O_DIRECTORY = 00040000; //!< O_DIRECTORY
-    static const int TGT_O_NOFOLLOW  = 00100000; //!< O_NOFOLLOW
-    static const int TGT_O_LARGEFILE = 00200000; //!< O_LARGEFILE
-    static const int TGT_O_DIRECT    = 00400000; //!< O_DIRECT
-    static const int TGT_O_NOATIME   = 01000000; //!< O_NOATIME
+    static const int TGT_O_RDONLY    = 000000000; //!< O_RDONLY
+    static const int TGT_O_WRONLY    = 000000001; //!< O_WRONLY
+    static const int TGT_O_RDWR      = 000000002; //!< O_RDWR
+    static const int TGT_O_CREAT     = 000000100; //!< O_CREAT
+    static const int TGT_O_EXCL      = 000000200; //!< O_EXCL
+    static const int TGT_O_NOCTTY    = 000000400; //!< O_NOCTTY
+    static const int TGT_O_TRUNC     = 000001000; //!< O_TRUNC
+    static const int TGT_O_APPEND    = 000002000; //!< O_APPEND
+    static const int TGT_O_NONBLOCK  = 000004000; //!< O_NONBLOCK
+    static const int TGT_O_DSYNC     = 000010000; //!< O_DSYNC
+    static const int TGT_FASYNC      = 000020000; //!< FASYNC
+    static const int TGT_O_DIRECT    = 000400000; //!< O_DIRECT
+    static const int TGT_O_LARGEFILE = 000200000; //!< O_LARGEFILE
+    static const int TGT_O_DIRECTORY = 000040000; //!< O_DIRECTORY
+    static const int TGT_O_NOFOLLOW  = 000100000; //!< O_NOFOLLOW
+    static const int TGT_O_NOATIME   = 001000000; //!< O_NOATIME
+    static const int TGT_O_CLOEXEC   = 002000000; //!< O_CLOEXEC
+    static const int TGT_O_SYNC      = 004010000; //!< O_SYNC
+    static const int TGT_O_PATH      = 010000000; //!< O_PATH
     //@}
 
     /// For mmap().
index f3c9c565c575a97180298bf5fee8b5e018c13085..2f91cf81d712411316a4ac84081c4ea936a1c2ef 100644 (file)
 // open(2) flags translation table
 SyscallFlagTransTable SparcLinux::openFlagTable[] = {
 #ifdef _MSC_VER
-  { SparcLinux::TGT_O_RDONLY,   _O_RDONLY },
-  { SparcLinux::TGT_O_WRONLY,   _O_WRONLY },
-  { SparcLinux::TGT_O_RDWR,     _O_RDWR },
-  { SparcLinux::TGT_O_APPEND,   _O_APPEND },
-  { SparcLinux::TGT_O_CREAT,    _O_CREAT },
-  { SparcLinux::TGT_O_TRUNC,    _O_TRUNC },
-  { SparcLinux::TGT_O_EXCL,     _O_EXCL },
+  { SparcLinux::TGT_O_RDONLY,    _O_RDONLY },
+  { SparcLinux::TGT_O_WRONLY,    _O_WRONLY },
+  { SparcLinux::TGT_O_RDWR,      _O_RDWR },
+  { SparcLinux::TGT_O_CREAT,     _O_CREAT },
+  { SparcLinux::TGT_O_EXCL,      _O_EXCL },
+#ifdef _O_NOCTTY
+  { SparcLinux::TGT_O_NOCTTY,    _O_NOCTTY },
+#endif
+  { SparcLinux::TGT_O_TRUNC,     _O_TRUNC },
+  { SparcLinux::TGT_O_APPEND,    _O_APPEND },
 #ifdef _O_NONBLOCK
-  { SparcLinux::TGT_O_NONBLOCK, _O_NONBLOCK },
+  { SparcLinux::TGT_O_NONBLOCK,  _O_NONBLOCK },
 #endif
-#ifdef _O_NOCTTY
-  { SparcLinux::TGT_O_NOCTTY,   _O_NOCTTY },
+  { SparcLinux::TGT_O_DSYNC,     _O_DSYNC },
+  { SparcLinux::TGT_FASYNC,      _O_ASYNC },
+  { SparcLinux::TGT_O_DIRECT,    _O_DIRECT },
+  { SparcLinux::TGT_O_LARGEFILE, _O_LARGEFILE },
+  { SparcLinux::TGT_O_DIRECTORY, _O_DIRECTORY },
+  { SparcLinux::TGT_O_NOFOLLOW,  _O_NOFOLLOW },
+  { SparcLinux::TGT_O_NOATIME,   _O_NOATIME },
+#ifdef _O_CLOEXEC
+  { SparcLinux::TGT_O_CLOEXEC,   _O_CLOEXEC },
 #endif
 #ifdef _O_SYNC
-  { SparcLinux::TGT_O_SYNC,     _O_SYNC },
+  { SparcLinux::TGT_O_SYNC,      _O_SYNC },
+#endif
+#ifdef _O_PATH
+  { SparcLinux::TGT_O_PATH,      _O_PATH },
 #endif
 #else /* !_MSC_VER */
-  { SparcLinux::TGT_O_RDONLY,   O_RDONLY },
-  { SparcLinux::TGT_O_WRONLY,   O_WRONLY },
-  { SparcLinux::TGT_O_RDWR,     O_RDWR },
-  { SparcLinux::TGT_O_APPEND,   O_APPEND },
-  { SparcLinux::TGT_O_CREAT,    O_CREAT },
-  { SparcLinux::TGT_O_TRUNC,    O_TRUNC },
-  { SparcLinux::TGT_O_EXCL,     O_EXCL },
-  { SparcLinux::TGT_O_NONBLOCK, O_NONBLOCK },
-  { SparcLinux::TGT_O_NOCTTY,   O_NOCTTY },
+  { SparcLinux::TGT_O_RDONLY,    O_RDONLY },
+  { SparcLinux::TGT_O_WRONLY,    O_WRONLY },
+  { SparcLinux::TGT_O_RDWR,      O_RDWR },
+  { SparcLinux::TGT_O_CREAT,     O_CREAT },
+  { SparcLinux::TGT_O_EXCL,      O_EXCL },
+  { SparcLinux::TGT_O_NOCTTY,    O_NOCTTY },
+  { SparcLinux::TGT_O_TRUNC,     O_TRUNC },
+  { SparcLinux::TGT_O_APPEND,    O_APPEND },
+  { SparcLinux::TGT_O_NONBLOCK,  O_NONBLOCK },
+  { SparcLinux::TGT_FASYNC,      O_ASYNC },
+  { SparcLinux::TGT_O_DIRECT,    O_DIRECT },
+  { SparcLinux::TGT_O_LARGEFILE, O_LARGEFILE },
+  { SparcLinux::TGT_O_DIRECTORY, O_DIRECTORY },
+  { SparcLinux::TGT_O_NOFOLLOW,  O_NOFOLLOW },
+  { SparcLinux::TGT_O_NOATIME,   O_NOATIME },
+#ifdef O_CLOEXEC
+  { SparcLinux::TGT_O_CLOEXEC,   O_CLOEXEC },
+#endif
 #ifdef O_SYNC
-  { SparcLinux::TGT_O_SYNC,     O_SYNC },
+  { SparcLinux::TGT_O_SYNC,      O_SYNC },
+#endif
+#ifdef _O_PATH
+  { SparcLinux::TGT_O_PATH,      O_PATH },
 #endif
 #endif /* _MSC_VER */
 };
index b48dc7c6d9a2543b0a2e05421b7b25f4a5500397..138f178b74dcb8c4bcdca4c9f5b624cb7473e730 100644 (file)
@@ -56,6 +56,44 @@ class SparcLinux : public Linux
         uint64_t __unused4[2];
     } tgt_stat;
 
+    // SPARC receives weird subsignals for several of its signals. If you
+    // find yourself needing to implement these in detail, look at the
+    // Linux source.
+    static const int TGT_SIGHUP         = 0x000001;
+    static const int TGT_SIGINT         = 0x000002;
+    static const int TGT_SIGQUIT        = 0x000003;
+    static const int TGT_SIGILL         = 0x000004;
+    static const int TGT_SIGTRAP        = 0x000005;
+    static const int TGT_SIGABRT        = 0x000006;
+    static const int TGT_SIGIOT         = 0x000006;
+    static const int TGT_SIGEMT         = 0x000007;
+    static const int TGT_SIGFPE         = 0x000008;
+    static const int TGT_SIGKILL        = 0x000009;
+    static const int TGT_SIGBUS         = 0x00000a;
+    static const int TGT_SIGSEGV        = 0x00000b;
+    static const int TGT_SIGSYS         = 0x00000c;
+    static const int TGT_SIGPIPE        = 0x00000d;
+    static const int TGT_SIGALRM        = 0x00000e;
+    static const int TGT_SIGTERM        = 0x00000f;
+    static const int TGT_SIGURG         = 0x000010;
+    static const int TGT_SIGSTOP        = 0x000011;
+    static const int TGT_SIGTSTP        = 0x000012;
+    static const int TGT_SIGCONT        = 0x000013;
+    static const int TGT_SIGCHLD        = 0x000014;
+    static const int TGT_SIGTTIN        = 0x000015;
+    static const int TGT_SIGTTOU        = 0x000016;
+    static const int TGT_SIGIO          = 0x000017;
+    static const int TGT_SIGPOLL        = 0x000017;
+    static const int TGT_SIGXCPU        = 0x000018;
+    static const int TGT_SIGXFSZ        = 0x000019;
+    static const int TGT_SIGVTALRM      = 0x00001a;
+    static const int TGT_SIGPROF        = 0x00001b;
+    static const int TGT_SIGWINCH       = 0x00001c;
+    static const int TGT_SIGLOST        = 0x00001d;
+    static const int TGT_SIGPWR         = 0x00001d;
+    static const int TGT_SIGUSR1        = 0x00001e;
+    static const int TGT_SIGUSR2        = 0x00001f;
+
     static SyscallFlagTransTable openFlagTable[];
 
     static const int TGT_O_RDONLY       = 0x00000000;   //!< O_RDONLY
@@ -63,16 +101,20 @@ class SparcLinux : public Linux
     static const int TGT_O_RDWR         = 0x00000002;   //!< O_RDWR
     static const int TGT_O_NONBLOCK     = 0x00004000;   //!< O_NONBLOCK
     static const int TGT_O_APPEND       = 0x00000008;   //!< O_APPEND
+    static const int TGT_FASYNC         = 0x00000040;   //!< FASYNC
     static const int TGT_O_CREAT        = 0x00000200;   //!< O_CREAT
     static const int TGT_O_TRUNC        = 0x00000400;   //!< O_TRUNC
     static const int TGT_O_EXCL         = 0x00000800;   //!< O_EXCL
     static const int TGT_O_NOCTTY       = 0x00008000;   //!< O_NOCTTY
     static const int TGT_O_SYNC         = 0x00002000;   //!< O_SYNC
-//    static const int TGT_O_DRD        = 0x00010000;   //!< O_DRD
-//    static const int TGT_O_DIRECTIO   = 0x00020000;   //!< O_DIRECTIO
-//    static const int TGT_O_CACHE      = 0x00002000;   //!< O_CACHE
-//    static const int TGT_O_DSYNC      = 0x00008000;   //!< O_DSYNC
-//    static const int TGT_O_RSYNC      = 0x00040000;   //!< O_RSYNC
+    static const int TGT_O_LARGEFILE    = 0x00040000;   //!< O_LARGEFILE
+    static const int TGT_O_DIRECT       = 0x00100000;   //!< O_DIRECT
+    static const int TGT_O_NOATIME      = 0x00200000;   //!< O_NOATIME
+    static const int TGT_O_CLOEXEC      = 0x00400000;   //!< O_CLOEXEC
+    static const int TGT_O_PATH         = 0x01000000;   //!< O_PATH
+
+    static const int TGT_O_DIRECTORY    = 000200000;   //!< O_DIRECTORY
+    static const int TGT_O_NOFOLLOW     = 000400000;   //!< O_NOFOLLOW
 
     static const int NUM_OPEN_FLAGS;
 
index 1b6268d653c125b95030d66f0b2401ae57c54902..2eab555ce0de0e477016552b2056527147f6737a 100644 (file)
 // open(2) flags translation table
 SyscallFlagTransTable X86Linux64::openFlagTable[] = {
 #ifdef _MSC_VER
-  { TGT_O_RDONLY, _O_RDONLY },
-  { TGT_O_WRONLY, _O_WRONLY },
-  { TGT_O_RDWR, _O_RDWR },
-  { TGT_O_APPEND, _O_APPEND },
-  { TGT_O_CREAT, _O_CREAT },
-  { TGT_O_TRUNC, _O_TRUNC },
-  { TGT_O_EXCL, _O_EXCL },
+  { X86Linux64::TGT_O_RDONLY,    _O_RDONLY },
+  { X86Linux64::TGT_O_WRONLY,    _O_WRONLY },
+  { X86Linux64::TGT_O_RDWR,      _O_RDWR },
+  { X86Linux64::TGT_O_CREAT,     _O_CREAT },
+  { X86Linux64::TGT_O_EXCL,      _O_EXCL },
+#ifdef _O_NOCTTY
+  { X86Linux64::TGT_O_NOCTTY,    _O_NOCTTY },
+#endif
+  { X86Linux64::TGT_O_TRUNC,     _O_TRUNC },
+  { X86Linux64::TGT_O_APPEND,    _O_APPEND },
 #ifdef _O_NONBLOCK
-  { TGT_O_NONBLOCK, _O_NONBLOCK },
+  { X86Linux64::TGT_O_NONBLOCK,  _O_NONBLOCK },
 #endif
-#ifdef _O_NOCTTY
-  { TGT_O_NOCTTY, _O_NOCTTY },
+#ifdef _O_DSYNC
+  { X86Linux64::TGT_O_DSYNC ,    _O_DSYNC },
+#endif
+  { X86Linux64::TGT_FASYNC,      _O_ASYNC },
+  { X86Linux64::TGT_O_DIRECT,    _O_DIRECT },
+  { X86Linux64::TGT_O_LARGEFILE, _O_LARGEFILE },
+  { X86Linux64::TGT_O_DIRECTORY, _O_DIRECTORY },
+  { X86Linux64::TGT_O_NOFOLLOW,  _O_NOFOLLOW },
+  { X86Linux64::TGT_O_NOATIME,   _O_NOATIME },
+#ifdef _O_CLOEXEC
+  { X86Linux64::TGT_O_CLOEXEC,   _O_CLOEXEC },
 #endif
 #ifdef _O_SYNC
-  { TGT_O_SYNC, _O_SYNC },
+  { X86Linux64::TGT_O_SYNC,      _O_SYNC },
+#endif
+#ifdef _O_PATH
+  { X86Linux64::TGT_O_PATH ,     _O_PATH },
 #endif
 #else /* !_MSC_VER */
-  { TGT_O_RDONLY, O_RDONLY },
-  { TGT_O_WRONLY, O_WRONLY },
-  { TGT_O_RDWR, O_RDWR },
-  { TGT_O_APPEND, O_APPEND },
-  { TGT_O_CREAT, O_CREAT },
-  { TGT_O_TRUNC, O_TRUNC },
-  { TGT_O_EXCL, O_EXCL },
-  { TGT_O_NONBLOCK, O_NONBLOCK },
-  { TGT_O_NOCTTY, O_NOCTTY },
+  { X86Linux64::TGT_O_RDONLY,    O_RDONLY },
+  { X86Linux64::TGT_O_WRONLY,    O_WRONLY },
+  { X86Linux64::TGT_O_RDWR,      O_RDWR },
+  { X86Linux64::TGT_O_CREAT,     O_CREAT },
+  { X86Linux64::TGT_O_EXCL,      O_EXCL },
+  { X86Linux64::TGT_O_NOCTTY,    O_NOCTTY },
+  { X86Linux64::TGT_O_TRUNC,     O_TRUNC },
+  { X86Linux64::TGT_O_APPEND,    O_APPEND },
+  { X86Linux64::TGT_O_NONBLOCK,  O_NONBLOCK },
+#ifdef O_DSYNC
+  { X86Linux64::TGT_O_DSYNC,     O_DSYNC },
+#endif
+  { X86Linux64::TGT_FASYNC,      O_ASYNC },
+  { X86Linux64::TGT_O_DIRECT,    O_DIRECT },
+  { X86Linux64::TGT_O_LARGEFILE, O_LARGEFILE },
+  { X86Linux64::TGT_O_DIRECTORY, O_DIRECTORY },
+  { X86Linux64::TGT_O_NOFOLLOW,  O_NOFOLLOW },
+  { X86Linux64::TGT_O_NOATIME,   O_NOATIME },
+#ifdef O_CLOEXEC
+  { X86Linux64::TGT_O_CLOEXEC,   O_CLOEXEC },
+#endif
 #ifdef O_SYNC
-  { TGT_O_SYNC, O_SYNC },
+  { X86Linux64::TGT_O_SYNC,      O_SYNC },
+#endif
+#ifdef O_PATH
+  { X86Linux64::TGT_O_PATH,      O_PATH },
 #endif
 #endif /* _MSC_VER */
 };
@@ -83,34 +113,64 @@ const int X86Linux64::NUM_OPEN_FLAGS =
 // open(2) flags translation table
 SyscallFlagTransTable X86Linux32::openFlagTable[] = {
 #ifdef _MSC_VER
-  { TGT_O_RDONLY, _O_RDONLY },
-  { TGT_O_WRONLY, _O_WRONLY },
-  { TGT_O_RDWR, _O_RDWR },
-  { TGT_O_APPEND, _O_APPEND },
-  { TGT_O_CREAT, _O_CREAT },
-  { TGT_O_TRUNC, _O_TRUNC },
-  { TGT_O_EXCL, _O_EXCL },
+  { X86Linux32::TGT_O_RDONLY,    _O_RDONLY },
+  { X86Linux32::TGT_O_WRONLY,    _O_WRONLY },
+  { X86Linux32::TGT_O_RDWR,      _O_RDWR },
+  { X86Linux32::TGT_O_CREAT,     _O_CREAT },
+  { X86Linux32::TGT_O_EXCL,      _O_EXCL },
+#ifdef _O_NOCTTY
+  { X86Linux32::TGT_O_NOCTTY,    _O_NOCTTY },
+#endif
+  { X86Linux32::TGT_O_TRUNC,     _O_TRUNC },
+  { X86Linux32::TGT_O_APPEND,    _O_APPEND },
 #ifdef _O_NONBLOCK
-  { TGT_O_NONBLOCK, _O_NONBLOCK },
+  { X86Linux32::TGT_O_NONBLOCK,  _O_NONBLOCK },
 #endif
-#ifdef _O_NOCTTY
-  { TGT_O_NOCTTY, _O_NOCTTY },
+#ifdef O_DSYNC
+  { X86Linux32::TGT_O_DSYNC,     _O_DSYNC },
+#endif
+  { X86Linux32::TGT_FASYNC,      _O_ASYNC },
+  { X86Linux32::TGT_O_DIRECT,    _O_DIRECT },
+  { X86Linux32::TGT_O_LARGEFILE, _O_LARGEFILE },
+  { X86Linux32::TGT_O_DIRECTORY, _O_DIRECTORY },
+  { X86Linux32::TGT_O_NOFOLLOW,  _O_NOFOLLOW },
+  { X86Linux32::TGT_O_NOATIME,   _O_NOATIME },
+#ifdef _O_CLOEXEC
+  { X86Linux32::TGT_O_CLOEXEC,   _O_CLOEXEC },
 #endif
 #ifdef _O_SYNC
-  { TGT_O_SYNC, _O_SYNC },
+  { X86Linux32::TGT_O_SYNC,      _O_SYNC },
+#endif
+#ifdef _O_PATH
+  { X86Linux32::TGT_O_PATH,      _O_PATH },
 #endif
 #else /* !_MSC_VER */
-  { TGT_O_RDONLY, O_RDONLY },
-  { TGT_O_WRONLY, O_WRONLY },
-  { TGT_O_RDWR, O_RDWR },
-  { TGT_O_APPEND, O_APPEND },
-  { TGT_O_CREAT, O_CREAT },
-  { TGT_O_TRUNC, O_TRUNC },
-  { TGT_O_EXCL, O_EXCL },
-  { TGT_O_NONBLOCK, O_NONBLOCK },
-  { TGT_O_NOCTTY, O_NOCTTY },
+  { X86Linux32::TGT_O_RDONLY,    O_RDONLY },
+  { X86Linux32::TGT_O_WRONLY,    O_WRONLY },
+  { X86Linux32::TGT_O_RDWR,      O_RDWR },
+  { X86Linux32::TGT_O_CREAT,     O_CREAT },
+  { X86Linux32::TGT_O_EXCL,      O_EXCL },
+  { X86Linux32::TGT_O_NOCTTY,    O_NOCTTY },
+  { X86Linux32::TGT_O_TRUNC,     O_TRUNC },
+  { X86Linux32::TGT_O_APPEND,    O_APPEND },
+  { X86Linux32::TGT_O_NONBLOCK,  O_NONBLOCK },
+#ifdef O_DSYNC
+  { X86Linux32::TGT_O_DSYNC,     O_DSYNC },
+#endif
+  { X86Linux32::TGT_FASYNC,      O_ASYNC },
+  { X86Linux32::TGT_O_DIRECT,    O_DIRECT },
+  { X86Linux32::TGT_O_LARGEFILE, O_LARGEFILE },
+  { X86Linux32::TGT_O_DIRECTORY, O_DIRECTORY },
+  { X86Linux32::TGT_O_NOFOLLOW,  O_NOFOLLOW },
+  { X86Linux32::TGT_O_NOATIME,   O_NOATIME },
+#ifdef O_CLOEXEC
+  { X86Linux32::TGT_O_CLOEXEC,   O_CLOEXEC },
+#endif
 #ifdef O_SYNC
-  { TGT_O_SYNC, O_SYNC },
+  { X86Linux32::TGT_O_SYNC,      O_SYNC },
+#endif
+#ifdef O_PATH
+  { X86Linux32::TGT_O_PATH,      O_PATH },
 #endif
 #endif /* _MSC_VER */
 };
index 2fd61471e4f15e093a4e27768ac6fd6ebb8ac9f3..854ab00a0d905c678d4ff9c5e1a50de2a0da458c 100644 (file)
@@ -67,25 +67,62 @@ class X86Linux64 : public Linux
         int64_t unused0[3];
     } tgt_stat64;
 
+    static const int TGT_SIGHUP         = 0x000001;
+    static const int TGT_SIGINT         = 0x000002;
+    static const int TGT_SIGQUIT        = 0x000003;
+    static const int TGT_SIGILL         = 0x000004;
+    static const int TGT_SIGTRAP        = 0x000005;
+    static const int TGT_SIGABRT        = 0x000006;
+    static const int TGT_SIGIOT         = 0x000006;
+    static const int TGT_SIGBUS         = 0x000007;
+    static const int TGT_SIGFPE         = 0x000008;
+    static const int TGT_SIGKILL        = 0x000009;
+    static const int TGT_SIGUSR1        = 0x00000a;
+    static const int TGT_SIGSEGV        = 0x00000b;
+    static const int TGT_SIGUSR2        = 0x00000c;
+    static const int TGT_SIGPIPE        = 0x00000d;
+    static const int TGT_SIGALRM        = 0x00000e;
+    static const int TGT_SIGTERM        = 0x00000f;
+    static const int TGT_SIGSTKFLT      = 0x000010;
+    static const int TGT_SIGCHLD        = 0x000011;
+    static const int TGT_SIGCONT        = 0x000012;
+    static const int TGT_SIGSTOP        = 0x000013;
+    static const int TGT_SIGTSTP        = 0x000014;
+    static const int TGT_SIGTTIN        = 0x000015;
+    static const int TGT_SIGTTOU        = 0x000016;
+    static const int TGT_SIGURG         = 0x000017;
+    static const int TGT_SIGXCPU        = 0x000018;
+    static const int TGT_SIGXFSZ        = 0x000019;
+    static const int TGT_SIGVTALRM      = 0x00001a;
+    static const int TGT_SIGPROF        = 0x00001b;
+    static const int TGT_SIGWINCH       = 0x00001c;
+    static const int TGT_SIGIO          = 0x00001d;
+    static const int TGT_SIGPOLL        = 0x00001d;
+    static const int TGT_SIGPWR         = 0x00001e;
+    static const int TGT_SIGSYS         = 0x00001f;
+    static const int TGT_SIGUNUSED      = 0x00001f;
+
     static SyscallFlagTransTable openFlagTable[];
 
-    static const int TGT_O_RDONLY       = 00000000;     //!< O_RDONLY
-    static const int TGT_O_WRONLY       = 00000001;     //!< O_WRONLY
-    static const int TGT_O_RDWR         = 00000002;     //!< O_RDWR
-    static const int TGT_O_NONBLOCK     = 00004000;     //!< O_NONBLOCK
-    static const int TGT_O_APPEND       = 00002000;     //!< O_APPEND
-    static const int TGT_O_CREAT        = 00000100;     //!< O_CREAT
-    static const int TGT_O_TRUNC        = 00001000;     //!< O_TRUNC
-    static const int TGT_O_EXCL         = 00000200;     //!< O_EXCL
-    static const int TGT_O_NOCTTY       = 00000400;     //!< O_NOCTTY
-    static const int TGT_O_SYNC         = 00010000;     //!< O_SYNC
-    static const int TGT_O_ASYNC        = 00020000;
-    static const int TGT_O_DIRECT       = 00040000;     //!< O_DIRECTIO
-    static const int TGT_O_LARGEFILE    = 00100000;
-    static const int TGT_O_DIRECTORY    = 00200000;
-    static const int TGT_O_NOFOLLOW     = 00400000;
-    static const int TGT_O_NOATIME      = 01000000;
-    static const int TGT_O_CLOEXEC      = 02000000;
+    static const int TGT_O_RDONLY       = 000000000;     //!< O_RDONLY
+    static const int TGT_O_WRONLY       = 000000001;     //!< O_WRONLY
+    static const int TGT_O_RDWR         = 000000002;     //!< O_RDWR
+    static const int TGT_O_CREAT        = 000000100;     //!< O_CREAT
+    static const int TGT_O_EXCL         = 000000200;     //!< O_EXCL
+    static const int TGT_O_NOCTTY       = 000000400;     //!< O_NOCTTY
+    static const int TGT_O_TRUNC        = 000001000;     //!< O_TRUNC
+    static const int TGT_O_APPEND       = 000002000;     //!< O_APPEND
+    static const int TGT_O_NONBLOCK     = 000004000;     //!< O_NONBLOCK
+    static const int TGT_O_DSYNC        = 000010000;
+    static const int TGT_FASYNC         = 000020000;
+    static const int TGT_O_DIRECT       = 000040000;     //!< O_DIRECTIO
+    static const int TGT_O_LARGEFILE    = 000100000;
+    static const int TGT_O_DIRECTORY    = 000200000;
+    static const int TGT_O_NOFOLLOW     = 000400000;
+    static const int TGT_O_NOATIME      = 001000000;
+    static const int TGT_O_CLOEXEC      = 002000000;
+    static const int TGT_O_SYNC         = 004010000;     //!< O_SYNC
+    static const int TGT_O_PATH         = 010000000;
 
     static const int NUM_OPEN_FLAGS;
 
@@ -140,25 +177,62 @@ class X86Linux32 : public Linux
         uint64_t st_ino;
     } __attribute__((__packed__)) tgt_stat64;
 
+    static const int TGT_SIGHUP         = 0x000001;
+    static const int TGT_SIGINT         = 0x000002;
+    static const int TGT_SIGQUIT        = 0x000003;
+    static const int TGT_SIGILL         = 0x000004;
+    static const int TGT_SIGTRAP        = 0x000005;
+    static const int TGT_SIGABRT        = 0x000006;
+    static const int TGT_SIGIOT         = 0x000006;
+    static const int TGT_SIGBUS         = 0x000007;
+    static const int TGT_SIGFPE         = 0x000008;
+    static const int TGT_SIGKILL        = 0x000009;
+    static const int TGT_SIGUSR1        = 0x00000a;
+    static const int TGT_SIGSEGV        = 0x00000b;
+    static const int TGT_SIGUSR2        = 0x00000c;
+    static const int TGT_SIGPIPE        = 0x00000d;
+    static const int TGT_SIGALRM        = 0x00000e;
+    static const int TGT_SIGTERM        = 0x00000f;
+    static const int TGT_SIGSTKFLT      = 0x000010;
+    static const int TGT_SIGCHLD        = 0x000011;
+    static const int TGT_SIGCONT        = 0x000012;
+    static const int TGT_SIGSTOP        = 0x000013;
+    static const int TGT_SIGTSTP        = 0x000014;
+    static const int TGT_SIGTTIN        = 0x000015;
+    static const int TGT_SIGTTOU        = 0x000016;
+    static const int TGT_SIGURG         = 0x000017;
+    static const int TGT_SIGXCPU        = 0x000018;
+    static const int TGT_SIGXFSZ        = 0x000019;
+    static const int TGT_SIGVTALRM      = 0x00001a;
+    static const int TGT_SIGPROF        = 0x00001b;
+    static const int TGT_SIGWINCH       = 0x00001c;
+    static const int TGT_SIGIO          = 0x00001d;
+    static const int TGT_SIGPOLL        = 0x00001d;
+    static const int TGT_SIGPWR         = 0x00001e;
+    static const int TGT_SIGSYS         = 0x00001f;
+    static const int TGT_SIGUNUSED      = 0x00001f;
+
     static SyscallFlagTransTable openFlagTable[];
 
-    static const int TGT_O_RDONLY       = 00000000;     //!< O_RDONLY
-    static const int TGT_O_WRONLY       = 00000001;     //!< O_WRONLY
-    static const int TGT_O_RDWR         = 00000002;     //!< O_RDWR
-    static const int TGT_O_NONBLOCK     = 00004000;     //!< O_NONBLOCK
-    static const int TGT_O_APPEND       = 00002000;     //!< O_APPEND
-    static const int TGT_O_CREAT        = 00000100;     //!< O_CREAT
-    static const int TGT_O_TRUNC        = 00001000;     //!< O_TRUNC
-    static const int TGT_O_EXCL         = 00000200;     //!< O_EXCL
-    static const int TGT_O_NOCTTY       = 00000400;     //!< O_NOCTTY
-    static const int TGT_O_SYNC         = 00010000;     //!< O_SYNC
-    static const int TGT_O_ASYNC        = 00020000;
-    static const int TGT_O_DIRECT       = 00040000;     //!< O_DIRECTIO
-    static const int TGT_O_LARGEFILE    = 00100000;
-    static const int TGT_O_DIRECTORY    = 00200000;
-    static const int TGT_O_NOFOLLOW     = 00400000;
-    static const int TGT_O_NOATIME      = 01000000;
-    static const int TGT_O_CLOEXEC      = 02000000;
+    static const int TGT_O_RDONLY       = 000000000;     //!< O_RDONLY
+    static const int TGT_O_WRONLY       = 000000001;     //!< O_WRONLY
+    static const int TGT_O_RDWR         = 000000002;     //!< O_RDWR
+    static const int TGT_O_CREAT        = 000000100;     //!< O_CREAT
+    static const int TGT_O_EXCL         = 000000200;     //!< O_EXCL
+    static const int TGT_O_NOCTTY       = 000000400;     //!< O_NOCTTY
+    static const int TGT_O_TRUNC        = 000001000;     //!< O_TRUNC
+    static const int TGT_O_APPEND       = 000002000;     //!< O_APPEND
+    static const int TGT_O_NONBLOCK     = 000004000;     //!< O_NONBLOCK
+    static const int TGT_O_DSYNC        = 000010000;     //!< O_DSYNC
+    static const int TGT_FASYNC         = 000020000;
+    static const int TGT_O_DIRECT       = 000040000;     //!< O_DIRECTIO
+    static const int TGT_O_LARGEFILE    = 000100000;
+    static const int TGT_O_DIRECTORY    = 000200000;
+    static const int TGT_O_NOFOLLOW     = 000400000;
+    static const int TGT_O_NOATIME      = 001000000;
+    static const int TGT_O_CLOEXEC      = 002000000;
+    static const int TGT_O_SYNC         = 004010000;     //!< O_SYNC
+    static const int TGT_O_PATH         = 010000000;
 
     static const int NUM_OPEN_FLAGS;
 
index 475f9e4381f02153e65cf869d0eb64cd62d73257..7833419484684889df39c10d615d7407f3c9e9b3 100644 (file)
@@ -239,6 +239,29 @@ class Linux : public OperatingSystem
     // for MREMAP
     static const unsigned TGT_MREMAP_MAYMOVE    = 0x1;
     static const unsigned TGT_MREMAP_FIXED      = 0x2;
+
+    static const unsigned TGT_CLONE_VM              = 0x00000100;
+    static const unsigned TGT_CLONE_FS              = 0x00000200;
+    static const unsigned TGT_CLONE_FILES           = 0x00000400;
+    static const unsigned TGT_CLONE_SIGHAND         = 0x00000800;
+    static const unsigned TGT_CLONE_PTRACE          = 0x00002000;
+    static const unsigned TGT_CLONE_VFORK           = 0x00004000;
+    static const unsigned TGT_CLONE_PARENT          = 0x00008000;
+    static const unsigned TGT_CLONE_THREAD          = 0x00010000;
+    static const unsigned TGT_CLONE_NEWNS           = 0x00020000;
+    static const unsigned TGT_CLONE_SYSVSEM         = 0x00040000;
+    static const unsigned TGT_CLONE_SETTLS          = 0x00080000;
+    static const unsigned TGT_CLONE_PARENT_SETTID   = 0x00100000;
+    static const unsigned TGT_CLONE_CHILD_CLEARTID  = 0x00200000;
+    static const unsigned TGT_CLONE_DETACHED        = 0x00400000;
+    static const unsigned TGT_CLONE_UNTRACED        = 0x00800000;
+    static const unsigned TGT_CLONE_CHILD_SETTID    = 0x01000000;
+    static const unsigned TGT_CLONE_NEWUTS          = 0x04000000;
+    static const unsigned TGT_CLONE_NEWIPC          = 0x08000000;
+    static const unsigned TGT_CLONE_NEWUSER         = 0x10000000;
+    static const unsigned TGT_CLONE_NEWPID          = 0x20000000;
+    static const unsigned TGT_CLONE_NEWNET          = 0x40000000;
+    static const unsigned TGT_CLONE_IO              = 0x80000000;
 };  // class Linux
 
 #endif // __LINUX_HH__