arch,sim: Convert clone to GuestABI and define a cloneBackwardsFunc.
[gem5.git] / src / arch / arm / linux / process.cc
index c25e9122591f42d51f7e296406006d64e617ad06..1f9feaeebd7a845ad70033443847dcd0c8b361ce 100644 (file)
  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Authors: Korey Sewell
- *          Stephen Hines
- *          Ali Saidi
- *          Giacomo Gabrielli
  */
 
 #include "arch/arm/linux/process.hh"
@@ -164,7 +159,7 @@ setTLSFunc64(SyscallDesc *desc, int callnum, ThreadContext *tc)
     return 0;
 }
 
-static SyscallDesc syscallDescs32[] = {
+static SyscallDescABI<DefaultSyscallABI> syscallDescs32[] = {
     /*  0 */ { "syscall" },
     /*  1 */ { "exit", exitFunc },
     /*  2 */ { "fork" },
@@ -188,7 +183,7 @@ static SyscallDesc syscallDescs32[] = {
     /* 20 */ { "getpid", getpidFunc },
     /* 21 */ { "mount" },
     /* 22 */ { "umount" },
-    /* 23 */ { "setuid", setuidFunc },
+    /* 23 */ { "setuid", ignoreFunc },
     /* 24 */ { "getuid", getuidFunc },
     /* 25 */ { "stime" },
     /* 26 */ { "ptrace" },
@@ -285,7 +280,7 @@ static SyscallDesc syscallDescs32[] = {
     /* 117 */ { "ipc" },
     /* 118 */ { "fsync" },
     /* 119 */ { "sigreturn" },
-    /* 120 */ { "clone", cloneFunc<ArmLinux32> },
+    /* 120 */ { "clone", cloneBackwardsFunc<ArmLinux32> },
     /* 121 */ { "setdomainname" },
     /* 122 */ { "uname", unameFunc32 },
     /* 123 */ { "unused#123" },
@@ -541,7 +536,7 @@ static SyscallDesc syscallDescs32[] = {
     /* 365 */ { "sys_recvmmsg" },
 };
 
-static SyscallDesc syscallDescs64[] = {
+static SyscallDescABI<DefaultSyscallABI> syscallDescs64[] = {
     /*    0 */ { "io_setup" },
     /*    1 */ { "io_destroy" },
     /*    2 */ { "io_submit" },
@@ -766,7 +761,7 @@ static SyscallDesc syscallDescs64[] = {
     /*  217 */ { "add_key" },
     /*  218 */ { "request_key" },
     /*  219 */ { "keyctl" },
-    /*  220 */ { "clone", cloneFunc<ArmLinux64> },
+    /*  220 */ { "clone", cloneBackwardsFunc<ArmLinux64> },
     /*  221 */ { "execve", execveFunc<ArmLinux64> },
     /*  222 */ { "mmap2", mmapFunc<ArmLinux64> },
     /*  223 */ { "fadvise64_64" },
@@ -1632,7 +1627,7 @@ static SyscallDesc syscallDescs64[] = {
     /* 1079 */ { "fork" }
 };
 
-static SyscallDesc privSyscallDescs32[] = {
+static SyscallDescABI<DefaultSyscallABI> privSyscallDescs32[] = {
     /*  1 */ { "breakpoint" },
     /*  2 */ { "cacheflush" },
     /*  3 */ { "usr26" },
@@ -1641,7 +1636,7 @@ static SyscallDesc privSyscallDescs32[] = {
 };
 
 // Indices 1, 3 and 4 are unallocated.
-static SyscallDesc privSyscallDescs64[] = {
+static SyscallDescABI<DefaultSyscallABI> privSyscallDescs64[] = {
     /*  1 */ { "unallocated" },
     /*  2 */ { "cacheflush" },
     /*  3 */ { "unallocated" },