[Glibc-bsd-commits] r4635 - in trunk/glibc-ports/kfreebsd: i386 x86_64
Petr Salinger
ps-guest at alioth.debian.org
Mon Jul 8 12:47:57 UTC 2013
Author: ps-guest
Date: 2013-06-28 11:37:26 +0000 (Fri, 28 Jun 2013)
New Revision: 4635
Modified:
trunk/glibc-ports/kfreebsd/i386/syscalls-internal.h
trunk/glibc-ports/kfreebsd/x86_64/syscalls-internal.h
Log:
define INTERNAL_SYSCALL_clock_gettime
Modified: trunk/glibc-ports/kfreebsd/i386/syscalls-internal.h
===================================================================
--- trunk/glibc-ports/kfreebsd/i386/syscalls-internal.h 2013-06-27 19:43:07 UTC (rev 4634)
+++ trunk/glibc-ports/kfreebsd/i386/syscalls-internal.h 2013-06-28 11:37:26 UTC (rev 4635)
@@ -41,8 +41,29 @@
#define INTERNAL_SYSCALL(name, err, nr, args...) \
INTERNAL_SYSCALL_##name(name, err, nr, ##args)
-
-
+
+
+#define INTERNAL_SYSCALL_clock_gettime(name, err, nr, clkid, ts) \
+(void)({ \
+ register long int _a1 = (long int) (clkid); \
+ register long int _a2 = (long int) (ts); \
+ register long int result; \
+ register long int _trash; \
+ asm volatile ( \
+ "pushl %4\n\t" \
+ "pushl %3\n\t" \
+ "pushl %2\n\t" \
+ "int $0x80\n\t" \
+ "addl $12,%%esp\n\t" \
+ : "=a" (result), \
+ "=d" (_trash) \
+ : "0" ((long int) SYS_##name), \
+ "ri" (_a1), \
+ "ri" (_a2) \
+ : "memory", "cc" ); \
+ result; \
+})
+
#define INTERNAL_SYSCALL_close(name, err, nr, fd) \
(void)({ \
register long int _a1 = (long int) (fd); \
@@ -60,6 +81,27 @@
result; \
})
+#define INTERNAL_SYSCALL_kill(name, err, nr, pid, sig) \
+(void)({ \
+ register long int _a1 = (long int) (pid); \
+ register long int _a2 = (long int) (sig); \
+ register long int result; \
+ register long int _trash; \
+ asm volatile ( \
+ "pushl %4\n\t" \
+ "pushl %3\n\t" \
+ "pushl %2\n\t" \
+ "int $0x80\n\t" \
+ "addl $12,%%esp\n\t" \
+ : "=a" (result), \
+ "=d" (_trash) \
+ : "0" ((long int) SYS_##name), \
+ "ri" (_a1), \
+ "ri" (_a2) \
+ : "memory", "cc" ); \
+ result; \
+})
+
#define INTERNAL_SYSCALL_write(name, err, nr, fd, buf, cnt) \
(void)({ \
register long int _a1 = (long int) (fd); \
Modified: trunk/glibc-ports/kfreebsd/x86_64/syscalls-internal.h
===================================================================
--- trunk/glibc-ports/kfreebsd/x86_64/syscalls-internal.h 2013-06-27 19:43:07 UTC (rev 4634)
+++ trunk/glibc-ports/kfreebsd/x86_64/syscalls-internal.h 2013-06-28 11:37:26 UTC (rev 4635)
@@ -43,6 +43,21 @@
INTERNAL_SYSCALL_##name(name, err, nr, ##args)
+#define INTERNAL_SYSCALL_clock_gettime(name, err, nr, clkid, ts) \
+(void)({ \
+ register long int _a1 = (long int) (clkid); \
+ register long int _a2 = (long int) (ts); \
+ register long int result; \
+ asm volatile ( \
+ "syscall" \
+ : "=a" (result) \
+ : "0" ((long int) SYS_##name), \
+ "D" (_a1), \
+ "S" (_a2) \
+ : "memory", "cc", "cx", "dx", "r8", "r9", "r10", "r11"); \
+ result; \
+})
+
#define INTERNAL_SYSCALL_close(name, err, nr, fd) \
(void)({ \
register long int _a1 = (long int) (fd); \
@@ -65,8 +80,8 @@
"syscall" \
: "=a" (result) \
: "0" ((long int) SYS_##name), \
- "D" (_a1) \
- "S" (_a2), \
+ "D" (_a1), \
+ "S" (_a2) \
: "memory", "cc", "cx", "dx", "r8", "r9", "r10", "r11"); \
result; \
})
More information about the Glibc-bsd-commits
mailing list