[Android] [PATCH 5/7] jni: Use the syscall function in JNI for all Android archs
Edward Wang
edward.c.wang at compdigitec.com
Mon Jul 23 05:56:22 CEST 2012
It is better to use the syscall function instead of ASM for portability.
---
vlc-android/jni/eventfd.c | 22 ++--------------------
1 files changed, 2 insertions(+), 20 deletions(-)
diff --git a/vlc-android/jni/eventfd.c b/vlc-android/jni/eventfd.c
index 4c08612..7ad8c7e 100644
--- a/vlc-android/jni/eventfd.c
+++ b/vlc-android/jni/eventfd.c
@@ -19,29 +19,11 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
+#include <sys/syscall.h>
#include <sys/linux-syscalls.h>
#include <errno.h>
int eventfd(unsigned int initval, int flags)
{
- int ret;
- int syscall_nr = __NR_eventfd2;
-
- asm(
- "mov r0, %[initval] \n\t"
- "mov r1, %[flags] \n\t"
- "mov r7, %[nr] \n\t"
- "svc #0 \n\t"
- "mov %[ret], r0 \n\t"
- : [ret] "=r" (ret)
- : [initval] "r" (initval), [flags] "r" (flags), [nr] "r" (syscall_nr)
- : "r7"
- );
-
- if (ret < 0) {
- errno = -ret;
- return -1;
- }
-
- return ret;
+ return syscall(__NR_eventfd2, initval, flags);
}
--
1.7.5.4
More information about the Android
mailing list