summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael K. Johnson <johnsonm@redhat.com>2003-05-20 15:54:50 +0000
committerMichael K. Johnson <johnsonm@redhat.com>2003-05-20 15:54:50 +0000
commit83a9f8f17a73e86dbd7588a6cd9af194b9368fd3 (patch)
tree3f8a97286e05a1bdb9f28b63bc3779802ba95e39
parent27b51b1f9ca70f433d91addc7effc10cd6123d33 (diff)
downloadlibaio-83a9f8f17a73e86dbd7588a6cd9af194b9368fd3.tar.gz
symbol versioning patch from Ulrich
-rw-r--r--src/compat-0_1.c4
-rw-r--r--src/io_cancel.c4
-rw-r--r--src/io_destroy.c2
-rw-r--r--src/io_getevents.c3
-rw-r--r--src/io_queue_init.c1
-rw-r--r--src/io_queue_wait.c4
-rw-r--r--src/io_setup.c2
-rw-r--r--src/io_submit.c3
-rw-r--r--src/libaio.map24
-rw-r--r--src/syscall-i386.h30
-rw-r--r--src/syscall-ia64.h42
-rw-r--r--src/syscall-ppc.h63
-rw-r--r--src/syscall-s390.h38
-rw-r--r--src/syscall-x86_64.h30
-rw-r--r--src/syscall.h3
15 files changed, 110 insertions, 143 deletions
diff --git a/src/compat-0_1.c b/src/compat-0_1.c
index 9103658..d689bff 100644
--- a/src/compat-0_1.c
+++ b/src/compat-0_1.c
@@ -37,8 +37,8 @@ int compat0_1_io_cancel(io_context_t ctx, struct iocb *iocb)
return io_cancel(ctx, iocb, &event);
}
-SYMVER(compat0_1_io_wait, io_wait, 0.1);
-int compat0_1_io_wait(io_context_t ctx, struct iocb *iocb, const struct timespec *when)
+SYMVER(compat0_1_io_queue_wait, io_queue_wait, 0.1);
+int compat0_1_io_queue_wait(io_context_t ctx, struct iocb *iocb, const struct timespec *when)
{
return -ENOSYS;
}
diff --git a/src/io_cancel.c b/src/io_cancel.c
index 108a264..2f0f5f4 100644
--- a/src/io_cancel.c
+++ b/src/io_cancel.c
@@ -19,5 +19,5 @@
#include <libaio.h>
#include "syscall.h"
-io_syscall3(int, io_cancel, io_context_t, ctx, struct iocb *, iocb, struct io_event *, event)
-
+io_syscall3(int, io_cancel_0_4, io_cancel, io_context_t, ctx, struct iocb *, iocb, struct io_event *, event)
+DEFSYMVER(io_cancel_0_4, io_cancel, 0.4)
diff --git a/src/io_destroy.c b/src/io_destroy.c
index 1f231a8..0ab6bd1 100644
--- a/src/io_destroy.c
+++ b/src/io_destroy.c
@@ -20,4 +20,4 @@
#include <libaio.h>
#include "syscall.h"
-io_syscall1(int, io_destroy, io_context_t, ctx)
+io_syscall1(int, io_destroy, io_destroy, io_context_t, ctx)
diff --git a/src/io_getevents.c b/src/io_getevents.c
index aae2261..28d2e31 100644
--- a/src/io_getevents.c
+++ b/src/io_getevents.c
@@ -22,4 +22,5 @@
#include <time.h>
#include "syscall.h"
-io_syscall5(int, io_getevents, io_context_t, ctx, long, min_nr, long, nr, struct io_event *, events, struct timespec *, timeout)
+io_syscall5(int, io_getevents_0_4, io_getevents, io_context_t, ctx, long, min_nr, long, nr, struct io_event *, events, struct timespec *, timeout)
+DEFSYMVER(io_getevents_0_4, io_getevents, 0.4)
diff --git a/src/io_queue_init.c b/src/io_queue_init.c
index 405a1e0..563d137 100644
--- a/src/io_queue_init.c
+++ b/src/io_queue_init.c
@@ -23,7 +23,6 @@
#include "syscall.h"
-SYMVER(io_queue_init, io_queue_init, 0.1);
int io_queue_init(int maxevents, io_context_t *ctxp)
{
if (maxevents > 0) {
diff --git a/src/io_queue_wait.c b/src/io_queue_wait.c
index a6e0bec..89c8072 100644
--- a/src/io_queue_wait.c
+++ b/src/io_queue_wait.c
@@ -20,10 +20,12 @@
#include <linux/types.h>
#include <libaio.h>
#include <errno.h>
+#include "syscall.h"
struct timespec;
-int io_queue_wait(io_context_t ctx, struct timespec *timeout)
+int io_queue_wait_0_4(io_context_t ctx, struct timespec *timeout)
{
return io_getevents(ctx, 0, 0, NULL, timeout);
}
+DEFSYMVER(io_queue_wait_0_4, io_queue_wait, 0.4)
diff --git a/src/io_setup.c b/src/io_setup.c
index 031f7f0..4ba1afc 100644
--- a/src/io_setup.c
+++ b/src/io_setup.c
@@ -20,4 +20,4 @@
#include <libaio.h>
#include "syscall.h"
-io_syscall2(int, io_setup, int, maxevents, io_context_t *, ctxp)
+io_syscall2(int, io_setup, io_setup, int, maxevents, io_context_t *, ctxp)
diff --git a/src/io_submit.c b/src/io_submit.c
index 64b6416..e22ba54 100644
--- a/src/io_submit.c
+++ b/src/io_submit.c
@@ -20,5 +20,4 @@
#include <libaio.h>
#include "syscall.h"
-SYMVER(io_submit, io_submit, 0.1);
-io_syscall3(int, io_submit, io_context_t, ctx, long, nr, struct iocb **, iocbs)
+io_syscall3(int, io_submit, io_submit, io_context_t, ctx, long, nr, struct iocb **, iocbs)
diff --git a/src/libaio.map b/src/libaio.map
index 27d8ba3..dc37725 100644
--- a/src/libaio.map
+++ b/src/libaio.map
@@ -1,28 +1,22 @@
-LIBAIO_0.4 {
+LIBAIO_0.1 {
global:
- io_setup;
- io_destroy;
- io_cancel;
- io_getevents;
-
- # these are compatible with 0.1
io_queue_init;
io_queue_run;
io_queue_wait;
io_queue_release;
+ io_cancel;
io_submit;
+ io_getevents;
local:
*;
};
-LIBAIO_0.1 {
- io_queue_init;
- io_queue_run;
- io_queue_wait;
- io_queue_release;
+LIBAIO_0.4 {
+ global:
+ io_setup;
+ io_destroy;
io_cancel;
- io_submit;
io_getevents;
-};
-
+ io_queue_wait;
+} LIBAIO_0.1;
diff --git a/src/syscall-i386.h b/src/syscall-i386.h
index c483072..9c9ea50 100644
--- a/src/syscall-i386.h
+++ b/src/syscall-i386.h
@@ -4,52 +4,52 @@
#define __NR_io_submit 248
#define __NR_io_cancel 249
-#define io_syscall1(type, name, type1, arg1) \
- type name(type1 arg1) \
+#define io_syscall1(type, fname, sname, type1, arg1) \
+ type fname(type1 arg1) \
{ \
long __ret; \
__asm__ __volatile__("int $0x80" : "=a" (__ret) : \
- "0" (__NR_##name), "b" (arg1)); \
+ "0" (__NR_##sname), "b" (arg1)); \
return __ret; \
}
-#define io_syscall2(type, name, type1, arg1, type2, arg2) \
- type name(type1 arg1, type2 arg2) \
+#define io_syscall2(type, fname, sname, type1, arg1, type2, arg2) \
+ type fname(type1 arg1, type2 arg2) \
{ \
long __ret; \
__asm__ __volatile__("int $0x80" : "=a" (__ret) : \
- "0" (__NR_##name), "b" (arg1), "c" (arg2)); \
+ "0" (__NR_##sname), "b" (arg1), "c" (arg2)); \
return __ret; \
}
-#define io_syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \
- type name(type1 arg1, type2 arg2, type3 arg3) \
+#define io_syscall3(type, fname, sname, type1, arg1, type2, arg2, type3, arg3) \
+ type fname(type1 arg1, type2 arg2, type3 arg3) \
{ \
long __ret; \
__asm__ __volatile__("int $0x80" : "=a" (__ret) : \
- "0" (__NR_##name), "b" (arg1), "c" (arg2), \
+ "0" (__NR_##sname), "b" (arg1), "c" (arg2), \
"d" (arg3) \
); \
return __ret; \
}
-#define io_syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, type4, arg4) \
- type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+#define io_syscall4(type, fname, sname, type1, arg1, type2, arg2, type3, arg3, type4, arg4) \
+ type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
{ \
long __ret; \
__asm__ __volatile__("int $0x80" : "=a" (__ret) : \
- "0" (__NR_##name), "b" (arg1), "c" (arg2), \
+ "0" (__NR_##sname), "b" (arg1), "c" (arg2), \
"d" (arg3), "S" (arg4) \
); \
return __ret; \
}
-#define io_syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, type4, arg4, type5, arg5) \
- type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
+#define io_syscall5(type, fname, sname, type1, arg1, type2, arg2, type3, arg3, type4, arg4, type5, arg5) \
+ type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
{ \
long __ret; \
__asm__ __volatile__("int $0x80" : "=a" (__ret) : \
- "0" (__NR_##name), "b" (arg1), "c" (arg2), \
+ "0" (__NR_##sname), "b" (arg1), "c" (arg2), \
"d" (arg3), "S" (arg4), "D" (arg5) \
); \
return __ret; \
diff --git a/src/syscall-ia64.h b/src/syscall-ia64.h
index 484e97c..1bba742 100644
--- a/src/syscall-ia64.h
+++ b/src/syscall-ia64.h
@@ -4,43 +4,43 @@
#define __NR_io_submit 1241
#define __NR_io_cancel 1242
-#define __ia64_raw_syscall(name) \
+#define __ia64_raw_syscall(fname, sname) \
__asm__ (".text\n" \
- ".globl " SYMSTR(name) "\n" \
- SYMSTR(name) ":\n" \
- " mov r15=" SYMSTR( __NR_ ## name ) "\n" \
+ ".globl " SYMSTR(fname) "\n" \
+ SYMSTR(fname) ":\n" \
+ " mov r15=" SYMSTR( __NR_ ## sname ) "\n" \
" break 0x100000\n" \
" ;;\n" \
" cmp.eq p6,p0=-1,r10\n" \
" ;;\n" \
" (p6) sub r8=0,r8\n" \
" br.ret.sptk.few b0\n" \
- ".size " SYMSTR(name) ", . - " SYMSTR(name) "\n" \
- ".endp " SYMSTR(name) "\n" \
+ ".size " SYMSTR(fname) ", . - " SYMSTR(fname) "\n" \
+ ".endp " SYMSTR(fname) "\n" \
);
#define io_syscall0(type, name) \
extern type name(void); \
__ia64_raw_syscall(name);
-#define io_syscall1(type, name, type1, arg1) \
- extern type name(type1 arg1); \
- __ia64_raw_syscall(name);
+#define io_syscall1(type, fname, sname, type1, arg1) \
+ extern type fname(type1 arg1); \
+ __ia64_raw_syscall(fname, sname);
-#define io_syscall2(type, name, type1, arg1, type2, arg2) \
- extern type name(type1 arg1, type2 arg2); \
- __ia64_raw_syscall(name);
+#define io_syscall2(type, fname, sname, type1, arg1, type2, arg2) \
+ extern type fname(type1 arg1, type2 arg2); \
+ __ia64_raw_syscall(fname, sname);
-#define io_syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \
- extern type name(type1 arg1, type2 arg2, type3 arg3); \
- __ia64_raw_syscall(name);
+#define io_syscall3(type, fname, sname, type1, arg1, type2, arg2, type3, arg3) \
+ extern type fname(type1 arg1, type2 arg2, type3 arg3); \
+ __ia64_raw_syscall(fname, sname);
-#define io_syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, type4, arg4) \
- extern type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4); \
- __ia64_raw_syscall(name);
+#define io_syscall4(type, fname, sname, type1, arg1, type2, arg2, type3, arg3, type4, arg4) \
+ extern type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4); \
+ __ia64_raw_syscall(fname, sname);
-#define io_syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, type4, arg4, type5, arg5) \
- extern type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5); \
- __ia64_raw_syscall(name);
+#define io_syscall5(type, fname, sname, type1, arg1, type2, arg2, type3, arg3, type4, arg4, type5, arg5) \
+ extern type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5); \
+ __ia64_raw_syscall(fname, sname);
diff --git a/src/syscall-ppc.h b/src/syscall-ppc.h
index af218d9..ae26166 100644
--- a/src/syscall-ppc.h
+++ b/src/syscall-ppc.h
@@ -11,8 +11,8 @@
#define __syscall_clobbers \
"r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
-#define io_syscall1(type,name,type1,arg1) \
-type name(type1 arg1) \
+#define io_syscall1(type,fname,sname,type1,arg1) \
+type fname(type1 arg1) \
{ \
unsigned long __sc_ret, __sc_err; \
{ \
@@ -20,7 +20,7 @@ type name(type1 arg1) \
register unsigned long __sc_3 __asm__ ("r3"); \
\
__sc_3 = (unsigned long) (arg1); \
- __sc_0 = __NR_##name; \
+ __sc_0 = __NR_##sname; \
__asm__ __volatile__ \
("sc \n\t" \
"mfcr %1 " \
@@ -31,11 +31,11 @@ type name(type1 arg1) \
__sc_err = __sc_0; \
} \
if ( __sc_err & 0x10000000 ) return -((int)__sc_ret); \
- return (type) __sc_ret; \
+ return (type) __sc_ret; \
}
-#define io_syscall2(type,name,type1,arg1,type2,arg2) \
-type name(type1 arg1, type2 arg2) \
+#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \
+type fname(type1 arg1, type2 arg2) \
{ \
unsigned long __sc_ret, __sc_err; \
{ \
@@ -45,7 +45,7 @@ type name(type1 arg1, type2 arg2) \
\
__sc_3 = (unsigned long) (arg1); \
__sc_4 = (unsigned long) (arg2); \
- __sc_0 = __NR_##name; \
+ __sc_0 = __NR_##sname; \
__asm__ __volatile__ \
("sc \n\t" \
"mfcr %1 " \
@@ -60,8 +60,8 @@ type name(type1 arg1, type2 arg2) \
return (type) __sc_ret; \
}
-#define io_syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
-type name(type1 arg1, type2 arg2, type3 arg3) \
+#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \
+type fname(type1 arg1, type2 arg2, type3 arg3) \
{ \
unsigned long __sc_ret, __sc_err; \
{ \
@@ -73,7 +73,7 @@ type name(type1 arg1, type2 arg2, type3 arg3) \
__sc_3 = (unsigned long) (arg1); \
__sc_4 = (unsigned long) (arg2); \
__sc_5 = (unsigned long) (arg3); \
- __sc_0 = __NR_##name; \
+ __sc_0 = __NR_##sname; \
__asm__ __volatile__ \
("sc \n\t" \
"mfcr %1 " \
@@ -89,39 +89,8 @@ type name(type1 arg1, type2 arg2, type3 arg3) \
return (type) __sc_ret; \
}
-#define io_syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
-type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
-{ \
- unsigned long __sc_ret, __sc_err; \
- { \
- register unsigned long __sc_0 __asm__ ("r0"); \
- register unsigned long __sc_3 __asm__ ("r3"); \
- register unsigned long __sc_4 __asm__ ("r4"); \
- register unsigned long __sc_5 __asm__ ("r5"); \
- register unsigned long __sc_6 __asm__ ("r6"); \
- \
- __sc_3 = (unsigned long) (arg1); \
- __sc_4 = (unsigned long) (arg2); \
- __sc_5 = (unsigned long) (arg3); \
- __sc_6 = (unsigned long) (arg4); \
- __sc_0 = __NR_##name; \
- __asm__ __volatile__ \
- ("sc \n\t" \
- "mfcr %1 " \
- : "=&r" (__sc_3), "=&r" (__sc_0) \
- : "0" (__sc_3), "1" (__sc_0), \
- "r" (__sc_4), \
- "r" (__sc_5), \
- "r" (__sc_6) \
- : __syscall_clobbers); \
- __sc_ret = __sc_3; \
- __sc_err = __sc_0; \
- } \
- if ( __sc_err & 0x10000000 ) return -((int)__sc_ret); \
- return (type) __sc_ret; \
-}
-#define io_syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
-type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
{ \
unsigned long __sc_ret, __sc_err; \
{ \
@@ -135,7 +104,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
__sc_4 = (unsigned long) (arg2); \
__sc_5 = (unsigned long) (arg3); \
__sc_6 = (unsigned long) (arg4); \
- __sc_0 = __NR_##name; \
+ __sc_0 = __NR_##sname; \
__asm__ __volatile__ \
("sc \n\t" \
"mfcr %1 " \
@@ -152,8 +121,8 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
return (type) __sc_ret; \
}
-#define io_syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
-type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
+#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
{ \
unsigned long __sc_ret, __sc_err; \
{ \
@@ -169,7 +138,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
__sc_5 = (unsigned long) (arg3); \
__sc_6 = (unsigned long) (arg4); \
__sc_7 = (unsigned long) (arg5); \
- __sc_0 = __NR_##name; \
+ __sc_0 = __NR_##sname; \
__asm__ __volatile__ \
("sc \n\t" \
"mfcr %1 " \
diff --git a/src/syscall-s390.h b/src/syscall-s390.h
index b1738c7..515c217 100644
--- a/src/syscall-s390.h
+++ b/src/syscall-s390.h
@@ -12,34 +12,34 @@
#define __LR "lr " /* 32 bit load register */
#endif
-#define io_syscall0(type,name) \
-type name(void) { \
+#define io_syscall0(type,fname,sname) \
+type fname(void) { \
long __res; \
__asm__ __volatile__ ( \
" svc %b1\n" \
" "__LR" %0,2" \
: "=d" (__res) \
- : "i" (__NR_##name) \
+ : "i" (__NR_##sname) \
: _svc_clobber ); \
return (type) __res; \
}
-#define io_syscall1(type,name,type1,arg1) \
-type name(type1 arg1) { \
+#define io_syscall1(type,fname,sname,type1,arg1) \
+type fname(type1 arg1) { \
register type1 __arg1 asm("2") = arg1; \
long __res; \
__asm__ __volatile__ ( \
" svc %b1\n" \
" "__LR" %0,2" \
: "=d" (__res) \
- : "i" (__NR_##name), \
+ : "i" (__NR_##sname), \
"d" (__arg1) \
: _svc_clobber ); \
return (type) __res; \
}
-#define io_syscall2(type,name,type1,arg1,type2,arg2) \
-type name(type1 arg1, type2 arg2) { \
+#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \
+type fname(type1 arg1, type2 arg2) { \
register type1 __arg1 asm("2") = arg1; \
register type2 __arg2 asm("3") = arg2; \
long __res; \
@@ -47,16 +47,16 @@ type name(type1 arg1, type2 arg2) { \
" svc %b1\n" \
" "__LR" %0,2" \
: "=d" (__res) \
- : "i" (__NR_##name), \
+ : "i" (__NR_##sname), \
"d" (__arg1), \
"d" (__arg2) \
: _svc_clobber ); \
return (type) __res; \
}
-#define io_syscall3(type,name,type1,arg1,type2,arg2, \
+#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2, \
type3,arg3) \
-type name(type1 arg1, type2 arg2, type3 arg3) { \
+type fname(type1 arg1, type2 arg2, type3 arg3) { \
register type1 __arg1 asm("2") = arg1; \
register type2 __arg2 asm("3") = arg2; \
register type3 __arg3 asm("4") = arg3; \
@@ -65,7 +65,7 @@ type name(type1 arg1, type2 arg2, type3 arg3) { \
" svc %b1\n" \
" "__LR" %0,2" \
: "=d" (__res) \
- : "i" (__NR_##name), \
+ : "i" (__NR_##sname), \
"d" (__arg1), \
"d" (__arg2), \
"d" (__arg3) \
@@ -73,9 +73,9 @@ type name(type1 arg1, type2 arg2, type3 arg3) { \
return (type) __res; \
}
-#define io_syscall4(type,name,type1,arg1,type2,arg2, \
+#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2, \
type3,arg3,type4,arg4) \
-type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \
+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \
register type1 __arg1 asm("2") = arg1; \
register type2 __arg2 asm("3") = arg2; \
register type3 __arg3 asm("4") = arg3; \
@@ -85,7 +85,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \
" svc %b1\n" \
" "__LR" %0,2" \
: "=d" (__res) \
- : "i" (__NR_##name), \
+ : "i" (__NR_##sname), \
"d" (__arg1), \
"d" (__arg2), \
"d" (__arg3), \
@@ -94,10 +94,10 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \
return (type) __res; \
}
-#define io_syscall5(type,name,type1,arg1,type2,arg2, \
+#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2, \
type3,arg3,type4,arg4,type5,arg5) \
-type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \
- type5 arg5) { \
+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \
+ type5 arg5) { \
register type1 __arg1 asm("2") = arg1; \
register type2 __arg2 asm("3") = arg2; \
register type3 __arg3 asm("4") = arg3; \
@@ -108,7 +108,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \
" svc %b1\n" \
" "__LR" %0,2" \
: "=d" (__res) \
- : "i" (__NR_##name), \
+ : "i" (__NR_##sname), \
"d" (__arg1), \
"d" (__arg2), \
"d" (__arg3), \
diff --git a/src/syscall-x86_64.h b/src/syscall-x86_64.h
index 572eecf..fd301a4 100644
--- a/src/syscall-x86_64.h
+++ b/src/syscall-x86_64.h
@@ -4,52 +4,52 @@
#define __NR_io_submit 209
#define __NR_io_cancel 210
-#define io_syscall1(type, name, type1, arg1) \
- type name(type1 arg1) \
+#define io_syscall1(type, fname, sname, type1, arg1) \
+ type fname(type1 arg1) \
{ \
long __ret; \
__asm__ __volatile__("syscall" : "=a" (__ret) : \
- "0" (__NR_##name), "D" (arg1)); \
+ "0" (__NR_##sname), "D" (arg1)); \
return __ret; \
}
-#define io_syscall2(type, name, type1, arg1, type2, arg2) \
- type name(type1 arg1, type2 arg2) \
+#define io_syscall2(type, fname, sname, type1, arg1, type2, arg2) \
+ type fname(type1 arg1, type2 arg2) \
{ \
long __ret; \
__asm__ __volatile__("syscall" : "=a" (__ret) : \
- "0" (__NR_##name), "D" (arg1), "S" (arg2)); \
+ "0" (__NR_##sname), "D" (arg1), "S" (arg2)); \
return __ret; \
}
-#define io_syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \
- type name(type1 arg1, type2 arg2, type3 arg3) \
+#define io_syscall3(type, fname, sname, type1, arg1, type2, arg2, type3, arg3) \
+ type fname(type1 arg1, type2 arg2, type3 arg3) \
{ \
long __ret; \
__asm__ __volatile__("syscall" : "=a" (__ret) : \
- "0" (__NR_##name), "D" (arg1), "S" (arg2), \
+ "0" (__NR_##sname), "D" (arg1), "S" (arg2), \
"d" (arg3) \
); \
return __ret; \
}
-#define io_syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, type4, arg4) \
- type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+#define io_syscall4(type, fname, sname, type1, arg1, type2, arg2, type3, arg3, type4, arg4) \
+ type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
{ \
long __ret; \
__asm__ __volatile__("movq %5,%%r10 ; syscall" : "=a" (__ret) : \
- "0" (__NR_##name), "D" (arg1), "S" (arg2), \
+ "0" (__NR_##sname), "D" (arg1), "S" (arg2), \
"d" (arg3), "g" (arg4) \
); \
return __ret; \
}
-#define io_syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, type4, arg4, type5, arg5) \
- type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
+#define io_syscall5(type, fname, sname, type1, arg1, type2, arg2, type3, arg3, type4, arg4, type5, arg5) \
+ type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
{ \
long __ret; \
__asm__ __volatile__("movq %5,%%r10 ; movq %6,%%r8 ; syscall" : "=a" (__ret) : \
- "0" (__NR_##name), "D" (arg1), "S" (arg2), \
+ "0" (__NR_##sname), "D" (arg1), "S" (arg2), \
"d" (arg3), "g" (arg4), "g" (arg5) \
); \
return __ret; \
diff --git a/src/syscall.h b/src/syscall.h
index f4e288f..e1edf80 100644
--- a/src/syscall.h
+++ b/src/syscall.h
@@ -4,6 +4,9 @@
#define SYMVER(compat_sym, orig_sym, ver_sym) \
__asm__(".symver " SYMSTR(compat_sym) "," SYMSTR(orig_sym) "@LIBAIO_" SYMSTR(ver_sym));
+#define DEFSYMVER(compat_sym, orig_sym, ver_sym) \
+ __asm__(".symver " SYMSTR(compat_sym) "," SYMSTR(orig_sym) "@@LIBAIO_" SYMSTR(ver_sym));
+
#if defined(__i386__)
#include "syscall-i386.h"
#elif defined(__x86_64__)