Added a 'sched_getcpu()' routine that returns the
current pcore ID, as an analog to the routine of
the same name in Linux. Rebuild your toolchain.

Signed-off-by: Dan Cross <[email protected]>
---
 .../glibc-2.19-akaros/sysdeps/akaros/Makefile      |  5 +++++
 .../glibc-2.19-akaros/sysdeps/akaros/Versions      |  2 ++
 .../sysdeps/akaros/sched_getcpu.c                  | 25 ++++++++++++++++++++++
 3 files changed, 32 insertions(+)
 create mode 100644 
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sched_getcpu.c

diff --git 
a/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/Makefile 
b/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/Makefile
index fa44dc5..8dd52b0 100644
--- a/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/Makefile
+++ b/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/Makefile
@@ -42,6 +42,11 @@ sysdep_routines += convS2M
 endif
 sysdep_headers += fcall.h
 
+# Scheduling related routines.
+ifeq ($(subdir),stdlib)
+sysdep_routines += sched_getcpu
+endif
+
 # Syscall pack arg routines
 ifeq ($(subdir),stdlib)
 sysdep_routines += serialize
diff --git 
a/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/Versions 
b/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/Versions
index 899cfe8..1da7300 100644
--- a/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/Versions
+++ b/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/Versions
@@ -35,6 +35,8 @@ libc {
     convD2M;
     sizeD2M;
 
+    sched_getcpu;
+
     serialize_argv_envp;
     free_serialized_data;
 
diff --git 
a/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sched_getcpu.c 
b/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sched_getcpu.c
new file mode 100644
index 0000000..51d492d
--- /dev/null
+++ b/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sched_getcpu.c
@@ -0,0 +1,25 @@
+/* Copyright (C) 2016 Google Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <parlib/vcore.h>
+#include <ros/procinfo.h>
+
+int sched_getcpu(void)
+{
+       return __procinfo.vcoremap[vcore_id()].pcoreid;
+}
-- 
2.8.0.rc3.226.g39d4020

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to