Commit 01ee2970 authored by Michael Holzheu's avatar Michael Holzheu Committed by Pavel Emelyanov

s390:zdtm: Enable zdtm for s390

Reviewed-by: 's avatarAlice Frosi <alice@linux.vnet.ibm.com>
Signed-off-by: 's avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
Reviewed-by: 's avatarDmitry Safonov <dsafonov@virtuozzo.com>
Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
parent 50097710
#ifndef __ARCH_S390_ATOMIC__
#define __ARCH_S390_ATOMIC__
#include <stdint.h>
typedef uint32_t atomic_t;
#define __ATOMIC_OP(op_name, op_type, op_string, op_barrier) \
static inline op_type op_name(op_type val, op_type *ptr) \
{ \
op_type old; \
\
asm volatile( \
op_string " %[old],%[val],%[ptr]\n" \
op_barrier \
: [old] "=d" (old), [ptr] "+Q" (*ptr) \
: [val] "d" (val) : "cc", "memory"); \
return old; \
} \
#define __ATOMIC_OPS(op_name, op_type, op_string) \
__ATOMIC_OP(op_name, op_type, op_string, "\n") \
__ATOMIC_OP(op_name##_barrier, op_type, op_string, "bcr 14,0\n")
__ATOMIC_OPS(__atomic_add, uint32_t, "laa")
#undef __ATOMIC_OPS
#undef __ATOMIC_OP
static inline int atomic_get(const atomic_t *v)
{
int c;
asm volatile(
" l %0,%1\n"
: "=d" (c) : "Q" (*v));
return c;
}
static inline void atomic_set(atomic_t *v, int i)
{
asm volatile(
" st %1,%0\n"
: "=Q" (*v) : "d" (i));
}
static inline int atomic_add_return(int i, atomic_t *v)
{
return __atomic_add_barrier(i, v) + i;
}
static inline void atomic_add(int i, atomic_t *v)
{
__atomic_add(i, v);
}
#define atomic_sub(_i, _v) atomic_add(-(int)(_i), _v)
static inline int atomic_inc(atomic_t *v)
{
return atomic_add_return(1, v) - 1;
}
#define atomic_dec(_v) atomic_sub(1, _v)
#endif /* __ARCH_S390_ATOMIC__ */
...@@ -25,6 +25,9 @@ ...@@ -25,6 +25,9 @@
#elif __aarch64__ #elif __aarch64__
# define __NR_fanotify_init 262 # define __NR_fanotify_init 262
# define __NR_fanotify_mark 263 # define __NR_fanotify_mark 263
#elif __s390x__
# define __NR_fanotify_init 332
# define __NR_fanotify_mark 333
#else #else
# define __NR_fanotify_init 338 # define __NR_fanotify_init 338
# define __NR_fanotify_mark 339 # define __NR_fanotify_mark 339
......
{ 'deps': [ '/bin/sh', { 'deps': [ '/bin/sh',
'/sbin/iptables', '/sbin/iptables',
'/usr/lib64/xtables/libxt_standard.so|/usr/lib/iptables/libxt_standard.so|/lib/xtables/libxt_standard.so|/usr/lib/powerpc64le-linux-gnu/xtables/libxt_standard.so|/usr/lib/x86_64-linux-gnu/xtables/libxt_standard.so', '/usr/lib64/xtables/libxt_standard.so|/usr/lib/iptables/libxt_standard.so|/lib/xtables/libxt_standard.so|/usr/lib/powerpc64le-linux-gnu/xtables/libxt_standard.so|/usr/lib/x86_64-linux-gnu/xtables/libxt_standard.so|/usr/lib/s390x-linux-gnu/xtables/libxt_standard.so',
'/usr/bin/diff'], '/usr/bin/diff'],
'flags': 'suid', 'flags': 'suid',
'flavor': 'ns uns'} 'flavor': 'ns uns'}
{'flavor': 'h', 'flags': 'suid crlib'} {'flavor': 'h', 'flags': 'suid crlib','arch': 'x86_64 aarch64 arm ppc64'}
{ 'deps': [ '/bin/sh', { 'deps': [ '/bin/sh',
'/sbin/iptables', '/sbin/iptables',
'/usr/lib64/xtables/libxt_tcp.so|/lib/xtables/libxt_tcp.so|/usr/lib/powerpc64le-linux-gnu/xtables/libxt_tcp.so|/usr/lib/x86_64-linux-gnu/xtables/libxt_tcp.so', '/usr/lib64/xtables/libxt_tcp.so|/lib/xtables/libxt_tcp.so|/usr/lib/powerpc64le-linux-gnu/xtables/libxt_tcp.so|/usr/lib/x86_64-linux-gnu/xtables/libxt_tcp.so|/usr/lib/s390x-linux-gnu/xtables/libxt_tcp.so',
'/usr/lib64/xtables/libxt_standard.so|/lib/xtables/libxt_standard.so|/usr/lib/powerpc64le-linux-gnu/xtables/libxt_standard.so|/usr/lib/x86_64-linux-gnu/xtables/libxt_standard.so', '/usr/lib64/xtables/libxt_standard.so|/lib/xtables/libxt_standard.so|/usr/lib/powerpc64le-linux-gnu/xtables/libxt_standard.so|/usr/lib/x86_64-linux-gnu/xtables/libxt_standard.so|/usr/lib/s390x-linux-gnu/xtables/libxt_standard.so',
], ],
'opts': '--tcp-established', 'opts': '--tcp-established',
'flags': 'suid nouser samens', 'flags': 'suid nouser samens',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment