Module Name:    src
Committed By:   christos
Date:           Thu Sep 24 14:26:44 UTC 2015

Modified Files:
        src/external/cddl/osnet/dev/systrace: systrace.c

Log Message:
use the alternate syscall names if available


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/external/cddl/osnet/dev/systrace/systrace.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/systrace/systrace.c
diff -u src/external/cddl/osnet/dev/systrace/systrace.c:1.7 src/external/cddl/osnet/dev/systrace/systrace.c:1.8
--- src/external/cddl/osnet/dev/systrace/systrace.c:1.7	Tue Mar 10 08:17:50 2015
+++ src/external/cddl/osnet/dev/systrace/systrace.c	Thu Sep 24 10:26:44 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: systrace.c,v 1.7 2015/03/10 12:17:50 christos Exp $	*/
+/*	$NetBSD: systrace.c,v 1.8 2015/09/24 14:26:44 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -63,19 +63,23 @@
 
 #ifndef NATIVE
 extern const char	* const CONCAT(emulname,_syscallnames)[];
+extern const char	* const CONCAT(alt,CONCAT(emulname,_syscallnames))[];
 extern 	struct sysent 	CONCAT(emulname,_sysent)[];
 #define	MODNAME		CONCAT(dtrace_syscall_,emulname)
 #define	MODDEP		"dtrace_syscall,compat_" STRING(emulname)
 #define	MAXSYSCALL	CONCAT(EMULNAME,_SYS_MAXSYSCALL)
 #define	SYSCALLNAMES	CONCAT(emulname,_syscallnames)
+#define	ALTSYSCALLNAMES	CONCAT(alt,CONCAT(emulname,_syscallnames))
 #define	SYSENT		CONCAT(emulname,_sysent)
 #define	PROVNAME	STRING(emulname) "_syscall"
 #else
 extern const char	* const syscallnames[];
+extern const char	* const altsyscallnames[];
 #define	MODNAME		dtrace_syscall
 #define	MODDEP		"dtrace"
 #define	MAXSYSCALL	SYS_MAXSYSCALL
 #define	SYSCALLNAMES	syscallnames
+#define	ALTSYSCALLNAMES	altsyscallnames
 #define	SYSENT		sysent
 #define	PROVNAME	"syscall"
 #endif
@@ -181,15 +185,16 @@ systrace_provide(void *arg, const dtrace
 		return;
 
 	for (i = 0; i < MAXSYSCALL; i++) {
-		if (dtrace_probe_lookup(systrace_id, NULL,
-		    SYSCALLNAMES[i], "entry") != 0)
+		const char *name = ALTSYSCALLNAMES[i] ? ALTSYSCALLNAMES[i] :
+		    SYSCALLNAMES[i];
+		if (dtrace_probe_lookup(systrace_id, NULL, name, "entry") != 0)
 			continue;
 
 		(void) dtrace_probe_create(systrace_id, NULL,
-		    SYSCALLNAMES[i], "entry", SYSTRACE_ARTIFICIAL_FRAMES,
+		    name, "entry", SYSTRACE_ARTIFICIAL_FRAMES,
 		    (void *)(intptr_t)SYSTRACE_ENTRY(i));
 		(void) dtrace_probe_create(systrace_id, NULL,
-		    SYSCALLNAMES[i], "return", SYSTRACE_ARTIFICIAL_FRAMES,
+		    name, "return", SYSTRACE_ARTIFICIAL_FRAMES,
 		    (void *)(intptr_t)SYSTRACE_RETURN(i));
 	}
 }

Reply via email to