sim: syscall: add getpid support
authorMike Frysinger <vapier@gentoo.org>
Mon, 19 Apr 2021 00:53:03 +0000 (20:53 -0400)
committerMike Frysinger <vapier@gentoo.org>
Mon, 19 Apr 2021 01:22:31 +0000 (21:22 -0400)
Hoist the Blackfin implementation up to the common one.

sim/bfin/ChangeLog
sim/bfin/interp.c
sim/common/ChangeLog
sim/common/syscall.c
sim/testsuite/bfin/ChangeLog
sim/testsuite/bfin/getpid.c [new file with mode: 0644]

index 2a48fe102a35d438e0bab23090c8802586a50b97..51d48b86c12aa36887d693b1c442d15c40a5c762 100644 (file)
@@ -1,3 +1,7 @@
+2021-04-18  Mike Frysinger  <vapier@gentoo.org>
+
+       * interp.c (bfin_syscall): Delete CB_SYS_getpid handling.
+
 2021-04-12  Mike Frysinger  <vapier@gentoo.org>
 
        * interp.c (sim_open): Delete 3rd arg to sim_cpu_alloc_all.
index 747898ceff5d791d24edba80af3a59acd9bd7905..49388e74c54c84776f5aae0e4dbfd766bf6beea9 100644 (file)
@@ -457,10 +457,6 @@ bfin_syscall (SIM_CPU *cpu)
       sc.result = setgid (sc.arg1);
       goto sys_finish;
 
-    case CB_SYS_getpid:
-      tbuf += sprintf (tbuf, "getpid()");
-      sc.result = getpid ();
-      goto sys_finish;
     case CB_SYS_kill:
       tbuf += sprintf (tbuf, "kill(%u, %i)", args[0], args[1]);
       /* Only let the app kill itself.  */
index c8782d7c34b2a61d03fe854c7f65d2790ea252aa..b1af152930a96676f47d8f075b591e202fde12d4 100644 (file)
@@ -1,3 +1,7 @@
+2021-04-18  Mike Frysinger  <vapier@gentoo.org>
+
+       * syscall.c (cb_syscall): Implement CB_SYS_getpid.
+
 2021-04-15  John Baldwin  <jhb@FreeBSD.org>
 
        * Make-common.in (CONFIG_CFLAGS): Remove SIM_EXTRA_CFLAGS.
index fbe8021c8ef17d5fff98a8a978e6dcd8872b770b..f2883c493acd3a5270c724258e2428ba7b0f9351 100644 (file)
@@ -578,6 +578,10 @@ cb_syscall (host_callback *cb, CB_SYSCALL *sc)
       }
       break;
 
+    case CB_SYS_getpid:
+      result = getpid ();
+      break;
+
     case CB_SYS_time :
       {
        /* FIXME: May wish to change CB_SYS_time to something else.
index 2abca7eee7c9a40c125a555e6390ca344ac22c3a..ea617e3fdff350da03ec192bf919cc1e7b379b54 100644 (file)
@@ -1,3 +1,7 @@
+2021-04-18  Mike Frysinger  <vapier@gentoo.org>
+
+       * getpid.c: New test.
+
 2021-04-08  Mike Frysinger  <vapier@gentoo.org>
 
        * allinsn.exp (arch): Delete.
diff --git a/sim/testsuite/bfin/getpid.c b/sim/testsuite/bfin/getpid.c
new file mode 100644 (file)
index 0000000..11d5c50
--- /dev/null
@@ -0,0 +1,18 @@
+/* Basic getpid tests.
+# mach: bfin
+# cc: -msim
+*/
+
+#include <stdio.h>
+#include <unistd.h>
+
+int main(int argc, char *argv[])
+{
+  pid_t pid = getpid();
+  if (pid < 0) {
+    perror("getpid failed");
+    return 1;
+  }
+  puts("pass");
+  return 0;
+}