[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