6 #include "../lib/types.h"
35 extern unsigned long arch_flags;
37 #define ARCH_CPU_CLOCK_WRAPS
39 #define atomic_load_acquire(p) \
40 atomic_load_explicit((_Atomic typeof(*(p)) *)(p), \
42 #define atomic_store_release(p, v) \
43 atomic_store_explicit((_Atomic typeof(*(p)) *)(p), (v), \
46 /* IWYU pragma: begin_exports */
49 #elif defined(__x86_64__)
50 #include "arch-x86_64.h"
51 #elif defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__)
53 #elif defined(__ia64__)
54 #include "arch-ia64.h"
55 #elif defined(__alpha__)
56 #include "arch-alpha.h"
57 #elif defined(__s390x__) || defined(__s390__)
58 #include "arch-s390.h"
59 #elif defined(__sparc__)
60 #include "arch-sparc.h"
61 #elif defined(__sparc64__)
62 #include "arch-sparc64.h"
63 #elif defined(__arm__)
65 #elif defined(__mips__) || defined(__mips64__)
66 #include "arch-mips.h"
69 #elif defined(__hppa__)
70 #include "arch-hppa.h"
71 #elif defined(__aarch64__)
72 #include "arch-aarch64.h"
74 #warning "Unknown architecture, attempting to use generic model."
75 #include "arch-generic.h"
78 #include "../lib/ffz.h"
79 /* IWYU pragma: end_exports */
81 #ifndef ARCH_HAVE_INIT
82 static inline int arch_init(char *envp[])
90 * alpha is the only exception, all other architectures
91 * have common numbers for new system calls.
93 # ifndef __NR_io_uring_setup
94 # define __NR_io_uring_setup 535
96 # ifndef __NR_io_uring_enter
97 # define __NR_io_uring_enter 536
99 # ifndef __NR_io_uring_register
100 # define __NR_io_uring_register 537
102 #else /* !__alpha__ */
103 # ifndef __NR_io_uring_setup
104 # define __NR_io_uring_setup 425
106 # ifndef __NR_io_uring_enter
107 # define __NR_io_uring_enter 426
109 # ifndef __NR_io_uring_register
110 # define __NR_io_uring_register 427
114 #define ARCH_HAVE_IOURING