diff options
author | Alexey Brodkin <abrodkin@synopsys.com> | 2017-05-19 16:55:24 +0200 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2017-05-19 16:55:24 +0200 |
commit | 27b09f1f1ed29edb9c52ad8414c2344974a07a23 (patch) | |
tree | 442a6e52577778b902e682c8e7be295a4a476dac /src | |
parent | hwdb: Fix mapping for home-key on Cube iWork8 air (#5994) (diff) | |
download | systemd-27b09f1f1ed29edb9c52ad8414c2344974a07a23.tar.xz systemd-27b09f1f1ed29edb9c52ad8414c2344974a07a23.zip |
architecture: add Synopsys DesignWare ARC cores support (#5992)
DesignWare ARC Processors are a family of 32-bit CPUs from Synopsys
used extensively in SoCs of different vendors.
Diffstat (limited to 'src')
-rw-r--r-- | src/basic/architecture.c | 5 | ||||
-rw-r--r-- | src/basic/architecture.h | 10 | ||||
-rw-r--r-- | src/basic/missing_syscall.h | 12 |
3 files changed, 27 insertions, 0 deletions
diff --git a/src/basic/architecture.c b/src/basic/architecture.c index 5a3dc08a4a..2518dd8112 100644 --- a/src/basic/architecture.c +++ b/src/basic/architecture.c @@ -132,6 +132,9 @@ int uname_architecture(void) { # elif __SIZEOF_POINTER__ == 8 { "riscv", ARCHITECTURE_RISCV64 }, # endif +#elif defined(__arc__) + { "arc", ARCHITECTURE_ARC }, + { "arceb", ARCHITECTURE_ARC_BE }, #else #error "Please register your architecture here!" #endif @@ -185,6 +188,8 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = { [ARCHITECTURE_NIOS2] = "nios2", [ARCHITECTURE_RISCV32] = "riscv32", [ARCHITECTURE_RISCV64] = "riscv64", + [ARCHITECTURE_ARC] = "arc", + [ARCHITECTURE_ARC_BE] = "arc-be", }; DEFINE_STRING_TABLE_LOOKUP(architecture, int); diff --git a/src/basic/architecture.h b/src/basic/architecture.h index db7e03f02a..40a2ce6448 100644 --- a/src/basic/architecture.h +++ b/src/basic/architecture.h @@ -60,6 +60,8 @@ enum { ARCHITECTURE_NIOS2, ARCHITECTURE_RISCV32, ARCHITECTURE_RISCV64, + ARCHITECTURE_ARC, + ARCHITECTURE_ARC_BE, _ARCHITECTURE_MAX, _ARCHITECTURE_INVALID = -1 }; @@ -237,6 +239,14 @@ int uname_architecture(void); # else # error "Unrecognized riscv architecture variant" # endif +#elif defined(__arc__) +# if __BYTE_ORDER == __BIG_ENDIAN +# define native_architecture() ARCHITECTURE_ARC_BE +# define LIB_ARCH_TUPLE "arceb-linux" +# else +# define native_architecture() ARCHITECTURE_ARC +# define LIB_ARCH_TUPLE "arc-linux" +# endif #else # error "Please register your architecture here!" #endif diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h index 9fc4156564..d4096b8cae 100644 --- a/src/basic/missing_syscall.h +++ b/src/basic/missing_syscall.h @@ -52,6 +52,8 @@ static inline int pivot_root(const char *new_root, const char *put_old) { # endif # elif defined __i386__ # define __NR_memfd_create 356 +# elif defined __arc__ +# define __NR_memfd_create 279 # else # warning "__NR_memfd_create unknown for your architecture" # endif @@ -97,6 +99,8 @@ static inline int memfd_create(const char *name, unsigned int flags) { # if _MIPS_SIM == _MIPS_SIM_ABI64 # define __NR_getrandom 5313 # endif +# elif defined(__arc__) +# define __NR_getrandom 278 # else # warning "__NR_getrandom unknown for your architecture" # endif @@ -132,6 +136,8 @@ static inline pid_t gettid(void) { # define __NR_name_to_handle_at 370 # elif defined(__powerpc__) # define __NR_name_to_handle_at 345 +# elif defined(__arc__) +# define __NR_name_to_handle_at 264 # else # error "__NR_name_to_handle_at is not defined" # endif @@ -161,6 +167,8 @@ static inline int name_to_handle_at(int fd, const char *name, struct file_handle # define __NR_setns 308 # elif defined(__i386__) # define __NR_setns 346 +# elif defined(__arc__) +# define __NR_setns 268 # else # error "__NR_setns is not defined" # endif @@ -208,6 +216,8 @@ static inline pid_t raw_getpid(void) { # endif # elif defined __i386__ # define __NR_renameat2 353 +# elif defined __arc__ +# define __NR_renameat2 276 # else # warning "__NR_renameat2 unknown for your architecture" # endif @@ -283,6 +293,8 @@ static inline key_serial_t request_key(const char *type, const char *description # define __NR_copy_file_range 285 # elif defined __powerpc__ # define __NR_copy_file_range 379 +# elif defined __arc__ +# define __NR_copy_file_range 285 # else # warning "__NR_copy_file_range not defined for your architecture" # endif |