You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gn...@apache.org on 2020/02/09 13:34:59 UTC
[incubator-nuttx] 01/03: syscall: Expose sched_getaffinity and
sched_setaffinity
This is an automated email from the ASF dual-hosted git repository.
gnutt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit c34a73e78049d15cd82458faf71664c4415f8bb3
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Sun Feb 9 15:38:50 2020 +0800
syscall: Expose sched_getaffinity and sched_setaffinity
---
include/sys/syscall.h | 7 +++++--
syscall/syscall.csv | 2 ++
syscall/syscall_lookup.h | 3 +++
syscall/syscall_stublookup.c | 5 +++++
4 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/include/sys/syscall.h b/include/sys/syscall.h
index ec5cbf5..4bf5d8b 100644
--- a/include/sys/syscall.h
+++ b/include/sys/syscall.h
@@ -81,9 +81,12 @@
#define SYS_sched_setscheduler (CONFIG_SYS_RESERVED + 10)
#define SYS_sched_unlock (CONFIG_SYS_RESERVED + 11)
#define SYS_sched_yield (CONFIG_SYS_RESERVED + 12)
+
#ifdef CONFIG_SMP
-# define SYS_sched_getcpu (CONFIG_SYS_RESERVED + 13)
-# define __SYS_set_errno (CONFIG_SYS_RESERVED + 14)
+# define SYS_sched_getaffinity (CONFIG_SYS_RESERVED + 13)
+# define SYS_sched_getcpu (CONFIG_SYS_RESERVED + 14)
+# define SYS_sched_setaffinity (CONFIG_SYS_RESERVED + 15)
+# define __SYS_set_errno (CONFIG_SYS_RESERVED + 16)
#else
# define __SYS_set_errno (CONFIG_SYS_RESERVED + 13)
#endif
diff --git a/syscall/syscall.csv b/syscall/syscall.csv
index 2f2c9e0..85ec82e 100644
--- a/syscall/syscall.csv
+++ b/syscall/syscall.csv
@@ -119,6 +119,7 @@
"rewinddir","dirent.h","","void","FAR DIR*"
"rmdir","unistd.h","!defined(CONFIG_DISABLE_MOUNTPOINT)","int","FAR const char*"
"rmmod","nuttx/module.h","defined(CONFIG_MODULE)","int","FAR void *"
+"sched_getaffinity","sched.h","defined(CONFIG_SMP)","int","pid_t","size_t","FAR cpu_set_t*"
"sched_getcpu","sched.h","defined(CONFIG_SMP)","int"
"sched_getparam","sched.h","","int","pid_t","struct sched_param*"
"sched_getscheduler","sched.h","","int","pid_t"
@@ -126,6 +127,7 @@
"sched_lock","sched.h","","int"
"sched_lockcount","sched.h","","int32_t"
"sched_rr_get_interval","sched.h","","int","pid_t","struct timespec*"
+"sched_setaffinity","sched.h","defined(CONFIG_SMP)","int","pid_t","size_t","FAR const cpu_set_t*"
"sched_setparam","sched.h","","int","pid_t","const struct sched_param*"
"sched_setscheduler","sched.h","","int","pid_t","int","const struct sched_param*"
"sched_unlock","sched.h","","int"
diff --git a/syscall/syscall_lookup.h b/syscall/syscall_lookup.h
index 00f7fb0..e4a48c0 100644
--- a/syscall/syscall_lookup.h
+++ b/syscall/syscall_lookup.h
@@ -57,8 +57,11 @@ SYSCALL_LOOKUP(sched_setparam, 2, STUB_sched_setparam)
SYSCALL_LOOKUP(sched_setscheduler, 3, STUB_sched_setscheduler)
SYSCALL_LOOKUP(sched_unlock, 0, STUB_sched_unlock)
SYSCALL_LOOKUP(sched_yield, 0, STUB_sched_yield)
+
#ifdef CONFIG_SMP
+SYSCALL_LOOKUP(sched_getaffinity, 3, STUB_sched_getaffinity)
SYSCALL_LOOKUP(sched_getcpu, 0, STUB_sched_getcpu)
+SYSCALL_LOOKUP(sched_setaffinity, 3, STUB_sched_setaffinity)
#endif
SYSCALL_LOOKUP(set_errno, 1, STUB_set_errno)
diff --git a/syscall/syscall_stublookup.c b/syscall/syscall_stublookup.c
index 11276e7..70f8736 100644
--- a/syscall/syscall_stublookup.c
+++ b/syscall/syscall_stublookup.c
@@ -72,7 +72,12 @@ uintptr_t STUB_sched_setscheduler(int nbr, uintptr_t parm1, uintptr_t parm2,
uintptr_t parm3);
uintptr_t STUB_sched_unlock(int nbr);
uintptr_t STUB_sched_yield(int nbr);
+
+uintptr_t STUB_sched_getaffinity(int nbr, uintptr_t parm1, uintptr_t parm2,
+ uintptr_t parm3);
uintptr_t STUB_sched_getcpu(int nbr);
+uintptr_t STUB_sched_setaffinity(int nbr, uintptr_t parm1, uintptr_t parm2,
+ uintptr_t parm3);
uintptr_t STUB_set_errno(int nbr, uintptr_t parm1);
uintptr_t STUB_uname(int nbr, uintptr_t parm1);