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...
Warner Losh
imp at FreeBSD.org
Sun Aug 22 21:44:52 UTC 2010
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 ***
More information about the svn-src-user
mailing list