From patchwork Mon Feb 10 19:20:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella Netto X-Patchwork-Id: 183259 Delivered-To: patch@linaro.org Received: by 2002:a92:1f12:0:0:0:0:0 with SMTP id i18csp4418218ile; Mon, 10 Feb 2020 11:22:47 -0800 (PST) X-Google-Smtp-Source: APXvYqxI+2OGan4x9Y+X3t+0cJ4qh2sOZ91l4u1LWSFOLhETYCTWQ1fw7BLI7BtxKFZLF8SnCESw X-Received: by 2002:aca:f1c2:: with SMTP id p185mr391617oih.87.1581362567262; Mon, 10 Feb 2020 11:22:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581362567; cv=none; d=google.com; s=arc-20160816; b=igkdos1sCw3k0zFfg/iBGceauVCGhG5Sg73Le64j6HFDaIhSZ1g18q/YULiDdb8PNr kgqEGZEg/sx+PhfGoEDt91bndrikzfd8wlxJEOcGtUDxvX+XgHxsZwoAUeiMZc5BTaNr DZiGhcKfbkhIjFFaAZPcJZd/kpSbYq7qCuSJEnzao6CR56K9wpM5zWQhOGN+8vbHSC5v rS8B3OjU1ky7X52y2sGc/M0hF73Uh8ydCjY8jaXeQ+t0sfWZVmHvnYnJBcjREvwvCw4f PZ5bfnMTik+EedgVnm+hy7PckRyhyyJk32IMS/j1cXk5RIc00vHZO93IVsqwZUTi7ihZ e0ag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:to:from :dkim-signature:delivered-to:sender:list-help:list-post:list-archive :list-subscribe:list-unsubscribe:list-id:precedence:mailing-list :dkim-signature:domainkey-signature; bh=PuKa3nuGLOga3FHSXjV8IqXcLe94OG2sd/nQRrgYs/Y=; b=G37XBMM7swQYMtphoJkY0VKj/Zmr4Dy5fwozBvf5CKotiF13ndQAm8IKkisOHmLoTs ZpcvSdKW/XoxvdpLXB96sdNawqD5Hu20YLXyztDAZLXYkM7Si6yd2Zo8taWjBP8XBMOX FKOVBzFg+OhdMXu4cnyN2kH0pFWnu2dXMo5CkJPo0A3myPS/tw0pX/wP6fwoFpxypcic 0cb8R9M01mAkF2rv63PA3M/iWelZxab9MXyOU5fXAWMvVorIwcP9kA9VDE30umJviElR a8C7+63eLebF3eG7qbrxeLFPStLOVDy3dGoIkzAjDp6N451OMS1x0q7NoSx8pqH7/AbE 33ug== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=XL0B1Fej; dkim=pass header.i=@linaro.org header.s=google header.b=ntGkuNS9; spf=pass (google.com: domain of libc-alpha-return-109397-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom="libc-alpha-return-109397-patch=linaro.org@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id j17si591496otl.278.2020.02.10.11.22.46 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 10 Feb 2020 11:22:47 -0800 (PST) Received-SPF: pass (google.com: domain of libc-alpha-return-109397-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=XL0B1Fej; dkim=pass header.i=@linaro.org header.s=google header.b=ntGkuNS9; spf=pass (google.com: domain of libc-alpha-return-109397-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom="libc-alpha-return-109397-patch=linaro.org@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:in-reply-to :references; q=dns; s=default; b=b5QMcynkWXjW86gAJRZWZ0iKVrnyfNB TV4x2tWMRDtS3BBX2c1qPx1loVBZnSJoFbyYznstOQvSt/qtZ+du8u2toYU1SiQk BqHwCKWOThLY4tlHVB/u4On1xIXuXqUxoxcXwfcU5hzJ/VHHdCYnzAbxjNdWHl8W 4HwCQwEu8X1w= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:in-reply-to :references; s=default; bh=Vw7zMbbjTQIR401AU1cmiqdSC+M=; b=XL0B1 FejNhc3clmuR77Yp35O+c2f3mgLyuja10xW59iXMaYkpy94Nh+nN1JSIMvKAWAFc pl1eSxkbX79VPupaff5Ni5sLWqmeXqhkkFNqFczn0sKGR1Xsj0JzAlOFUaUSqbjp IZTlP8eWd5KsCgZlUDzdlY1VTHfUrCQFa4hUVQ= Received: (qmail 101019 invoked by alias); 10 Feb 2020 19:21:02 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 100896 invoked by uid 89); 10 Feb 2020 19:21:01 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-22.1 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: mail-qt1-f194.google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references; bh=PuKa3nuGLOga3FHSXjV8IqXcLe94OG2sd/nQRrgYs/Y=; b=ntGkuNS9A7l+IYmXbflWz/arlB4MLRoxQ4mS0uBhVlmHmx1HiPHBucD5tiRTaFRNmJ H6asle0Y62RdZHrWUpJPSSSUrk+s0dXwWdhCpoedaeX3J2jh3PfAhwHLWSxhS6b49Nst UeSr7ovzGzZkMIf3L4kk0AF6DDR/r58mS/6+ZUM4tesdUrMNgMQGpYWoBhw4NBQtojH2 t2HDdPZUmbqLFMOtRaL5tpMVAEszs/oks3cE0DPWpFz1xPX7mefpOvSV3UGtckdjGNj9 aK+83rgr61sO04x5HQr//GocIlZxOiAakSmxfEiVJb2Rm0J/GBcNyjT5cr1ung8okmnd H21w== Return-Path: From: Adhemerval Zanella To: libc-alpha@sourceware.org Subject: [PATCH 11/15] s390: Consolidate Linux syscall definition Date: Mon, 10 Feb 2020 16:20:34 -0300 Message-Id: <20200210192038.23588-11-adhemerval.zanella@linaro.org> In-Reply-To: <20200210192038.23588-1-adhemerval.zanella@linaro.org> References: <20200210192038.23588-1-adhemerval.zanella@linaro.org> The {INTERNAL,INLINE}_SYSCALL are defined only on s390 sysdep.h. Checked on s390x-linux-gnu and s390-linux-gnu. --- sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h | 95 ---------------- sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h | 97 ----------------- sysdeps/unix/sysv/linux/s390/sysdep.h | 102 ++++++++++++++++++ 3 files changed, 102 insertions(+), 192 deletions(-) -- 2.17.1 diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h index f52b8b8735..520c9356c6 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h +++ b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h @@ -38,9 +38,6 @@ /* in newer 2.1 kernels __NR_syscall is missing so we define it here */ #define __NR_syscall 0 -#undef SYS_ify -#define SYS_ify(syscall_name) __NR_##syscall_name - #ifdef __ASSEMBLER__ /* Linux uses a negative return value to indicate syscall errors, unlike @@ -180,98 +177,6 @@ #endif /* __ASSEMBLER__ */ -#undef INLINE_SYSCALL -#define INLINE_SYSCALL(name, nr, args...) \ - ({ \ - unsigned int _ret = INTERNAL_SYSCALL (name, , nr, args); \ - if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (_ret, ))) \ - { \ - __set_errno (INTERNAL_SYSCALL_ERRNO (_ret, )); \ - _ret = 0xffffffff; \ - } \ - (int) _ret; }) - -#undef INTERNAL_SYSCALL_DECL -#define INTERNAL_SYSCALL_DECL(err) do { } while (0) - -#undef INTERNAL_SYSCALL_DIRECT -#define INTERNAL_SYSCALL_DIRECT(name, err, nr, args...) \ - ({ \ - DECLARGS_##nr(args) \ - register int _ret __asm__("2"); \ - __asm__ __volatile__ ( \ - "svc %b1\n\t" \ - : "=d" (_ret) \ - : "i" (__NR_##name) ASMFMT_##nr \ - : "memory" ); \ - _ret; }) - -#undef INTERNAL_SYSCALL_SVC0 -#define INTERNAL_SYSCALL_SVC0(name, err, nr, args...) \ - ({ \ - DECLARGS_##nr(args) \ - register unsigned long _nr __asm__("1") = (unsigned long)(__NR_##name); \ - register int _ret __asm__("2"); \ - __asm__ __volatile__ ( \ - "svc 0\n\t" \ - : "=d" (_ret) \ - : "d" (_nr) ASMFMT_##nr \ - : "memory" ); \ - _ret; }) - -#undef INTERNAL_SYSCALL_NCS -#define INTERNAL_SYSCALL_NCS(no, err, nr, args...) \ - ({ \ - DECLARGS_##nr(args) \ - register unsigned long _nr __asm__("1") = (unsigned long)(no); \ - register int _ret __asm__("2"); \ - __asm__ __volatile__ ( \ - "svc 0\n\t" \ - : "=d" (_ret) \ - : "d" (_nr) ASMFMT_##nr \ - : "memory" ); \ - _ret; }) - -#undef INTERNAL_SYSCALL -#define INTERNAL_SYSCALL(name, err, nr, args...) \ - (((__NR_##name) < 256) \ - ? INTERNAL_SYSCALL_DIRECT(name, err, nr, args) \ - : INTERNAL_SYSCALL_SVC0(name, err,nr, args)) - -#undef INTERNAL_SYSCALL_ERROR_P -#define INTERNAL_SYSCALL_ERROR_P(val, err) \ - ((unsigned int) (val) >= 0xfffff001u) - -#undef INTERNAL_SYSCALL_ERRNO -#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val)) - -#define DECLARGS_0() -#define DECLARGS_1(arg1) \ - register unsigned long gpr2 __asm__ ("2") = (unsigned long)(arg1); -#define DECLARGS_2(arg1, arg2) \ - DECLARGS_1(arg1) \ - register unsigned long gpr3 __asm__ ("3") = (unsigned long)(arg2); -#define DECLARGS_3(arg1, arg2, arg3) \ - DECLARGS_2(arg1, arg2) \ - register unsigned long gpr4 __asm__ ("4") = (unsigned long)(arg3); -#define DECLARGS_4(arg1, arg2, arg3, arg4) \ - DECLARGS_3(arg1, arg2, arg3) \ - register unsigned long gpr5 __asm__ ("5") = (unsigned long)(arg4); -#define DECLARGS_5(arg1, arg2, arg3, arg4, arg5) \ - DECLARGS_4(arg1, arg2, arg3, arg4) \ - register unsigned long gpr6 __asm__ ("6") = (unsigned long)(arg5); -#define DECLARGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \ - DECLARGS_5(arg1, arg2, arg3, arg4, arg5) \ - register unsigned long gpr7 __asm__ ("7") = (unsigned long)(arg6); - -#define ASMFMT_0 -#define ASMFMT_1 , "0" (gpr2) -#define ASMFMT_2 , "0" (gpr2), "d" (gpr3) -#define ASMFMT_3 , "0" (gpr2), "d" (gpr3), "d" (gpr4) -#define ASMFMT_4 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5) -#define ASMFMT_5 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6) -#define ASMFMT_6 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6), "d" (gpr7) - /* Pointer mangling support. */ #if IS_IN (rtld) /* We cannot use the thread descriptor because in ld.so we use setjmp diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h index 9ff4479dc3..623059135e 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h +++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h @@ -50,9 +50,6 @@ # define __NR_pwrite __NR_pwrite64 #endif -#undef SYS_ify -#define SYS_ify(syscall_name) __NR_##syscall_name - #ifdef __ASSEMBLER__ /* Linux uses a negative return value to indicate syscall errors, unlike @@ -186,100 +183,6 @@ #endif /* __ASSEMBLER__ */ -#undef INLINE_SYSCALL -#define INLINE_SYSCALL(name, nr, args...) \ - ({ \ - long _ret = INTERNAL_SYSCALL (name, , nr, args); \ - if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (_ret, ))) \ - { \ - __set_errno (INTERNAL_SYSCALL_ERRNO (_ret, )); \ - _ret = -1; \ - } \ - _ret; }) - -#undef INTERNAL_SYSCALL_DECL -#define INTERNAL_SYSCALL_DECL(err) do { } while (0) - -#undef INTERNAL_SYSCALL_DIRECT -#define INTERNAL_SYSCALL_DIRECT(name, err, nr, args...) \ - ({ \ - DECLARGS_##nr(args) \ - register long _ret __asm__("2"); \ - __asm__ __volatile__ ( \ - "svc %b1\n\t" \ - : "=d" (_ret) \ - : "i" (__NR_##name) ASMFMT_##nr \ - : "memory" ); \ - _ret; }) - -#undef INTERNAL_SYSCALL_SVC0 -#define INTERNAL_SYSCALL_SVC0(name, err, nr, args...) \ - ({ \ - DECLARGS_##nr(args) \ - register unsigned long _nr __asm__("1") = (unsigned long)(__NR_##name); \ - register long _ret __asm__("2"); \ - __asm__ __volatile__ ( \ - "svc 0\n\t" \ - : "=d" (_ret) \ - : "d" (_nr) ASMFMT_##nr \ - : "memory" ); \ - _ret; }) - -#undef INTERNAL_SYSCALL_NCS -#define INTERNAL_SYSCALL_NCS(no, err, nr, args...) \ - ({ \ - DECLARGS_##nr(args) \ - register unsigned long _nr __asm__("1") = (unsigned long)(no); \ - register long _ret __asm__("2"); \ - __asm__ __volatile__ ( \ - "svc 0\n\t" \ - : "=d" (_ret) \ - : "d" (_nr) ASMFMT_##nr \ - : "memory" ); \ - _ret; }) - -#undef INTERNAL_SYSCALL -#define INTERNAL_SYSCALL(name, err, nr, args...) \ - (((__NR_##name) < 256) \ - ? INTERNAL_SYSCALL_DIRECT(name, err, nr, args) \ - : INTERNAL_SYSCALL_SVC0(name, err,nr, args)) - -#undef INTERNAL_SYSCALL_ERROR_P -#define INTERNAL_SYSCALL_ERROR_P(val, err) \ - ((unsigned long) (val) >= -4095UL) - -#undef INTERNAL_SYSCALL_ERRNO -#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val)) - -#define DECLARGS_0() -#define DECLARGS_1(arg1) \ - register unsigned long gpr2 __asm__ ("2") = (unsigned long)(arg1); -#define DECLARGS_2(arg1, arg2) \ - DECLARGS_1(arg1) \ - register unsigned long gpr3 __asm__ ("3") = (unsigned long)(arg2); -#define DECLARGS_3(arg1, arg2, arg3) \ - DECLARGS_2(arg1, arg2) \ - register unsigned long gpr4 __asm__ ("4") = (unsigned long)(arg3); -#define DECLARGS_4(arg1, arg2, arg3, arg4) \ - DECLARGS_3(arg1, arg2, arg3) \ - register unsigned long gpr5 __asm__ ("5") = (unsigned long)(arg4); -#define DECLARGS_5(arg1, arg2, arg3, arg4, arg5) \ - DECLARGS_4(arg1, arg2, arg3, arg4) \ - register unsigned long gpr6 __asm__ ("6") = (unsigned long)(arg5); -#define DECLARGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \ - DECLARGS_5(arg1, arg2, arg3, arg4, arg5) \ - register unsigned long gpr7 __asm__ ("7") = (unsigned long)(arg6); - -#define ASMFMT_0 -#define ASMFMT_1 , "0" (gpr2) -#define ASMFMT_2 , "0" (gpr2), "d" (gpr3) -#define ASMFMT_3 , "0" (gpr2), "d" (gpr3), "d" (gpr4) -#define ASMFMT_4 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5) -#define ASMFMT_5 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6) -#define ASMFMT_6 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6), "d" (gpr7) - -#define SINGLE_THREAD_BY_GLOBAL 1 - /* Pointer mangling support. */ #if IS_IN (rtld) /* We cannot use the thread descriptor because in ld.so we use setjmp diff --git a/sysdeps/unix/sysv/linux/s390/sysdep.h b/sysdeps/unix/sysv/linux/s390/sysdep.h index 33ed86f252..1df0462cc4 100644 --- a/sysdeps/unix/sysv/linux/s390/sysdep.h +++ b/sysdeps/unix/sysv/linux/s390/sysdep.h @@ -16,6 +16,106 @@ License along with the GNU C Library; if not, see . */ +#ifndef __ASSEMBLY__ + +#undef SYS_ify +#define SYS_ify(syscall_name) __NR_##syscall_name + +#undef INLINE_SYSCALL +#define INLINE_SYSCALL(name, nr, args...) \ + ({ \ + long _ret = INTERNAL_SYSCALL (name, , nr, args); \ + if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (_ret, ))) \ + { \ + __set_errno (INTERNAL_SYSCALL_ERRNO (_ret, )); \ + _ret = -1; \ + } \ + _ret; }) + +#undef INTERNAL_SYSCALL_DECL +#define INTERNAL_SYSCALL_DECL(err) do { } while (0) + +#undef INTERNAL_SYSCALL_DIRECT +#define INTERNAL_SYSCALL_DIRECT(name, err, nr, args...) \ + ({ \ + DECLARGS_##nr(args) \ + register long _ret __asm__("2"); \ + __asm__ __volatile__ ( \ + "svc %b1\n\t" \ + : "=d" (_ret) \ + : "i" (__NR_##name) ASMFMT_##nr \ + : "memory" ); \ + _ret; }) + +#undef INTERNAL_SYSCALL_SVC0 +#define INTERNAL_SYSCALL_SVC0(name, err, nr, args...) \ + ({ \ + DECLARGS_##nr(args) \ + register unsigned long _nr __asm__("1") = (unsigned long)(__NR_##name); \ + register long _ret __asm__("2"); \ + __asm__ __volatile__ ( \ + "svc 0\n\t" \ + : "=d" (_ret) \ + : "d" (_nr) ASMFMT_##nr \ + : "memory" ); \ + _ret; }) + +#undef INTERNAL_SYSCALL_NCS +#define INTERNAL_SYSCALL_NCS(no, err, nr, args...) \ + ({ \ + DECLARGS_##nr(args) \ + register unsigned long _nr __asm__("1") = (unsigned long)(no); \ + register long _ret __asm__("2"); \ + __asm__ __volatile__ ( \ + "svc 0\n\t" \ + : "=d" (_ret) \ + : "d" (_nr) ASMFMT_##nr \ + : "memory" ); \ + _ret; }) + +#undef INTERNAL_SYSCALL +#define INTERNAL_SYSCALL(name, nr, args...) \ + (((__NR_##name) < 256) \ + ? INTERNAL_SYSCALL_DIRECT(name, nr, args) \ + : INTERNAL_SYSCALL_SVC0(name, nr, args)) + +#undef INTERNAL_SYSCALL_ERROR_P +#define INTERNAL_SYSCALL_ERROR_P(val, err) \ + ((unsigned long) (val) >= -4095UL) + +#undef INTERNAL_SYSCALL_ERRNO +#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val)) + +#define DECLARGS_0() +#define DECLARGS_1(arg1) \ + register unsigned long gpr2 __asm__ ("2") = (unsigned long)(arg1); +#define DECLARGS_2(arg1, arg2) \ + DECLARGS_1(arg1) \ + register unsigned long gpr3 __asm__ ("3") = (unsigned long)(arg2); +#define DECLARGS_3(arg1, arg2, arg3) \ + DECLARGS_2(arg1, arg2) \ + register unsigned long gpr4 __asm__ ("4") = (unsigned long)(arg3); +#define DECLARGS_4(arg1, arg2, arg3, arg4) \ + DECLARGS_3(arg1, arg2, arg3) \ + register unsigned long gpr5 __asm__ ("5") = (unsigned long)(arg4); +#define DECLARGS_5(arg1, arg2, arg3, arg4, arg5) \ + DECLARGS_4(arg1, arg2, arg3, arg4) \ + register unsigned long gpr6 __asm__ ("6") = (unsigned long)(arg5); +#define DECLARGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \ + DECLARGS_5(arg1, arg2, arg3, arg4, arg5) \ + register unsigned long gpr7 __asm__ ("7") = (unsigned long)(arg6); + +#define ASMFMT_0 +#define ASMFMT_1 , "0" (gpr2) +#define ASMFMT_2 , "0" (gpr2), "d" (gpr3) +#define ASMFMT_3 , "0" (gpr2), "d" (gpr3), "d" (gpr4) +#define ASMFMT_4 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5) +#define ASMFMT_5 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6) +#define ASMFMT_6 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6), "d" (gpr7) + +#define SINGLE_THREAD_BY_GLOBAL 1 + + #define VDSO_NAME "LINUX_2.6.29" #define VDSO_HASH 123718585 @@ -29,3 +129,5 @@ #endif #define HAVE_GETTIMEOFDAY_VSYSCALL "__kernel_gettimeofday" #define HAVE_GETCPU_VSYSCALL "__kernel_getcpu" + +#endif