Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 2 Apr 2011 10:28:08 +0000 (UTC)
From:      Dmitry Chagin <dchagin@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r220276 - in stable/7/usr.bin: kdump ktrace
Message-ID:  <201104021028.p32AS8c2078623@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dchagin
Date: Sat Apr  2 10:28:08 2011
New Revision: 220276
URL: http://svn.freebsd.org/changeset/base/220276

Log:
  Revert r220268, SV_ABI patches was never merged to 7.

Deleted:
  stable/7/usr.bin/kdump/linux_syscalls.conf
Modified:
  stable/7/usr.bin/kdump/Makefile
  stable/7/usr.bin/kdump/kdump.1
  stable/7/usr.bin/kdump/kdump.c
  stable/7/usr.bin/ktrace/ktrace.c
  stable/7/usr.bin/ktrace/ktrace.h

Modified: stable/7/usr.bin/kdump/Makefile
==============================================================================
--- stable/7/usr.bin/kdump/Makefile	Sat Apr  2 09:46:09 2011	(r220275)
+++ stable/7/usr.bin/kdump/Makefile	Sat Apr  2 10:28:08 2011	(r220276)
@@ -1,21 +1,13 @@
 #	@(#)Makefile	8.1 (Berkeley) 6/6/93
 # $FreeBSD$
 
-.if (${MACHINE_ARCH} == "amd64")
-SFX=		32
-.endif
-
 .PATH: ${.CURDIR}/../ktrace
 
 PROG=		kdump
 SRCS=		kdump.c ioctl.c kdump_subr.c subr.c
 CFLAGS+=	-I${.CURDIR}/../ktrace -I${.CURDIR} -I${.CURDIR}/../..
 
-.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
-SRCS+=		linux_syscalls.c
-.endif
-
-CLEANFILES=	ioctl.c kdump_subr.c linux_syscalls.c
+CLEANFILES=	ioctl.c kdump_subr.c
 
 ioctl.c: mkioctls
 	sh ${.CURDIR}/mkioctls ${DESTDIR}/usr/include > ${.TARGET}
@@ -23,10 +15,4 @@ ioctl.c: mkioctls
 kdump_subr.c: mksubr
 	sh ${.CURDIR}/mksubr ${DESTDIR}/usr/include > ${.TARGET}
 
-linux_syscalls.c:
-	/bin/sh ${.CURDIR}/../../sys/kern/makesyscalls.sh \
-	    ${.CURDIR}/../../sys/${MACHINE_ARCH}/linux${SFX}/syscalls.master ${.CURDIR}/linux_syscalls.conf
-	echo "int nlinux_syscalls = sizeof(linux_syscallnames) / sizeof(linux_syscallnames[0]);" \
-	    >> linux_syscalls.c
-
 .include <bsd.prog.mk>

Modified: stable/7/usr.bin/kdump/kdump.1
==============================================================================
--- stable/7/usr.bin/kdump/kdump.1	Sat Apr  2 09:46:09 2011	(r220275)
+++ stable/7/usr.bin/kdump/kdump.1	Sat Apr  2 10:28:08 2011	(r220276)
@@ -40,7 +40,7 @@
 .Nd display kernel trace data
 .Sh SYNOPSIS
 .Nm
-.Op Fl dEnlHRsTA
+.Op Fl dEnlHRsT
 .Op Fl f Ar trfile
 .Op Fl m Ar maxdata
 .Op Fl p Ar pid
@@ -103,8 +103,6 @@ GIDs, dates etc. symbolically instead of
 Suppress display of I/O data.
 .It Fl T
 Display absolute timestamps for each entry (seconds since epoch).
-.It Fl A
-Display description of the ABI of traced process.
 .It Fl t Ar trstr
 See the
 .Fl t

Modified: stable/7/usr.bin/kdump/kdump.c
==============================================================================
--- stable/7/usr.bin/kdump/kdump.c	Sat Apr  2 09:46:09 2011	(r220275)
+++ stable/7/usr.bin/kdump/kdump.c	Sat Apr  2 10:28:08 2011	(r220276)
@@ -59,9 +59,7 @@ extern int errno;
 #include <sys/ioctl.h>
 #include <sys/socket.h>
 #include <sys/stat.h>
-#include <sys/sysent.h>
 #include <sys/un.h>
-#include <sys/queue.h>
 #ifdef IPX
 #include <sys/types.h>
 #include <netipx/ipx.h>
@@ -85,12 +83,10 @@ extern int errno;
 #include "ktrace.h"
 #include "kdump_subr.h"
 
-u_int abidump(struct ktr_header *);
-int fetchprocinfo(struct ktr_header *, u_int *);
 int fread_tail(void *, int, int);
 void dumpheader(struct ktr_header *);
-void ktrsyscall(struct ktr_syscall *, u_int);
-void ktrsysret(struct ktr_sysret *, u_int);
+void ktrsyscall(struct ktr_syscall *);
+void ktrsysret(struct ktr_sysret *);
 void ktrnamei(char *, int);
 void hexdump(char *, int, int);
 void visdump(char *, int, int);
@@ -105,57 +101,13 @@ void usage(void);
 const char *ioctlname(u_long);
 
 int timestamp, decimal, fancy = 1, suppressdata, tail, threads, maxdata,
-    resolv = 0, abiflag = 0;
+    resolv = 0;
 const char *tracefile = DEF_TRACEFILE;
 struct ktr_header ktr_header;
 
 #define TIME_FORMAT	"%b %e %T %Y"
 #define eqs(s1, s2)	(strcmp((s1), (s2)) == 0)
 
-#define print_number(i,n,c) do {		\
-	if (decimal)				\
-		printf("%c%ld", c, (long)*i);	\
-	else					\
-		printf("%c%#lx", c, (long)*i);	\
-	i++;					\
-	n--;					\
-	c = ',';				\
-	} while (0);
-
-#if defined(__amd64__) || defined(__i386__)
-
-void linux_ktrsyscall(struct ktr_syscall *);
-void linux_ktrsysret(struct ktr_sysret *);
-extern char *linux_syscallnames[];
-extern int nlinux_syscalls;
-
-/*
- * from linux.h
- * Linux syscalls return negative errno's, we do positive and map them
- */
-static int bsd_to_linux_errno[ELAST + 1] = {
-	-0,  -1,  -2,  -3,  -4,  -5,  -6,  -7,  -8,  -9,
-	-10, -35, -12, -13, -14, -15, -16, -17, -18, -19,
-	-20, -21, -22, -23, -24, -25, -26, -27, -28, -29,
-	-30, -31, -32, -33, -34, -11,-115,-114, -88, -89,
-	-90, -91, -92, -93, -94, -95, -96, -97, -98, -99,
-	-100,-101,-102,-103,-104,-105,-106,-107,-108,-109,
-	-110,-111, -40, -36,-112,-113, -39, -11, -87,-122,
-	-116, -66,  -6,  -6,  -6,  -6,  -6, -37, -38,  -9,
-	-6,  -6, -43, -42, -75,-125, -84, -95, -16, -74,
-	-72, -67, -71
-};
-#endif
-
-struct proc_info
-{
-	TAILQ_ENTRY(proc_info)	info;
-	u_int			sv_flags;
-	pid_t			pid;
-};
-
-TAILQ_HEAD(trace_procs, proc_info) trace_procs;
-
 int
 main(int argc, char *argv[])
 {
@@ -164,15 +116,11 @@ main(int argc, char *argv[])
 	int trpoints = ALL_POINTS;
 	int drop_logged;
 	pid_t pid = 0;
-	u_int sv_flags;
 
 	(void) setlocale(LC_CTYPE, "");
 
-	while ((ch = getopt(argc,argv,"f:dElm:np:AHRrsTt:")) != -1)
+	while ((ch = getopt(argc,argv,"f:dElm:np:HRrsTt:")) != -1)
 		switch((char)ch) {
-		case 'A':
-			abiflag = 1;
-			break;
 		case 'f':
 			tracefile = optarg;
 			break;
@@ -226,7 +174,6 @@ main(int argc, char *argv[])
 		errx(1, "%s", strerror(ENOMEM));
 	if (!freopen(tracefile, "r", stdin))
 		err(1, "%s", tracefile);
-	TAILQ_INIT(&trace_procs);
 	drop_logged = 0;
 	while (fread_tail(&ktr_header, sizeof(struct ktr_header), 1)) {
 		if (ktr_header.ktr_type & KTR_DROP) {
@@ -259,9 +206,6 @@ main(int argc, char *argv[])
 		}
 		if (ktrlen && fread_tail(m, ktrlen, 1) == 0)
 			errx(1, "data too short");
-		if (fetchprocinfo(&ktr_header, (u_int *)m) != 0)
-			continue;
-		sv_flags = abidump(&ktr_header);
 		if (pid && ktr_header.ktr_pid != pid)
 			continue;
 		if ((trpoints & (1<<ktr_header.ktr_type)) == 0)
@@ -269,20 +213,10 @@ main(int argc, char *argv[])
 		drop_logged = 0;
 		switch (ktr_header.ktr_type) {
 		case KTR_SYSCALL:
-#if defined(__amd64__) || defined(__i386__)
-			if ((sv_flags & SV_ABI_MASK) == SV_ABI_LINUX)
-				linux_ktrsyscall((struct ktr_syscall *)m);
-			else
-#endif
-				ktrsyscall((struct ktr_syscall *)m, sv_flags);
+			ktrsyscall((struct ktr_syscall *)m);
 			break;
 		case KTR_SYSRET:
-#if defined(__amd64__) || defined(__i386__)
-			if ((sv_flags & SV_ABI_MASK) == SV_ABI_LINUX)
-				linux_ktrsysret((struct ktr_sysret *)m);
-			else
-#endif
-				ktrsysret((struct ktr_sysret *)m, sv_flags);
+			ktrsysret((struct ktr_sysret *)m);
 			break;
 		case KTR_NAMEI:
 		case KTR_SYSCTL:
@@ -325,84 +259,6 @@ fread_tail(void *buf, int size, int num)
 	return (i);
 }
 
-int
-fetchprocinfo(struct ktr_header *kth, u_int *flags)
-{
-	struct proc_info *pi;
-
-	switch (kth->ktr_type) {
-	case KTR_PROCCTOR:
-		TAILQ_FOREACH(pi, &trace_procs, info) {
-			if (pi->pid == kth->ktr_pid) {
-				TAILQ_REMOVE(&trace_procs, pi, info);
-				break;
-			}
-		}
-		pi = malloc(sizeof(struct proc_info));
-		if (pi == NULL)
-			errx(1, "%s", strerror(ENOMEM));
-		pi->sv_flags = *flags;
-		pi->pid = kth->ktr_pid;
-		TAILQ_INSERT_TAIL(&trace_procs, pi, info);
-		return (1);
-
-	case KTR_PROCDTOR:
-		TAILQ_FOREACH(pi, &trace_procs, info) {
-			if (pi->pid == kth->ktr_pid) {
-				TAILQ_REMOVE(&trace_procs, pi, info);
-				free(pi);
-				break;
-			}
-		}
-		return (1);
-	}
-
-	return (0);
-}
-
-u_int
-abidump(struct ktr_header *kth)
-{
-	struct proc_info *pi;
-	const char *abi;
-	const char *arch;
-	u_int flags = 0;
-
-	TAILQ_FOREACH(pi, &trace_procs, info) {
-		if (pi->pid == kth->ktr_pid) {
-			flags = pi->sv_flags;
-			break;
-		}
-	}
-
-	if (abiflag == 0)
-		return (flags);
-
-	switch (flags & SV_ABI_MASK) {
-	case SV_ABI_LINUX:
-		abi = "L";
-		break;
-	case SV_ABI_FREEBSD:
-		abi = "F";
-		break;
-	default:
-		abi = "U";
-		break;
-	}
-
-	if (flags != 0) {
-		if (flags & SV_LP64)
-			arch = "64";
-		else
-			arch = "32";
-	} else
-		arch = "00";
-
-	printf("%s%s  ", abi, arch);
-
-	return (flags);
-}
-
 void
 dumpheader(struct ktr_header *kth)
 {
@@ -438,10 +294,6 @@ dumpheader(struct ktr_header *kth)
 	case KTR_SYSCTL:
 		type = "SCTL";
 		break;
-	case KTR_PROCCTOR:
-		/* FALLTHROUGH */
-	case KTR_PROCDTOR:
-		return;
 	default:
 		(void)sprintf(unknown, "UNKNOWN(%d)", kth->ktr_type);
 		type = unknown;
@@ -486,21 +338,30 @@ dumpheader(struct ktr_header *kth)
 int nsyscalls = sizeof (syscallnames) / sizeof (syscallnames[0]);
 
 void
-ktrsyscall(struct ktr_syscall *ktr, u_int flags)
+ktrsyscall(struct ktr_syscall *ktr)
 {
 	int narg = ktr->ktr_narg;
 	register_t *ip;
 
-	if ((flags != 0 && ((flags & SV_ABI_MASK) != SV_ABI_FREEBSD)) ||
-	    (ktr->ktr_code >= nsyscalls || ktr->ktr_code < 0))
+	if (ktr->ktr_code >= nsyscalls || ktr->ktr_code < 0)
 		(void)printf("[%d]", ktr->ktr_code);
 	else
 		(void)printf("%s", syscallnames[ktr->ktr_code]);
 	ip = &ktr->ktr_args[0];
 	if (narg) {
 		char c = '(';
-		if (fancy &&
-		    (flags == 0 || (flags & SV_ABI_MASK) == SV_ABI_FREEBSD)) {
+		if (fancy) {
+
+#define print_number(i,n,c) do {                      \
+	if (decimal)                                  \
+		(void)printf("%c%ld", c, (long)*i);   \
+	else                                          \
+		(void)printf("%c%#lx", c, (long)*i);  \
+	i++;                                          \
+	n--;                                          \
+	c = ',';                                      \
+	} while (0);
+
 			if (ktr->ktr_code == SYS_ioctl) {
 				const char *cp;
 				print_number(ip,narg,c);
@@ -953,14 +814,13 @@ ktrsyscall(struct ktr_syscall *ktr, u_in
 }
 
 void
-ktrsysret(struct ktr_sysret *ktr, u_int flags)
+ktrsysret(struct ktr_sysret *ktr)
 {
 	register_t ret = ktr->ktr_retval;
 	int error = ktr->ktr_error;
 	int code = ktr->ktr_code;
 
-	if ((flags != 0 && ((flags & SV_ABI_MASK) != SV_ABI_FREEBSD)) ||
-	    (code >= nsyscalls || code < 0))
+	if (code >= nsyscalls || code < 0)
 		(void)printf("[%d] ", code);
 	else
 		(void)printf("%s ", syscallnames[code]);
@@ -1508,71 +1368,10 @@ invalid:
 	printf("invalid record\n");
 }
 
-#if defined(__amd64__) || defined(__i386__)
-void
-linux_ktrsyscall(struct ktr_syscall *ktr)
-{
-	int narg = ktr->ktr_narg;
-	register_t *ip;
-
-	if (ktr->ktr_code >= nlinux_syscalls || ktr->ktr_code < 0)
-		printf("[%d]", ktr->ktr_code);
-	else
-		printf("%s", linux_syscallnames[ktr->ktr_code]);
-	ip = &ktr->ktr_args[0];
-	if (narg) {
-		char c = '(';
-		while (narg > 0)
-			print_number(ip, narg, c);
-		putchar(')');
-	}
-	putchar('\n');
-}
-
-void
-linux_ktrsysret(struct ktr_sysret *ktr)
-{
-	register_t ret = ktr->ktr_retval;
-	int error = ktr->ktr_error;
-	int code = ktr->ktr_code;
-
-	if (code >= nlinux_syscalls || code < 0)
-		printf("[%d] ", code);
-	else
-		printf("%s ", linux_syscallnames[code]);
-
-	if (error == 0) {
-		if (fancy) {
-			printf("%ld", (long)ret);
-			if (ret < 0 || ret > 9)
-				printf("/%#lx", (long)ret);
-		} else {
-			if (decimal)
-				printf("%ld", (long)ret);
-			else
-				printf("%#lx", (long)ret);
-		}
-	} else if (error == ERESTART)
-		printf("RESTART");
-	else if (error == EJUSTRETURN)
-		printf("JUSTRETURN");
-	else {
-		if (ktr->ktr_error <= ELAST + 1)
-			error = abs(bsd_to_linux_errno[ktr->ktr_error]);
-		else
-			error = 999;
-		printf("-1 errno %d", error);
-		if (fancy)
-			printf(" %s", strerror(ktr->ktr_error));
-	}
-	putchar('\n');
-}
-#endif
-
 void
 usage(void)
 {
-	fprintf(stderr, "usage: kdump [-dEnlHRrsTA] [-f trfile] "
+	fprintf(stderr, "usage: kdump [-dEnlHRrsT] [-f trfile] "
 	    "[-m maxdata] [-p pid] [-t trstr]\n");
 	exit(1);
 }

Modified: stable/7/usr.bin/ktrace/ktrace.c
==============================================================================
--- stable/7/usr.bin/ktrace/ktrace.c	Sat Apr  2 09:46:09 2011	(r220275)
+++ stable/7/usr.bin/ktrace/ktrace.c	Sat Apr  2 10:28:08 2011	(r220276)
@@ -163,8 +163,6 @@ main(int argc, char *argv[])
 	(void)umask(omask);
 	(void)close(fd);
 
-	trpoints |= PROC_ABI_POINTS;
-
 	if (*argv) { 
 		if (ktrace(tracefile, ops, trpoints, getpid()) < 0)
 			err(1, "%s", tracefile);

Modified: stable/7/usr.bin/ktrace/ktrace.h
==============================================================================
--- stable/7/usr.bin/ktrace/ktrace.h	Sat Apr  2 09:46:09 2011	(r220275)
+++ stable/7/usr.bin/ktrace/ktrace.h	Sat Apr  2 10:28:08 2011	(r220276)
@@ -38,9 +38,7 @@
 		    KTRFAC_GENIO | KTRFAC_PSIG | KTRFAC_USER | \
 		    KTRFAC_STRUCT | KTRFAC_SYSCTL)
 
-#define PROC_ABI_POINTS (KTRFAC_PROCCTOR | KTRFAC_PROCDTOR)
-
-#define ALL_POINTS (DEF_POINTS | KTRFAC_CSW | PROC_ABI_POINTS)
+#define ALL_POINTS (DEF_POINTS | KTRFAC_CSW)
 
 #define DEF_TRACEFILE	"ktrace.out"
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201104021028.p32AS8c2078623>