2005-04-17 06:20:36 +08:00
|
|
|
/*
|
2008-08-02 17:55:55 +08:00
|
|
|
* arch/arm/include/asm/unistd.h
|
2005-04-17 06:20:36 +08:00
|
|
|
*
|
|
|
|
* Copyright (C) 2001-2005 Russell King
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
|
|
* published by the Free Software Foundation.
|
|
|
|
*
|
|
|
|
* Please forward _all_ changes to this file to rmk@arm.linux.org.uk,
|
|
|
|
* no matter what the change is. Thanks!
|
|
|
|
*/
|
|
|
|
#ifndef __ASM_ARM_UNISTD_H
|
|
|
|
#define __ASM_ARM_UNISTD_H
|
|
|
|
|
2012-10-12 20:05:52 +08:00
|
|
|
#include <uapi/asm/unistd.h>
|
2006-01-15 00:31:29 +08:00
|
|
|
|
sched: Add new scheduler syscalls to support an extended scheduling parameters ABI
Add the syscalls needed for supporting scheduling algorithms
with extended scheduling parameters (e.g., SCHED_DEADLINE).
In general, it makes possible to specify a periodic/sporadic task,
that executes for a given amount of runtime at each instance, and is
scheduled according to the urgency of their own timing constraints,
i.e.:
- a (maximum/typical) instance execution time,
- a minimum interval between consecutive instances,
- a time constraint by which each instance must be completed.
Thus, both the data structure that holds the scheduling parameters of
the tasks and the system calls dealing with it must be extended.
Unfortunately, modifying the existing struct sched_param would break
the ABI and result in potentially serious compatibility issues with
legacy binaries.
For these reasons, this patch:
- defines the new struct sched_attr, containing all the fields
that are necessary for specifying a task in the computational
model described above;
- defines and implements the new scheduling related syscalls that
manipulate it, i.e., sched_setattr() and sched_getattr().
Syscalls are introduced for x86 (32 and 64 bits) and ARM only, as a
proof of concept and for developing and testing purposes. Making them
available on other architectures is straightforward.
Since no "user" for these new parameters is introduced in this patch,
the implementation of the new system calls is just identical to their
already existing counterpart. Future patches that implement scheduling
policies able to exploit the new data structure must also take care of
modifying the sched_*attr() calls accordingly with their own purposes.
Signed-off-by: Dario Faggioli <raistlin@linux.it>
[ Rewrote to use sched_attr. ]
Signed-off-by: Juri Lelli <juri.lelli@gmail.com>
[ Removed sched_setscheduler2() for now. ]
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1383831828-15501-3-git-send-email-juri.lelli@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2013-11-07 21:43:36 +08:00
|
|
|
#define __NR_syscalls (384)
|
2009-11-10 07:53:29 +08:00
|
|
|
#define __ARM_NR_cmpxchg (__ARM_NR_BASE+0x00fff0)
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
#define __ARCH_WANT_STAT64
|
|
|
|
#define __ARCH_WANT_SYS_GETHOSTNAME
|
|
|
|
#define __ARCH_WANT_SYS_PAUSE
|
|
|
|
#define __ARCH_WANT_SYS_GETPGRP
|
|
|
|
#define __ARCH_WANT_SYS_LLSEEK
|
|
|
|
#define __ARCH_WANT_SYS_NICE
|
|
|
|
#define __ARCH_WANT_SYS_SIGPENDING
|
|
|
|
#define __ARCH_WANT_SYS_SIGPROCMASK
|
2010-03-11 07:21:15 +08:00
|
|
|
#define __ARCH_WANT_SYS_OLD_MMAP
|
2010-03-11 07:21:13 +08:00
|
|
|
#define __ARCH_WANT_SYS_OLD_SELECT
|
2006-01-15 00:36:12 +08:00
|
|
|
|
|
|
|
#if !defined(CONFIG_AEABI) || defined(CONFIG_OABI_COMPAT)
|
|
|
|
#define __ARCH_WANT_SYS_TIME
|
2010-03-11 07:21:18 +08:00
|
|
|
#define __ARCH_WANT_SYS_IPC
|
2006-01-15 00:36:12 +08:00
|
|
|
#define __ARCH_WANT_SYS_OLDUMOUNT
|
|
|
|
#define __ARCH_WANT_SYS_ALARM
|
|
|
|
#define __ARCH_WANT_SYS_UTIME
|
|
|
|
#define __ARCH_WANT_SYS_OLD_GETRLIMIT
|
|
|
|
#define __ARCH_WANT_OLD_READDIR
|
|
|
|
#define __ARCH_WANT_SYS_SOCKETCALL
|
|
|
|
#endif
|
2012-10-22 03:54:27 +08:00
|
|
|
#define __ARCH_WANT_SYS_FORK
|
|
|
|
#define __ARCH_WANT_SYS_VFORK
|
|
|
|
#define __ARCH_WANT_SYS_CLONE
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2007-05-16 19:41:15 +08:00
|
|
|
/*
|
|
|
|
* Unimplemented (or alternatively implemented) syscalls
|
|
|
|
*/
|
2011-09-17 19:50:27 +08:00
|
|
|
#define __IGNORE_fadvise64_64
|
|
|
|
#define __IGNORE_migrate_pages
|
2012-09-22 00:55:20 +08:00
|
|
|
#define __IGNORE_kcmp
|
2007-05-16 19:41:15 +08:00
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
#endif /* __ASM_ARM_UNISTD_H */
|