Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Aug 2010 21:44:52 +0000 (UTC)
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r211653 - in user/imp/tbemd/usr.sbin: . acpi/acpidb acpi/acpidump acpi/iasl ancontrol arp boot0cfg bsnmpd/modules bsnmpd/modules/snmp_bridge bsnmpd/modules/snmp_hostres bsnmpd/modules/s...
Message-ID:  <201008222144.o7MLiqIu017273@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: imp
Date: Sun Aug 22 21:44:51 2010
New Revision: 211653
URL: http://svn.freebsd.org/changeset/base/211653

Log:
  Merge to head @211636 -- with hand tweaks hoping for the best

Added:
  user/imp/tbemd/usr.sbin/bsnmpd/modules/snmp_wlan/
     - copied from r211636, head/usr.sbin/bsnmpd/modules/snmp_wlan/
  user/imp/tbemd/usr.sbin/pc-sysinstall/
     - copied from r211636, head/usr.sbin/pc-sysinstall/
Deleted:
  user/imp/tbemd/usr.sbin/wpa/l2_packet.c
  user/imp/tbemd/usr.sbin/wpa/wpa_supplicant/driver_wired.c
Modified:
  user/imp/tbemd/usr.sbin/Makefile
  user/imp/tbemd/usr.sbin/Makefile.amd64
  user/imp/tbemd/usr.sbin/Makefile.arm
  user/imp/tbemd/usr.sbin/acpi/acpidb/Makefile
  user/imp/tbemd/usr.sbin/acpi/acpidump/acpi.c
  user/imp/tbemd/usr.sbin/acpi/acpidump/acpi_user.c
  user/imp/tbemd/usr.sbin/acpi/acpidump/acpidump.h
  user/imp/tbemd/usr.sbin/acpi/iasl/Makefile
  user/imp/tbemd/usr.sbin/ancontrol/ancontrol.8
  user/imp/tbemd/usr.sbin/arp/arp.c
  user/imp/tbemd/usr.sbin/boot0cfg/boot0cfg.c
  user/imp/tbemd/usr.sbin/bsnmpd/modules/Makefile
  user/imp/tbemd/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3
  user/imp/tbemd/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_diskstorage_tbl.c
  user/imp/tbemd/usr.sbin/config/config.8
  user/imp/tbemd/usr.sbin/config/config.y
  user/imp/tbemd/usr.sbin/config/configvers.h
  user/imp/tbemd/usr.sbin/config/main.c
  user/imp/tbemd/usr.sbin/config/mkmakefile.c
  user/imp/tbemd/usr.sbin/config/mkoptions.c
  user/imp/tbemd/usr.sbin/cpucontrol/amd.c
  user/imp/tbemd/usr.sbin/cpucontrol/intel.c
  user/imp/tbemd/usr.sbin/crunch/crunchide/Makefile
  user/imp/tbemd/usr.sbin/crunch/crunchide/exec_elf32.c
  user/imp/tbemd/usr.sbin/fifolog/lib/fifolog.h
  user/imp/tbemd/usr.sbin/fifolog/lib/fifolog_reader.c
  user/imp/tbemd/usr.sbin/freebsd-update/freebsd-update.8
  user/imp/tbemd/usr.sbin/fwcontrol/fwcontrol.8
  user/imp/tbemd/usr.sbin/i2c/i2c.8
  user/imp/tbemd/usr.sbin/iostat/iostat.8
  user/imp/tbemd/usr.sbin/jail/jail.8
  user/imp/tbemd/usr.sbin/jls/jls.c
  user/imp/tbemd/usr.sbin/kbdcontrol/kbdcontrol.1
  user/imp/tbemd/usr.sbin/lmcconfig/lmcconfig.8
  user/imp/tbemd/usr.sbin/lpr/lpd/printjob.c
  user/imp/tbemd/usr.sbin/lpr/lpr/printcap.5
  user/imp/tbemd/usr.sbin/makefs/makefs.8
  user/imp/tbemd/usr.sbin/mfiutil/mfiutil.8
  user/imp/tbemd/usr.sbin/mountd/exports.5
  user/imp/tbemd/usr.sbin/moused/moused.c
  user/imp/tbemd/usr.sbin/mptutil/mptutil.8
  user/imp/tbemd/usr.sbin/ndp/ndp.c
  user/imp/tbemd/usr.sbin/newsyslog/newsyslog.8
  user/imp/tbemd/usr.sbin/newsyslog/newsyslog.c
  user/imp/tbemd/usr.sbin/newsyslog/newsyslog.conf.5
  user/imp/tbemd/usr.sbin/nfscbd/nfscbd.8
  user/imp/tbemd/usr.sbin/nfsd/nfsv4.4
  user/imp/tbemd/usr.sbin/nfsd/stablerestart.5
  user/imp/tbemd/usr.sbin/nfsdumpstate/nfsdumpstate.c
  user/imp/tbemd/usr.sbin/nfsuserd/nfsuserd.8
  user/imp/tbemd/usr.sbin/ntp/doc/ntp.conf.5
  user/imp/tbemd/usr.sbin/ntp/doc/ntpq.8
  user/imp/tbemd/usr.sbin/pciconf/pciconf.8
  user/imp/tbemd/usr.sbin/pmcstat/pmcpl_calltree.c
  user/imp/tbemd/usr.sbin/pmcstat/pmcstat.c
  user/imp/tbemd/usr.sbin/pmcstat/pmcstat.h
  user/imp/tbemd/usr.sbin/pmcstat/pmcstat_log.c
  user/imp/tbemd/usr.sbin/portsnap/portsnap/portsnap.8
  user/imp/tbemd/usr.sbin/powerd/powerd.8
  user/imp/tbemd/usr.sbin/powerd/powerd.c
  user/imp/tbemd/usr.sbin/ppp/ipv6cp.c
  user/imp/tbemd/usr.sbin/rpc.lockd/kern.c
  user/imp/tbemd/usr.sbin/rpc.ypxfrd/rpc.ypxfrd.8
  user/imp/tbemd/usr.sbin/service/service.8
  user/imp/tbemd/usr.sbin/sysinstall/Makefile
  user/imp/tbemd/usr.sbin/sysinstall/config.c
  user/imp/tbemd/usr.sbin/sysinstall/devices.c
  user/imp/tbemd/usr.sbin/sysinstall/disks.c
  user/imp/tbemd/usr.sbin/sysinstall/dist.c
  user/imp/tbemd/usr.sbin/sysinstall/globals.c
  user/imp/tbemd/usr.sbin/sysinstall/help/options.hlp
  user/imp/tbemd/usr.sbin/sysinstall/index.c
  user/imp/tbemd/usr.sbin/sysinstall/install.c
  user/imp/tbemd/usr.sbin/sysinstall/install.cfg
  user/imp/tbemd/usr.sbin/sysinstall/installUpgrade.c
  user/imp/tbemd/usr.sbin/sysinstall/label.c
  user/imp/tbemd/usr.sbin/sysinstall/main.c
  user/imp/tbemd/usr.sbin/sysinstall/media.c
  user/imp/tbemd/usr.sbin/sysinstall/menus.c
  user/imp/tbemd/usr.sbin/sysinstall/misc.c
  user/imp/tbemd/usr.sbin/sysinstall/msg.c
  user/imp/tbemd/usr.sbin/sysinstall/network.c
  user/imp/tbemd/usr.sbin/sysinstall/sysinstall.8
  user/imp/tbemd/usr.sbin/sysinstall/sysinstall.h
  user/imp/tbemd/usr.sbin/sysinstall/system.c
  user/imp/tbemd/usr.sbin/sysinstall/tcpip.c
  user/imp/tbemd/usr.sbin/sysinstall/termcap.c
  user/imp/tbemd/usr.sbin/syslogd/Makefile
  user/imp/tbemd/usr.sbin/syslogd/syslogd.8
  user/imp/tbemd/usr.sbin/syslogd/syslogd.c
  user/imp/tbemd/usr.sbin/timed/timed/measure.c
  user/imp/tbemd/usr.sbin/tzsetup/tzsetup.c
  user/imp/tbemd/usr.sbin/ugidfw/ugidfw.8
  user/imp/tbemd/usr.sbin/uhsoctl/uhsoctl.c
  user/imp/tbemd/usr.sbin/watchdogd/watchdogd.c
  user/imp/tbemd/usr.sbin/wpa/hostapd/Makefile
  user/imp/tbemd/usr.sbin/wpa/wpa_cli/wpa_cli.8
  user/imp/tbemd/usr.sbin/wpa/wpa_supplicant/Makefile
  user/imp/tbemd/usr.sbin/wpa/wpa_supplicant/driver_freebsd.c
  user/imp/tbemd/usr.sbin/ypserv/ypinit.8
Directory Properties:
  user/imp/tbemd/usr.sbin/zic/   (props changed)

Modified: user/imp/tbemd/usr.sbin/Makefile
==============================================================================
--- user/imp/tbemd/usr.sbin/Makefile	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/Makefile	Sun Aug 22 21:44:51 2010	(r211653)
@@ -36,7 +36,7 @@ SUBDIR= adduser \
 	lastlogin \
 	mailwrapper \
 	makefs \
-	${_manctl} \
+	manctl \
 	memcontrol \
 	mergemaster \
 	mfiutil \
@@ -54,6 +54,7 @@ SUBDIR= adduser \
 	nfsrevoke \
 	nfsuserd \
 	nologin \
+	pc-sysinstall \
 	pciconf \
 	periodic \
 	powerd \
@@ -207,7 +208,7 @@ SUBDIR+=	lpr
 .endif
 
 .if ${MK_MAN_UTILS} != "no"
-_manctl=	manctl
+SUBDIR+=	manctl
 .endif
 
 .if ${MK_NETGRAPH} != "no"

Modified: user/imp/tbemd/usr.sbin/Makefile.amd64
==============================================================================
--- user/imp/tbemd/usr.sbin/Makefile.amd64	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/Makefile.amd64	Sun Aug 22 21:44:51 2010	(r211653)
@@ -25,9 +25,6 @@ SUBDIR+=	mptable
 .if ${MK_NDIS} != "no"
 SUBDIR+=	ndiscvt
 .endif
-.if ${MK_SYSINSTALL} != "no"
-SUBDIR+=	sade
-.endif
 SUBDIR+=	sicontrol
 SUBDIR+=	spkrtest
 SUBDIR+=	zzz

Modified: user/imp/tbemd/usr.sbin/Makefile.arm
==============================================================================
--- user/imp/tbemd/usr.sbin/Makefile.arm	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/Makefile.arm	Sun Aug 22 21:44:51 2010	(r211653)
@@ -1,4 +1,5 @@
 # $FreeBSD$
 
+SUBDIR+=	ofwdump
 SUBDIR+=	kgmon
 SUBDIR:=	${SUBDIR:Nsysinstall}

Modified: user/imp/tbemd/usr.sbin/acpi/acpidb/Makefile
==============================================================================
--- user/imp/tbemd/usr.sbin/acpi/acpidb/Makefile	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/acpi/acpidb/Makefile	Sun Aug 22 21:44:51 2010	(r211653)
@@ -54,8 +54,8 @@ SRCS+=	tbfadt.c tbfind.c tbinstal.c tbut
 # utilities
 SRCS+=	utalloc.c utcache.c utcopy.c utdebug.c utdelete.c	\
 	uteval.c utglobal.c utids.c utinit.c utlock.c utmath.c	\
-	utmisc.c utmutex.c utobject.c utresrc.c utstate.c	\
-	uttrack.c utxface.c
+	utmisc.c utmutex.c utobject.c utosi.c utresrc.c		\
+	utstate.c uttrack.c utxface.c
 
 MAN=	acpidb.8
 WARNS?=	2

Modified: user/imp/tbemd/usr.sbin/acpi/acpidump/acpi.c
==============================================================================
--- user/imp/tbemd/usr.sbin/acpi/acpidump/acpi.c	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/acpi/acpidump/acpi.c	Sun Aug 22 21:44:51 2010	(r211653)
@@ -68,6 +68,7 @@ static void	acpi_print_srat_cpu(uint32_t
 static void	acpi_print_srat_memory(ACPI_SRAT_MEM_AFFINITY *mp);
 static void	acpi_print_srat(ACPI_SUBTABLE_HEADER *srat);
 static void	acpi_handle_srat(ACPI_TABLE_HEADER *sdp);
+static void	acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp);
 static void	acpi_print_sdt(ACPI_TABLE_HEADER *sdp);
 static void	acpi_print_fadt(ACPI_TABLE_HEADER *sdp);
 static void	acpi_print_facs(ACPI_TABLE_FACS *facs);
@@ -81,6 +82,46 @@ static void	acpi_walk_subtables(ACPI_TAB
 /* Size of an address. 32-bit for ACPI 1.0, 64-bit for ACPI 2.0 and up. */
 static int addr_size;
 
+/* Strings used in the TCPA table */
+static const char *tcpa_event_type_strings[] = {
+	"PREBOOT Certificate",
+	"POST Code",
+	"Unused",
+	"No Action",
+	"Separator",
+	"Action",
+	"Event Tag",
+	"S-CRTM Contents",
+	"S-CRTM Version",
+	"CPU Microcode",
+	"Platform Config Flags",
+	"Table of Devices",
+	"Compact Hash",
+	"IPL",
+	"IPL Partition Data",
+	"Non-Host Code",
+	"Non-Host Config",
+	"Non-Host Info"
+};
+
+static const char *TCPA_pcclient_strings[] = {
+	"<undefined>",
+	"SMBIOS",
+	"BIS Certificate",
+	"POST BIOS ROM Strings",
+	"ESCD",
+	"CMOS",
+	"NVRAM",
+	"Option ROM Execute",
+	"Option ROM Configurateion",
+	"<undefined>",
+	"Option ROM Microcode Update ",
+	"S-CRTM Version String",
+	"S-CRTM Contents",
+	"POST Contents",
+	"Table of Devices",
+};
+
 static void
 acpi_print_string(char *s, size_t length)
 {
@@ -492,6 +533,165 @@ acpi_print_srat_cpu(uint32_t apic_id, ui
 	printf("\tProximity Domain=%d\n", proximity_domain);
 }
 
+static char *
+acpi_tcpa_evname(struct TCPAevent *event)
+{
+	struct TCPApc_event *pc_event;
+	char *eventname = NULL;
+
+	pc_event = (struct TCPApc_event *)(event + 1);
+
+	switch(event->event_type) {
+	case PREBOOT:
+	case POST_CODE:
+	case UNUSED:
+	case NO_ACTION:
+	case SEPARATOR:
+	case SCRTM_CONTENTS:
+	case SCRTM_VERSION:
+	case CPU_MICROCODE:
+	case PLATFORM_CONFIG_FLAGS:
+	case TABLE_OF_DEVICES:
+	case COMPACT_HASH:
+	case IPL:
+	case IPL_PARTITION_DATA:
+	case NONHOST_CODE:
+	case NONHOST_CONFIG:
+	case NONHOST_INFO:
+		asprintf(&eventname, "%s",
+		    tcpa_event_type_strings[event->event_type]);
+		break;
+
+	case ACTION:
+		eventname = calloc(event->event_size + 1, sizeof(char));
+		memcpy(eventname, pc_event, event->event_size);
+		break;
+
+	case EVENT_TAG:
+		switch (pc_event->event_id) {
+		case SMBIOS:
+		case BIS_CERT:
+		case CMOS:
+		case NVRAM:
+		case OPTION_ROM_EXEC:
+		case OPTION_ROM_CONFIG:
+		case S_CRTM_VERSION:
+		case POST_BIOS_ROM:
+		case ESCD:
+		case OPTION_ROM_MICROCODE:
+		case S_CRTM_CONTENTS:
+		case POST_CONTENTS:
+			asprintf(&eventname, "%s",
+			    TCPA_pcclient_strings[pc_event->event_id]);
+			break;
+
+		default:
+			asprintf(&eventname, "<unknown tag 0x%02x>",
+			    pc_event->event_id);
+			break;
+		}
+		break;
+
+	default:
+		asprintf(&eventname, "<unknown 0x%02x>", event->event_type);
+		break;
+	}
+
+	return eventname;
+}
+
+static void
+acpi_print_tcpa(struct TCPAevent *event)
+{
+	int i;
+	char *eventname;
+
+	eventname = acpi_tcpa_evname(event);
+
+	printf("\t%d", event->pcr_index);
+	printf(" 0x");
+	for (i = 0; i < 20; i++)
+		printf("%02x", event->pcr_value[i]);
+	printf(" [%s]\n", eventname ? eventname : "<unknown>");
+
+	free(eventname);
+}
+
+static void
+acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp)
+{
+	struct TCPAbody *tcpa;
+	struct TCPAevent *event;
+	uintmax_t len, paddr;
+	unsigned char *vaddr = NULL;
+	unsigned char *vend = NULL;
+
+	printf(BEGIN_COMMENT);
+	acpi_print_sdt(sdp);
+	tcpa = (struct TCPAbody *) sdp;
+
+	switch (tcpa->platform_class) {
+	case ACPI_TCPA_BIOS_CLIENT:
+		len = tcpa->client.log_max_len;
+		paddr = tcpa->client.log_start_addr;
+		break;
+
+	case ACPI_TCPA_BIOS_SERVER:
+		len = tcpa->server.log_max_len;
+		paddr = tcpa->server.log_start_addr;
+		break;
+
+	default:
+		printf("XXX");
+		printf(END_COMMENT);
+		return;
+	}
+	printf("\tClass %u Base Address 0x%jx Length %ju\n\n",
+	    tcpa->platform_class, paddr, len);
+
+	if (len == 0) {
+		printf("\tEmpty TCPA table\n");
+		printf(END_COMMENT);
+		return;
+	}
+
+	vaddr = (unsigned char *)acpi_map_physical(paddr, len);
+	vend = vaddr + len;
+
+	while (vaddr != NULL) {
+		if (vaddr + sizeof(struct TCPAevent) >= vend)
+			break;
+		event = (struct TCPAevent *)(void *)vaddr;
+		if (vaddr + event->event_size >= vend)
+			break;
+		if (event->event_type == 0 && event->event_size == 0)
+			break;
+#if 0
+		{
+		unsigned int i, j, k;
+
+		printf("\n\tsize %d\n\t\t%p ", event->event_size, vaddr);
+		for (j = 0, i = 0; i <
+		    sizeof(struct TCPAevent) + event->event_size; i++) {
+			printf("%02x ", vaddr[i]);
+			if ((i+1) % 8 == 0) {
+				for (k = 0; k < 8; k++)
+					printf("%c", isprint(vaddr[j+k]) ?
+					    vaddr[j+k] : '.');
+				printf("\n\t\t%p ", &vaddr[i + 1]);
+				j = i + 1;
+			}
+		}
+		printf("\n"); }
+#endif
+		acpi_print_tcpa(event);
+
+		vaddr += sizeof(struct TCPAevent) + event->event_size;
+	}
+
+	printf(END_COMMENT);
+}
+
 static void
 acpi_print_srat_memory(ACPI_SRAT_MEM_AFFINITY *mp)
 {
@@ -886,6 +1086,8 @@ acpi_handle_rsdt(ACPI_TABLE_HEADER *rsdp
 			acpi_handle_mcfg(sdp);
 		else if (!memcmp(sdp->Signature, ACPI_SIG_SRAT, 4))
 			acpi_handle_srat(sdp);
+		else if (!memcmp(sdp->Signature, ACPI_SIG_TCPA, 4))
+			acpi_handle_tcpa(sdp);
 		else {
 			printf(BEGIN_COMMENT);
 			acpi_print_sdt(sdp);

Modified: user/imp/tbemd/usr.sbin/acpi/acpidump/acpi_user.c
==============================================================================
--- user/imp/tbemd/usr.sbin/acpi/acpidump/acpi_user.c	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/acpi/acpidump/acpi_user.c	Sun Aug 22 21:44:51 2010	(r211653)
@@ -119,7 +119,7 @@ acpi_get_rsdp(u_long addr)
 
 	/* If the revision is 0, assume a version 1 length. */
 	if (rsdp.Revision == 0)
-		len = ACPI_RSDP_REV0_SIZE;
+		len = sizeof(ACPI_RSDP_COMMON);
 	else
 		len = rsdp.Length;
 

Modified: user/imp/tbemd/usr.sbin/acpi/acpidump/acpidump.h
==============================================================================
--- user/imp/tbemd/usr.sbin/acpi/acpidump/acpidump.h	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/acpi/acpidump/acpidump.h	Sun Aug 22 21:44:51 2010	(r211653)
@@ -55,6 +55,78 @@
 /* Find and map the RSD PTR structure and return it for parsing */
 ACPI_TABLE_HEADER *sdt_load_devmem(void);
 
+/* TCPA */
+struct TCPAbody {
+	ACPI_TABLE_HEADER header;
+	uint16_t	platform_class;
+#define ACPI_TCPA_BIOS_CLIENT	0x00
+#define ACPI_TCPA_BIOS_SERVER	0x01
+	union {
+		struct client_hdr {
+			uint32_t	log_max_len __packed;
+			uint64_t	log_start_addr __packed;
+		} client;
+		struct server_hdr {
+			uint16_t	reserved;
+			uint64_t	log_max_len __packed;
+			uint64_t	log_start_addr __packed;
+		} server;
+	};
+} __packed;
+
+struct TCPAevent {
+	u_int32_t	pcr_index;
+	u_int32_t	event_type;
+	u_int8_t	pcr_value[20];
+	u_int32_t	event_size;
+	u_int8_t	event_data[0];
+};
+
+struct TCPApc_event {
+	u_int32_t	event_id;
+	u_int32_t	event_size;
+	u_int8_t	event_data[0];
+};
+
+enum TCPAevent_types {
+	PREBOOT = 0,
+	POST_CODE,
+	UNUSED,
+	NO_ACTION,
+	SEPARATOR,
+	ACTION,
+	EVENT_TAG,
+	SCRTM_CONTENTS,
+	SCRTM_VERSION,
+	CPU_MICROCODE,
+	PLATFORM_CONFIG_FLAGS,
+	TABLE_OF_DEVICES,
+	COMPACT_HASH,
+	IPL,
+	IPL_PARTITION_DATA,
+	NONHOST_CODE,
+	NONHOST_CONFIG,
+	NONHOST_INFO,
+	EVENT_TYPE_MAX,
+};
+
+enum TCPApcclient_ids {
+	SMBIOS = 1,
+	BIS_CERT,
+	POST_BIOS_ROM,
+	ESCD,
+	CMOS,
+	NVRAM,
+	OPTION_ROM_EXEC,
+	OPTION_ROM_CONFIG,
+	OPTION_ROM_MICROCODE = 10,
+	S_CRTM_VERSION,
+	S_CRTM_CONTENTS,
+	POST_CONTENTS,
+	HOST_TABLE_OF_DEVICES,
+	PCCLIENT_ID_MAX,
+};
+
 /*
  * Load the DSDT from a previous save file.  Note that other tables are
  * not saved (i.e. FADT)

Modified: user/imp/tbemd/usr.sbin/acpi/iasl/Makefile
==============================================================================
--- user/imp/tbemd/usr.sbin/acpi/iasl/Makefile	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/acpi/iasl/Makefile	Sun Aug 22 21:44:51 2010	(r211653)
@@ -17,7 +17,8 @@ SRCS+=	aslanalyze.c aslcodegen.c aslcomp
 	aslrestype1.c aslrestype1i.c aslrestype2.c		\
 	aslrestype2d.c aslrestype2e.c aslrestype2q.c		\
 	aslrestype2w.c aslstartup.c aslstubs.c asltransform.c	\
-	asltree.c aslutils.c
+	asltree.c aslutils.c dtcompile.c dtfield.c dtio.c	\
+	dtsubtable.c dttable.c dttemplate.c dtutils.c
 
 # debugger
 SRCS+=	dbfileio.c
@@ -50,7 +51,8 @@ SRCS+=	tbfadt.c tbinstal.c tbutils.c tbx
 # utilities
 SRCS+=	utalloc.c utcache.c utcopy.c utdebug.c utdelete.c	\
 	utglobal.c utinit.c utlock.c utmath.c utmisc.c		\
-	utmutex.c utobject.c utresrc.c utstate.c utxface.c
+	utmutex.c utobject.c utosi.c utresrc.c utstate.c	\
+	utxface.c
 
 WARNS?=	2
 

Modified: user/imp/tbemd/usr.sbin/ancontrol/ancontrol.8
==============================================================================
--- user/imp/tbemd/usr.sbin/ancontrol/ancontrol.8	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/ancontrol/ancontrol.8	Sun Aug 22 21:44:51 2010	(r211653)
@@ -308,7 +308,7 @@ Set a WEP key.
 For 40 bit prefix 10 hex character with 0x.
 For 128 bit prefix 26 hex character with 0x.
 Use
-.Qq
+.Qq \&
 as the key to erase the key.
 Supports 4 keys; even numbers are for permanent keys
 and odd number are for temporary keys.

Modified: user/imp/tbemd/usr.sbin/arp/arp.c
==============================================================================
--- user/imp/tbemd/usr.sbin/arp/arp.c	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/arp/arp.c	Sun Aug 22 21:44:51 2010	(r211653)
@@ -555,6 +555,9 @@ search(u_long addr, action_fn *action)
 /*
  * Display an arp entry
  */
+static char lifname[IF_NAMESIZE];
+static int64_t lifindex = -1;
+
 static void
 print_entry(struct sockaddr_dl *sdl,
 	struct sockaddr_inarp *addr, struct rt_msghdr *rtm)
@@ -562,7 +565,6 @@ print_entry(struct sockaddr_dl *sdl,
 	const char *host;
 	struct hostent *hp;
 	struct iso88025_sockaddr_dl_data *trld;
-	char ifname[IF_NAMESIZE];
 	int seg;
 
 	if (nflag == 0)
@@ -591,8 +593,12 @@ print_entry(struct sockaddr_dl *sdl,
 		}
 	} else
 		printf("(incomplete)");
-	if (if_indextoname(sdl->sdl_index, ifname) != NULL)
-		printf(" on %s", ifname);
+	if (sdl->sdl_index != lifindex &&
+	    if_indextoname(sdl->sdl_index, lifname) != NULL) {
+        	lifindex = sdl->sdl_index;
+		printf(" on %s", lifname);
+        } else if (sdl->sdl_index == lifindex)
+		printf(" on %s", lifname);
 	if (rtm->rtm_rmx.rmx_expire == 0)
 		printf(" permanent");
 	else {

Modified: user/imp/tbemd/usr.sbin/boot0cfg/boot0cfg.c
==============================================================================
--- user/imp/tbemd/usr.sbin/boot0cfg/boot0cfg.c	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/boot0cfg/boot0cfg.c	Sun Aug 22 21:44:51 2010	(r211653)
@@ -356,6 +356,8 @@ write_mbr(const char *fname, int flags, 
 	if (n != mbr_size)
 	   errx(1, "%s: short write", fname);
 	return;
+    } else {
+	    err(1, "write_mbr: %s", fname);
     }
 
     /*

Modified: user/imp/tbemd/usr.sbin/bsnmpd/modules/Makefile
==============================================================================
--- user/imp/tbemd/usr.sbin/bsnmpd/modules/Makefile	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/bsnmpd/modules/Makefile	Sun Aug 22 21:44:51 2010	(r211653)
@@ -12,7 +12,8 @@ SUBDIR=	${_snmp_atm} \
 	snmp_bridge \
 	snmp_hostres \
 	snmp_mibII \
-	snmp_pf
+	snmp_pf \
+	snmp_wlan
 
 .if ${MK_NETGRAPH_SUPPORT} != "no"
 SUBDIR+=snmp_netgraph

Modified: user/imp/tbemd/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3
==============================================================================
--- user/imp/tbemd/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3	Sun Aug 22 21:44:51 2010	(r211653)
@@ -30,7 +30,7 @@
 .Os
 .Sh NAME
 .Nm snmp_bridge
-.Nd "bridge module for snmpd.
+.Nd "bridge module for snmpd"
 .Sh LIBRARY
 .Pq begemotSnmpdModulePath."bridge" = "/usr/lib/snmp_bridge.so"
 .Sh DESCRIPTION
@@ -46,7 +46,7 @@ MIB also defines additional objects whic
 similar to
 .Xr ifconfig 8
 for configuring bridge interfaces.
-Therefore one should consider adding write comminities or loading the
+Therefore one should consider adding write communities or loading the
 .Nm
 module on systems where security is crucial.
 .Sh IMPLEMENTATION NOTES
@@ -66,7 +66,7 @@ index and set the status of the interfac
 will attempt to destroy the bridge interface.
 .El
 .It Va begemotBridgeBaseSpanEnabled
-A SNMP SET operation on this object is only successfull if the corresponding
+A SNMP SET operation on this object is only successful if the corresponding
 port has not been added as member of the bridge interface on the system.
 .It Va begemotBridgeBasePortStatus
 SNMP SET operations with the following values are allowed:

Modified: user/imp/tbemd/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_diskstorage_tbl.c
==============================================================================
--- user/imp/tbemd/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_diskstorage_tbl.c	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_diskstorage_tbl.c	Sun Aug 22 21:44:51 2010	(r211653)
@@ -340,6 +340,9 @@ disk_OS_get_MD_disks(void)
 	struct md_ioctl mdio;
 	int unit;
 
+	if (md_fd <= 0)
+		return;
+
 	/* Look for md devices */
 	STAILQ_FOREACH(map, &device_map, link) {
 		if (sscanf(map->name_key, "md%d", &unit) != 1)
@@ -546,8 +549,8 @@ init_disk_storage_tbl(void)
 	md_fd = -1;
 	snprintf(mddev, sizeof(mddev) - 1, "%s%s", _PATH_DEV, MDCTL_NAME);
 	if ((md_fd = open(mddev, O_RDWR)) == -1) {
-		syslog(LOG_ERR, "open %s failed: %m", mddev);
-		return (-1);
+		syslog(LOG_ERR, "open %s failed - will not include md(4) "
+		    "info: %m", mddev);
 	}
 
 	refresh_disk_storage_tbl(1);

Modified: user/imp/tbemd/usr.sbin/config/config.8
==============================================================================
--- user/imp/tbemd/usr.sbin/config/config.8	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/config/config.8	Sun Aug 22 21:44:51 2010	(r211653)
@@ -78,6 +78,9 @@ Note that
 does not append
 .Ar SYSTEM_NAME
 to the directory given.
+.It Fl m
+Print the MACHINE and MACHINE_ARCH values for this
+kernel and exit.
 .It Fl g
 Configure a system for debugging.
 .It Fl x Ar kernel

Modified: user/imp/tbemd/usr.sbin/config/config.y
==============================================================================
--- user/imp/tbemd/usr.sbin/config/config.y	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/config/config.y	Sun Aug 22 21:44:51 2010	(r211653)
@@ -365,7 +365,8 @@ newdev(char *name)
 	struct device *np;
 
 	if (finddev(&dtab, name)) {
-		printf("WARNING: duplicate device `%s' encountered.\n", name);
+		fprintf(stderr,
+		    "WARNING: duplicate device `%s' encountered.\n", name);
 		return;
 	}
 
@@ -425,7 +426,8 @@ newopt(struct opt_head *list, char *name
 
 	op2 = findopt(list, name);
 	if (op2 != NULL && !append) {
-		printf("WARNING: duplicate option `%s' encountered.\n", name);
+		fprintf(stderr,
+		    "WARNING: duplicate option `%s' encountered.\n", name);
 		return;
 	}
 

Modified: user/imp/tbemd/usr.sbin/config/configvers.h
==============================================================================
--- user/imp/tbemd/usr.sbin/config/configvers.h	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/config/configvers.h	Sun Aug 22 21:44:51 2010	(r211653)
@@ -49,5 +49,5 @@
  *
  * $FreeBSD$
  */
-#define	CONFIGVERS	600009
+#define	CONFIGVERS	600011
 #define	MAJOR_VERS(x)	((x) / 100000)

Modified: user/imp/tbemd/usr.sbin/config/main.c
==============================================================================
--- user/imp/tbemd/usr.sbin/config/main.c	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/config/main.c	Sun Aug 22 21:44:51 2010	(r211653)
@@ -110,13 +110,18 @@ main(int argc, char **argv)
 	char *p;
 	char xxx[MAXPATHLEN];
 	char *kernfile;
+	int printmachine;
 
+	printmachine = 0;
 	kernfile = NULL;
-	while ((ch = getopt(argc, argv, "Cd:gpVx:")) != -1)
+	while ((ch = getopt(argc, argv, "Cd:gmpVx:")) != -1)
 		switch (ch) {
 		case 'C':
 			filebased = 1;
 			break;
+		case 'm':
+			printmachine = 1;
+			break;
 		case 'd':
 			if (*destdir == '\0')
 				strlcpy(destdir, optarg, sizeof(destdir));
@@ -171,13 +176,6 @@ main(int argc, char **argv)
 		strlcat(destdir, PREFIX, sizeof(destdir));
 	}
 
-	p = path((char *)NULL);
-	if (stat(p, &buf)) {
-		if (mkdir(p, 0777))
-			err(2, "%s", p);
-	} else if (!S_ISDIR(buf.st_mode))
-		errx(EXIT_FAILURE, "%s isn't a directory", p);
-
 	SLIST_INIT(&cputype);
 	SLIST_INIT(&mkopt);
 	SLIST_INIT(&opt);
@@ -207,6 +205,19 @@ main(int argc, char **argv)
 	}
 	checkversion();
 
+	if (printmachine) {
+		printf("%s\t%s\n",machinename,machinearch);
+		exit(0);
+	}
+
+	/* Make compile directory */
+	p = path((char *)NULL);
+	if (stat(p, &buf)) {
+		if (mkdir(p, 0777))
+			err(2, "%s", p);
+	} else if (!S_ISDIR(buf.st_mode))
+		errx(EXIT_FAILURE, "%s isn't a directory", p);
+
 	/*
 	 * make symbolic links in compilation directory
 	 * for "sys" (to make genassym.c work along with #include <sys/xxx>)
@@ -280,7 +291,7 @@ static void
 usage(void)
 {
 
-	fprintf(stderr, "usage: config [-CgpV] [-d destdir] sysname\n");
+	fprintf(stderr, "usage: config [-CgmpV] [-d destdir] sysname\n");
 	fprintf(stderr, "       config -x kernel\n");
 	exit(EX_USAGE);
 }

Modified: user/imp/tbemd/usr.sbin/config/mkmakefile.c
==============================================================================
--- user/imp/tbemd/usr.sbin/config/mkmakefile.c	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/config/mkmakefile.c	Sun Aug 22 21:44:51 2010	(r211653)
@@ -341,7 +341,8 @@ next:
 	if (eq(wd, "include")) {
 		next_quoted_word(fp, wd);
 		if (wd == 0) {
-			printf("%s: missing include filename.\n", fname);
+			fprintf(stderr, "%s: missing include filename.\n",
+			    fname);
 			exit(1);
 		}
 		(void) snprintf(ifname, sizeof(ifname), "../../%s", wd);
@@ -353,8 +354,7 @@ next:
 	this = ns(wd);
 	next_word(fp, wd);
 	if (wd == 0) {
-		printf("%s: No type for %s.\n",
-		    fname, this);
+		fprintf(stderr, "%s: No type for %s.\n", fname, this);
 		exit(1);
 	}
 	tp = fl_lookup(this);
@@ -381,8 +381,9 @@ next:
 	} else if (eq(wd, "mandatory")) {
 		mandatory = 1;
 	} else if (!eq(wd, "optional")) {
-		printf("%s: %s must be optional, mandatory or standard\n",
-		       fname, this);
+		fprintf(stderr,
+		    "%s: %s must be optional, mandatory or standard\n",
+		    fname, this);
 		exit(1);
 	}
 nextparam:
@@ -395,7 +396,7 @@ nextparam:
 	}
 	if (eq(wd, "|")) {
 		if (nreqs == 0) {
-			printf("%s: syntax error describing %s\n",
+			fprintf(stderr, "%s: syntax error describing %s\n",
 			    fname, this);
 			exit(1);
 		}
@@ -410,9 +411,9 @@ nextparam:
 	}
 	if (eq(wd, "no-implicit-rule")) {
 		if (compilewith == 0) {
-			printf("%s: alternate rule required when "
-			       "\"no-implicit-rule\" is specified.\n",
-			       fname);
+			fprintf(stderr, "%s: alternate rule required when "
+			    "\"no-implicit-rule\" is specified.\n",
+			    fname);
 		}
 		imp_rule++;
 		goto nextparam;
@@ -424,8 +425,9 @@ nextparam:
 	if (eq(wd, "dependency")) {
 		next_quoted_word(fp, wd);
 		if (wd == 0) {
-			printf("%s: %s missing compile command string.\n",
-			       fname, this);
+			fprintf(stderr,
+			    "%s: %s missing compile command string.\n",
+			    fname, this);
 			exit(1);
 		}
 		depends = ns(wd);
@@ -434,8 +436,8 @@ nextparam:
 	if (eq(wd, "clean")) {
 		next_quoted_word(fp, wd);
 		if (wd == 0) {
-			printf("%s: %s missing clean file list.\n",
-			       fname, this);
+			fprintf(stderr, "%s: %s missing clean file list.\n",
+			    fname, this);
 			exit(1);
 		}
 		clean = ns(wd);
@@ -444,8 +446,9 @@ nextparam:
 	if (eq(wd, "compile-with")) {
 		next_quoted_word(fp, wd);
 		if (wd == 0) {
-			printf("%s: %s missing compile command string.\n",
-			       fname, this);
+			fprintf(stderr,
+			    "%s: %s missing compile command string.\n",
+			    fname, this);
 			exit(1);
 		}
 		compilewith = ns(wd);
@@ -454,8 +457,9 @@ nextparam:
 	if (eq(wd, "warning")) {
 		next_quoted_word(fp, wd);
 		if (wd == 0) {
-			printf("%s: %s missing warning text string.\n",
-				fname, this);
+			fprintf(stderr,
+			    "%s: %s missing warning text string.\n",
+			    fname, this);
 			exit(1);
 		}
 		warning = ns(wd);
@@ -484,13 +488,14 @@ nextparam:
 			goto nextparam;
 		}
 	if (mandatory) {
-		printf("%s: mandatory device \"%s\" not found\n",
+		fprintf(stderr, "%s: mandatory device \"%s\" not found\n",
 		       fname, wd);
 		exit(1);
 	}
 	if (std) {
-		printf("standard entry %s has a device keyword - %s!\n",
-		       this, wd);
+		fprintf(stderr,
+		    "standard entry %s has a device keyword - %s!\n",
+		    this, wd);
 		exit(1);
 	}
 	SLIST_FOREACH(op, &opt, op_next)
@@ -501,13 +506,13 @@ nextparam:
 
 doneparam:
 	if (std == 0 && nreqs == 0) {
-		printf("%s: what is %s optional on?\n",
+		fprintf(stderr, "%s: what is %s optional on?\n",
 		    fname, this);
 		exit(1);
 	}
 
 	if (wd) {
-		printf("%s: syntax error describing %s\n",
+		fprintf(stderr, "%s: syntax error describing %s\n",
 		    fname, this);
 		exit(1);
 	}
@@ -683,10 +688,11 @@ do_rules(FILE *f)
 	char *cp, *np, och;
 	struct file_list *ftp;
 	char *compilewith;
+	char cmd[128];
 
 	STAILQ_FOREACH(ftp, &ftab, f_next) {
 		if (ftp->f_warn)
-			printf("WARNING: %s\n", ftp->f_warn);
+			fprintf(stderr, "WARNING: %s\n", ftp->f_warn);
 		cp = (np = ftp->f_fn) + strlen(ftp->f_fn) - 1;
 		och = *cp;
 		if (ftp->f_flags & NO_IMPLCT_RULE) {
@@ -720,25 +726,23 @@ do_rules(FILE *f)
 		compilewith = ftp->f_compilewith;
 		if (compilewith == 0) {
 			const char *ftype = NULL;
-			static char cmd[128];
 
 			switch (ftp->f_type) {
-
 			case NORMAL:
 				ftype = "NORMAL";
 				break;
-
 			case PROFILING:
 				if (!profiling)
 					continue;
 				ftype = "PROFILE";
 				break;
-
 			default:
-				printf("config: don't know rules for %s\n", np);
+				fprintf(stderr,
+				    "config: don't know rules for %s\n", np);
 				break;
 			}
-			snprintf(cmd, sizeof(cmd), "${%s_%c%s}\n\t@${NORMAL_CTFCONVERT}", ftype,
+			snprintf(cmd, sizeof(cmd),
+			    "${%s_%c%s}\n\t@${NORMAL_CTFCONVERT}", ftype,
 			    toupper(och),
 			    ftp->f_flags & NOWERROR ? "_NOWERROR" : "");
 			compilewith = cmd;

Modified: user/imp/tbemd/usr.sbin/config/mkoptions.c
==============================================================================
--- user/imp/tbemd/usr.sbin/config/mkoptions.c	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/config/mkoptions.c	Sun Aug 22 21:44:51 2010	(r211653)
@@ -77,12 +77,14 @@ options(void)
 	}	
 
 	if (maxusers == 0) {
-		/* printf("maxusers not specified; will auto-size\n"); */
+		/* fprintf(stderr, "maxusers not specified; will auto-size\n"); */
 	} else if (maxusers < users.u_min) {
-		printf("minimum of %d maxusers assumed\n", users.u_min);
+		fprintf(stderr, "minimum of %d maxusers assumed\n",
+		    users.u_min);
 		maxusers = users.u_min;
 	} else if (maxusers > users.u_max)
-		printf("warning: maxusers > %d (%d)\n", users.u_max, maxusers);
+		fprintf(stderr, "warning: maxusers > %d (%d)\n",
+		    users.u_max, maxusers);
 
 	/* Fake MAXUSERS as an option. */
 	op = (struct opt *)calloc(1, sizeof(*op));
@@ -94,11 +96,25 @@ options(void)
 	SLIST_INSERT_HEAD(&opt, op, op_next);
 
 	read_options();
+
+	/* Fake the value of MACHINE_ARCH as an option if necessary */
+	SLIST_FOREACH(ol, &otab, o_next) {
+		if (strcasecmp(ol->o_name, machinearch) != 0)
+			continue;
+
+		op = (struct opt *)calloc(1, sizeof(*op));
+		if (op == NULL)
+			err(EXIT_FAILURE, "calloc");
+		op->op_name = ns(ol->o_name);
+		SLIST_INSERT_HEAD(&opt, op, op_next);
+		break;
+	}
+
 	SLIST_FOREACH(op, &opt, op_next) {
 		SLIST_FOREACH(ol, &otab, o_next) {
 			if (eq(op->op_name, ol->o_name) &&
 			    (ol->o_flags & OL_ALIAS)) {
-				printf("Mapping option %s to %s.\n",
+				fprintf(stderr, "Mapping option %s to %s.\n",
 				    op->op_name, ol->o_file);
 				op->op_name = ol->o_file;
 				break;
@@ -109,7 +125,7 @@ options(void)
 		do_option(ol->o_name);
 	SLIST_FOREACH(op, &opt, op_next) {
 		if (!op->op_ownfile && strncmp(op->op_name, "DEV_", 4)) {
-			printf("%s: unknown option \"%s\"\n",
+			fprintf(stderr, "%s: unknown option \"%s\"\n",
 			       PREFIX, op->op_name);
 			exit(1);
 		}
@@ -146,7 +162,7 @@ do_option(char *name)
 			if (value == NULL)
 				value = ns("1");
 			if (oldvalue != NULL && !eq(value, oldvalue))
-				printf(
+				fprintf(stderr,
 			    "%s: option \"%s\" redefined from %s to %s\n",
 				   PREFIX, op->op_name, oldvalue,
 				   value);
@@ -204,12 +220,14 @@ do_option(char *name)
 			if (eq(inw, ol->o_name))
 				break;
 		if (!eq(inw, name) && !ol) {
-			printf("WARNING: unknown option `%s' removed from %s\n",
-				inw, file);
+			fprintf(stderr,
+			    "WARNING: unknown option `%s' removed from %s\n",
+			    inw, file);
 			tidy++;
 		} else if (ol != NULL && !eq(basefile, ol->o_file)) {
-			printf("WARNING: option `%s' moved from %s to %s\n",
-				inw, basefile, ol->o_file);
+			fprintf(stderr,
+			    "WARNING: option `%s' moved from %s to %s\n",
+			    inw, basefile, ol->o_file);
 			tidy++;
 		} else {
 			op = (struct opt *) calloc(1, sizeof *op);
@@ -298,8 +316,8 @@ check_duplicate(const char *fname, const
 
 	SLIST_FOREACH(po, &otab, o_next) {
 		if (eq(po->o_name, this)) {
-			printf("%s: Duplicate option %s.\n",
-			       fname, this);
+			fprintf(stderr, "%s: Duplicate option %s.\n",
+			    fname, this);
 			exit(1);
 		}
 	}
@@ -333,8 +351,11 @@ update_option(const char *this, char *va
 			return;
 		}
 	}
-	printf("Compat option %s not listed in options file.\n", this);
-	exit(1);
+	/*
+	 * Option not found, but that's OK, we just ignore it since it
+	 * may be for another arch.
+	 */
+	return;
 }
 
 static int
@@ -361,8 +382,8 @@ read_option_file(const char *fname, int 
 			return (1);
 		if (val == 0) {
 			if (flags) {
-				printf("%s: compat file requires two words "
-				    "per line at %s\n", fname, this);
+				fprintf(stderr, "%s: compat file requires two"
+				    " words per line at %s\n", fname, this);
 				exit(1);
 			}
 			char *s = ns(this);

Modified: user/imp/tbemd/usr.sbin/cpucontrol/amd.c
==============================================================================
--- user/imp/tbemd/usr.sbin/cpucontrol/amd.c	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/cpucontrol/amd.c	Sun Aug 22 21:44:51 2010	(r211653)
@@ -92,9 +92,7 @@ amd_update(const char *dev, const char *
 	assert(dev);
 
 	fd  = -1;
-	devfd = -1;
 	fw_image = MAP_FAILED;
-	error = 0;
 	devfd = open(dev, O_RDWR);
 	if (devfd < 0) {
 		WARN(0, "could not open %s for writing", dev);

Modified: user/imp/tbemd/usr.sbin/cpucontrol/intel.c
==============================================================================
--- user/imp/tbemd/usr.sbin/cpucontrol/intel.c	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/cpucontrol/intel.c	Sun Aug 22 21:44:51 2010	(r211653)
@@ -104,7 +104,6 @@ intel_update(const char *dev, const char
 	assert(dev);
 
 	fd = -1;
-	devfd = -1;
 	fw_image = MAP_FAILED;
 	ext_table = NULL;
 	ext_header = NULL;

Modified: user/imp/tbemd/usr.sbin/crunch/crunchide/Makefile
==============================================================================
--- user/imp/tbemd/usr.sbin/crunch/crunchide/Makefile	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/crunch/crunchide/Makefile	Sun Aug 22 21:44:51 2010	(r211653)
@@ -18,7 +18,8 @@ CFLAGS+=-DNLIST_AOUT
 SRCS+=	exec_aout.c
 .endif
 
-.if ${TARGET_CPUARCH} == ia64 || \
+# nb: TARGET_ARCH for powerpc64 is correct here
+.if ${TARGET_CPUARCH} == ia64 || ${TARGET_ARCH} == powerpc64 || \
     ${TARGET_CPUARCH} == sparc64 || ${TARGET_CPUARCH} == amd64
 CFLAGS+=-DNLIST_ELF64
 SRCS+=	exec_elf64.c

Modified: user/imp/tbemd/usr.sbin/crunch/crunchide/exec_elf32.c
==============================================================================
--- user/imp/tbemd/usr.sbin/crunch/crunchide/exec_elf32.c	Sun Aug 22 21:44:05 2010	(r211652)
+++ user/imp/tbemd/usr.sbin/crunch/crunchide/exec_elf32.c	Sun Aug 22 21:44:51 2010	(r211653)
@@ -60,10 +60,15 @@ __FBSDID("$FreeBSD$");
 #include <sys/elf32.h>
 #define	xewtoh(x)	((data == ELFDATA2MSB) ? be32toh(x) : le32toh(x))
 #define	htoxew(x)	((data == ELFDATA2MSB) ? htobe32(x) : htole32(x))
+#define	wewtoh(x)	((data == ELFDATA2MSB) ? be32toh(x) : le32toh(x))
+#define	htowew(x)	((data == ELFDATA2MSB) ? htobe32(x) : htole32(x))
 #elif (ELFSIZE == 64)
 #include <sys/elf64.h>
 #define	xewtoh(x)	((data == ELFDATA2MSB) ? be64toh(x) : le64toh(x))
 #define	htoxew(x)	((data == ELFDATA2MSB) ? htobe64(x) : htole64(x))
+/* elf64 Elf64_Word are 32 bits */
+#define	wewtoh(x)	((data == ELFDATA2MSB) ? be32toh(x) : le32toh(x))
+#define	htowew(x)	((data == ELFDATA2MSB) ? htobe32(x) : htole32(x))
 #endif
 #include <sys/elf_generic.h>
 
@@ -130,6 +135,20 @@ xmalloc(size_t size, const char *fn, con
 	return (rv);
 }
 
+static void *
+xrealloc(void *ptr, size_t size, const char *fn, const char *use)
+{
+	void *rv;
+		
+	rv = realloc(ptr, size);
+	if (rv == NULL) {
+		free(ptr);

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



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