diff --git a/include/sys/syscall.h b/include/sys/syscall.h index ec5cbf54e4b..4bf5d8b01ff 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 2f2c9e0f549..85ec82ef765 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 00f7fb0cf9c..e4a48c0e04c 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 11276e75796..70f8736ef2b 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);