1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-12-23 17:34:00 +03:00

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.
This commit is contained in:
Alexey Brodkin 2017-05-19 16:55:24 +02:00 committed by Zbigniew Jędrzejewski-Szmek
parent 4e6b9b2049
commit 27b09f1f1e
4 changed files with 30 additions and 1 deletions

View File

@ -864,7 +864,9 @@
<varname>sh64</varname>,
<varname>m68k</varname>,
<varname>tilegx</varname>,
<varname>cris</varname> to test
<varname>cris</varname>,
<varname>arc</varname>,
<varname>arc-be</varname> to test
against a specific architecture. The architecture is
determined from the information returned by
<citerefentry project='man-pages'><refentrytitle>uname</refentrytitle><manvolnum>2</manvolnum></citerefentry>

View File

@ -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);

View File

@ -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

View File

@ -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