From owner-svn-src-user@FreeBSD.ORG Sun Aug 22 21:44:52 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7FDC6106566B; Sun, 22 Aug 2010 21:44:52 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6C3618FC13; Sun, 22 Aug 2010 21:44:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o7MLiqkG017299; Sun, 22 Aug 2010 21:44:52 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o7MLiqIu017273; Sun, 22 Aug 2010 21:44:52 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201008222144.o7MLiqIu017273@svn.freebsd.org> From: Warner Losh Date: Sun, 22 Aug 2010 21:44:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: 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... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Aug 2010 21:44:52 -0000 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[] = { + "", + "SMBIOS", + "BIS Certificate", + "POST BIOS ROM Strings", + "ESCD", + "CMOS", + "NVRAM", + "Option ROM Execute", + "Option ROM Configurateion", + "", + "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, "", + pc_event->event_id); + break; + } + break; + + default: + asprintf(&eventname, "", 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 : ""); + + 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 ) @@ -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 #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 #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 @@ -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 ***