svn commit: r332570 - in user/markj/netdump: . bin/expr contrib/amd contrib/amd/amd contrib/bsnmp/snmp_mibII gnu/usr.bin/gdb/kgdb lib/clang lib/libc/net share/man/man4 share/vt/fonts stand/common s...
Mark Johnston
markj at FreeBSD.org
Mon Apr 16 14:43:04 UTC 2018
Author: markj
Date: Mon Apr 16 14:43:01 2018
New Revision: 332570
URL: https://svnweb.freebsd.org/changeset/base/332570
Log:
MFH at r332568.
Added:
user/markj/netdump/share/vt/fonts/tom-thumb.hex
- copied unchanged from r332568, head/share/vt/fonts/tom-thumb.hex
user/markj/netdump/sys/i386/i386/copyout.c
- copied unchanged from r332568, head/sys/i386/i386/copyout.c
user/markj/netdump/sys/i386/i386/copyout_fast.s
- copied unchanged from r332568, head/sys/i386/i386/copyout_fast.s
Deleted:
user/markj/netdump/share/man/man4/cm.4
user/markj/netdump/sys/dev/cm/if_cm_isa.c
user/markj/netdump/sys/dev/cm/smc90cx6.c
user/markj/netdump/sys/dev/cm/smc90cx6reg.h
user/markj/netdump/sys/dev/cm/smc90cx6var.h
user/markj/netdump/sys/modules/arcnet/Makefile
user/markj/netdump/sys/modules/cm/Makefile
user/markj/netdump/sys/net/if_arc.h
user/markj/netdump/sys/net/if_arcsubr.c
Modified:
user/markj/netdump/ObsoleteFiles.inc
user/markj/netdump/UPDATING
user/markj/netdump/bin/expr/expr.y
user/markj/netdump/contrib/amd/FREEBSD-upgrade
user/markj/netdump/contrib/amd/amd/amd.8
user/markj/netdump/contrib/bsnmp/snmp_mibII/mibII.c
user/markj/netdump/gnu/usr.bin/gdb/kgdb/trgt_i386.c
user/markj/netdump/lib/clang/freebsd_cc_version.h
user/markj/netdump/lib/libc/net/getnameinfo.c
user/markj/netdump/share/man/man4/Makefile
user/markj/netdump/share/vt/fonts/Makefile
user/markj/netdump/stand/common/bootstrap.h
user/markj/netdump/stand/common/commands.c
user/markj/netdump/stand/efi/boot1/generate-fat.sh
user/markj/netdump/stand/i386/libi386/pxe.h
user/markj/netdump/sys/amd64/amd64/pmap.c
user/markj/netdump/sys/amd64/include/vmm.h
user/markj/netdump/sys/amd64/vmm/intel/vmx.c
user/markj/netdump/sys/amd64/vmm/vmm.c
user/markj/netdump/sys/arm/include/db_machdep.h
user/markj/netdump/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
user/markj/netdump/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
user/markj/netdump/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h
user/markj/netdump/sys/conf/NOTES
user/markj/netdump/sys/conf/files
user/markj/netdump/sys/conf/files.i386
user/markj/netdump/sys/conf/ldscript.i386
user/markj/netdump/sys/ddb/db_access.c
user/markj/netdump/sys/dev/cxgbe/adapter.h
user/markj/netdump/sys/dev/cxgbe/offload.h
user/markj/netdump/sys/dev/cxgbe/t4_ioctl.h
user/markj/netdump/sys/dev/cxgbe/t4_main.c
user/markj/netdump/sys/dev/cxgbe/t4_sge.c
user/markj/netdump/sys/dev/cxgbe/tom/t4_connect.c
user/markj/netdump/sys/dev/cxgbe/tom/t4_cpl_io.c
user/markj/netdump/sys/dev/cxgbe/tom/t4_listen.c
user/markj/netdump/sys/dev/cxgbe/tom/t4_tom.c
user/markj/netdump/sys/dev/cxgbe/tom/t4_tom.h
user/markj/netdump/sys/dev/dcons/dcons_crom.c
user/markj/netdump/sys/dev/dcons/dcons_os.c
user/markj/netdump/sys/dev/hyperv/vmbus/i386/vmbus_vector.S
user/markj/netdump/sys/dev/netmap/netmap_freebsd.c
user/markj/netdump/sys/dev/ppc/ppc.c
user/markj/netdump/sys/dev/syscons/syscons.c
user/markj/netdump/sys/i386/conf/NOTES
user/markj/netdump/sys/i386/i386/apic_vector.s
user/markj/netdump/sys/i386/i386/atpic_vector.s
user/markj/netdump/sys/i386/i386/bios.c
user/markj/netdump/sys/i386/i386/db_disasm.c
user/markj/netdump/sys/i386/i386/db_interface.c
user/markj/netdump/sys/i386/i386/db_trace.c
user/markj/netdump/sys/i386/i386/elf_machdep.c
user/markj/netdump/sys/i386/i386/exception.s
user/markj/netdump/sys/i386/i386/genassym.c
user/markj/netdump/sys/i386/i386/locore.s
user/markj/netdump/sys/i386/i386/machdep.c
user/markj/netdump/sys/i386/i386/mem.c
user/markj/netdump/sys/i386/i386/minidump_machdep.c
user/markj/netdump/sys/i386/i386/mp_machdep.c
user/markj/netdump/sys/i386/i386/mpboot.s
user/markj/netdump/sys/i386/i386/pmap.c
user/markj/netdump/sys/i386/i386/sigtramp.s
user/markj/netdump/sys/i386/i386/support.s
user/markj/netdump/sys/i386/i386/swtch.s
user/markj/netdump/sys/i386/i386/sys_machdep.c
user/markj/netdump/sys/i386/i386/trap.c
user/markj/netdump/sys/i386/i386/vm86.c
user/markj/netdump/sys/i386/i386/vm86bios.s
user/markj/netdump/sys/i386/i386/vm_machdep.c
user/markj/netdump/sys/i386/include/asmacros.h
user/markj/netdump/sys/i386/include/frame.h
user/markj/netdump/sys/i386/include/md_var.h
user/markj/netdump/sys/i386/include/param.h
user/markj/netdump/sys/i386/include/pc/bios.h
user/markj/netdump/sys/i386/include/pcpu.h
user/markj/netdump/sys/i386/include/pmap.h
user/markj/netdump/sys/i386/include/segments.h
user/markj/netdump/sys/i386/include/vmparam.h
user/markj/netdump/sys/kern/imgact_aout.c
user/markj/netdump/sys/kern/subr_witness.c
user/markj/netdump/sys/mips/include/db_machdep.h
user/markj/netdump/sys/modules/Makefile
user/markj/netdump/sys/net/if.c
user/markj/netdump/sys/net/if_arp.h
user/markj/netdump/sys/netinet/if_ether.c
user/markj/netdump/sys/netinet6/in6.c
user/markj/netdump/sys/netinet6/in6_ifattach.c
user/markj/netdump/sys/netinet6/nd6.c
user/markj/netdump/sys/netinet6/nd6_nbr.c
user/markj/netdump/sys/powerpc/include/db_machdep.h
user/markj/netdump/sys/powerpc/mpc85xx/fsl_diu.c
user/markj/netdump/sys/sparc64/include/db_machdep.h
user/markj/netdump/sys/x86/acpica/acpi_wakeup.c
user/markj/netdump/sys/x86/cpufreq/est.c
user/markj/netdump/sys/x86/x86/local_apic.c
user/markj/netdump/sys/x86/x86/mp_x86.c
user/markj/netdump/sys/x86/x86/mptable.c
user/markj/netdump/usr.bin/dtc/dtc.1
user/markj/netdump/usr.bin/dtc/dtc.cc
user/markj/netdump/usr.bin/dtc/fdt.cc
user/markj/netdump/usr.bin/dtc/fdt.hh
user/markj/netdump/usr.bin/wall/ttymsg.c
user/markj/netdump/usr.bin/wall/ttymsg.h
user/markj/netdump/usr.sbin/cxgbetool/Makefile
user/markj/netdump/usr.sbin/cxgbetool/cxgbetool.8
user/markj/netdump/usr.sbin/cxgbetool/cxgbetool.c
user/markj/netdump/usr.sbin/daemon/daemon.8
user/markj/netdump/usr.sbin/daemon/daemon.c
user/markj/netdump/usr.sbin/mountd/mountd.c
user/markj/netdump/usr.sbin/pkg/pkg.c
user/markj/netdump/usr.sbin/syslogd/syslogd.8
user/markj/netdump/usr.sbin/syslogd/syslogd.c
Directory Properties:
user/markj/netdump/ (props changed)
user/markj/netdump/contrib/amd/ (props changed)
user/markj/netdump/gnu/usr.bin/gdb/ (props changed)
user/markj/netdump/sys/cddl/contrib/opensolaris/ (props changed)
Modified: user/markj/netdump/ObsoleteFiles.inc
==============================================================================
--- user/markj/netdump/ObsoleteFiles.inc Mon Apr 16 14:42:25 2018 (r332569)
+++ user/markj/netdump/ObsoleteFiles.inc Mon Apr 16 14:43:01 2018 (r332570)
@@ -38,6 +38,9 @@
# xargs -n1 | sort | uniq -d;
# done
+# 20180413: remove Arcnet support
+OLD_FILES+=usr/include/net/if_arc.h
+OLD_FILES+=usr/share/man/man4/cm.4.gz
# 20180409: remove FDDI support
OLD_FILES+=usr/include/net/fddi.h
OLD_FILES+=usr/share/man/man4/fpa.4.gz
@@ -416,7 +419,7 @@ OLD_FILES+=usr/share/man/man9/mbp_sync.9.gz
OLD_FILES+=usr/lib/libstand.a
OLD_FILES+=usr/lib/libstand_p.a
OLD_FILES+=usr/include/stand.h
-OLD_FILES+=usr/share/man/man3/libstand.3
+OLD_FILES+=usr/share/man/man3/libstand.3.gz
# 20171003: remove RCMDS
OLD_FILES+=bin/rcp
OLD_FILES+=rescue/rcp
Modified: user/markj/netdump/UPDATING
==============================================================================
--- user/markj/netdump/UPDATING Mon Apr 16 14:42:25 2018 (r332569)
+++ user/markj/netdump/UPDATING Mon Apr 16 14:43:01 2018 (r332570)
@@ -51,6 +51,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW:
****************************** SPECIAL WARNING: ******************************
+20180413:
+ Support for Arcnet networks has been removed. If you have device
+ arcnet or device cm in your kernel config file they must be
+ removed.
+
20180411:
Support for FDDI networks has been removed. If you have device
fddi or device fpa in your kernel config file they must be
Modified: user/markj/netdump/bin/expr/expr.y
==============================================================================
--- user/markj/netdump/bin/expr/expr.y Mon Apr 16 14:42:25 2018 (r332569)
+++ user/markj/netdump/bin/expr/expr.y Mon Apr 16 14:43:01 2018 (r332570)
@@ -422,11 +422,9 @@ op_plus(struct val *a, struct val *b)
void
assert_minus(intmax_t a, intmax_t b, intmax_t r)
{
- /* special case subtraction of INTMAX_MIN */
- if (b == INTMAX_MIN && a < 0)
+ if ((a >= 0 && b < 0 && r <= 0) ||
+ (a < 0 && b > 0 && r >= 0))
errx(ERR_EXIT, "overflow");
- /* check addition of negative subtrahend */
- assert_plus(a, -b, r);
}
struct val *
Modified: user/markj/netdump/contrib/amd/FREEBSD-upgrade
==============================================================================
--- user/markj/netdump/contrib/amd/FREEBSD-upgrade Mon Apr 16 14:42:25 2018 (r332569)
+++ user/markj/netdump/contrib/amd/FREEBSD-upgrade Mon Apr 16 14:43:01 2018 (r332570)
@@ -32,6 +32,7 @@ https://bugzilla.am-utils.org for inclusion in the nex
Local changes:
amd/amd.8
+ - corrected formatting of SEE ALSO
r1.17 Uniformly refer to a file system as "file system"
r1.16 Add the am-utils homepage to SEE ALSO
r1.15 s/BSD/.Bx/ where appropriate
Modified: user/markj/netdump/contrib/amd/amd/amd.8
==============================================================================
--- user/markj/netdump/contrib/amd/amd/amd.8 Mon Apr 16 14:42:25 2018 (r332569)
+++ user/markj/netdump/contrib/amd/amd/amd.8 Mon Apr 16 14:43:01 2018 (r332570)
@@ -362,15 +362,15 @@ number of process context switches.
A weird imagination is most useful to gain full advantage of all
the features.
.Sh SEE ALSO
-.Xr domainname 1,
-.Xr hostname 1,
-.Xr syslog 3.
-.Xr amd.conf 5,
-.Xr mtab 5,
-.Xr amq 8,
-.Xr automount 8,
-.Xr mount 8,
-.Xr umount 8,
+.Xr domainname 1 ,
+.Xr hostname 1 ,
+.Xr syslog 3 ,
+.Xr amd.conf 5 ,
+.Xr mtab 5 ,
+.Xr amq 8 ,
+.Xr automount 8 ,
+.Xr mount 8 ,
+.Xr umount 8
.Pp
.Dq am-utils
.Xr info 1
Modified: user/markj/netdump/contrib/bsnmp/snmp_mibII/mibII.c
==============================================================================
--- user/markj/netdump/contrib/bsnmp/snmp_mibII/mibII.c Mon Apr 16 14:42:25 2018 (r332569)
+++ user/markj/netdump/contrib/bsnmp/snmp_mibII/mibII.c Mon Apr 16 14:43:01 2018 (r332570)
@@ -846,7 +846,6 @@ static void
check_llbcast(struct mibif *ifp)
{
static u_char ether_bcast[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
- static u_char arcnet_bcast = 0;
struct mibrcvaddr *rcv;
if (!(ifp->mib.ifmd_flags & IFF_BROADCAST))
@@ -860,12 +859,6 @@ check_llbcast(struct mibif *ifp)
case IFT_L2VLAN:
if (mib_find_rcvaddr(ifp->index, ether_bcast, 6) == NULL &&
(rcv = mib_rcvaddr_create(ifp, ether_bcast, 6)) != NULL)
- rcv->flags |= MIBRCVADDR_BCAST;
- break;
-
- case IFT_ARCNET:
- if (mib_find_rcvaddr(ifp->index, &arcnet_bcast, 1) == NULL &&
- (rcv = mib_rcvaddr_create(ifp, &arcnet_bcast, 1)) != NULL)
rcv->flags |= MIBRCVADDR_BCAST;
break;
}
Modified: user/markj/netdump/gnu/usr.bin/gdb/kgdb/trgt_i386.c
==============================================================================
--- user/markj/netdump/gnu/usr.bin/gdb/kgdb/trgt_i386.c Mon Apr 16 14:42:25 2018 (r332569)
+++ user/markj/netdump/gnu/usr.bin/gdb/kgdb/trgt_i386.c Mon Apr 16 14:43:01 2018 (r332570)
@@ -29,6 +29,8 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/proc.h>
+#include <vm/vm.h>
+#include <vm/pmap.h>
#include <machine/pcb.h>
#include <machine/frame.h>
#include <machine/segments.h>
@@ -279,12 +281,26 @@ kgdb_trgt_frame_cache(struct frame_info *next_frame, v
char buf[MAX_REGISTER_SIZE];
struct kgdb_frame_cache *cache;
char *pname;
+ CORE_ADDR pcx;
+ uintptr_t addr, setidt_disp;
cache = *this_cache;
if (cache == NULL) {
cache = FRAME_OBSTACK_ZALLOC(struct kgdb_frame_cache);
*this_cache = cache;
- cache->pc = frame_func_unwind(next_frame);
+ pcx = frame_pc_unwind(next_frame);
+ if (pcx >= PMAP_TRM_MIN_ADDRESS) {
+ addr = kgdb_lookup("setidt_disp");
+ if (addr != 0) {
+ if (kvm_read(kvm, addr, &setidt_disp,
+ sizeof(setidt_disp)) !=
+ sizeof(setidt_disp))
+ warnx("kvm_read: %s", kvm_geterr(kvm));
+ else
+ pcx -= setidt_disp;
+ }
+ }
+ cache->pc = pcx;
find_pc_partial_function(cache->pc, &pname, NULL, NULL);
if (pname[0] != 'X')
cache->frame_type = FT_NORMAL;
@@ -373,6 +389,8 @@ kgdb_trgt_trapframe_sniffer(struct frame_info *next_fr
CORE_ADDR pc;
pc = frame_pc_unwind(next_frame);
+ if (pc >= PMAP_TRM_MIN_ADDRESS)
+ return (&kgdb_trgt_trapframe_unwind);
pname = NULL;
find_pc_partial_function(pc, &pname, NULL, NULL);
if (pname == NULL)
Modified: user/markj/netdump/lib/clang/freebsd_cc_version.h
==============================================================================
--- user/markj/netdump/lib/clang/freebsd_cc_version.h Mon Apr 16 14:42:25 2018 (r332569)
+++ user/markj/netdump/lib/clang/freebsd_cc_version.h Mon Apr 16 14:43:01 2018 (r332570)
@@ -1,3 +1,3 @@
/* $FreeBSD$ */
-#define FREEBSD_CC_VERSION 1200011
+#define FREEBSD_CC_VERSION 1200013
Modified: user/markj/netdump/lib/libc/net/getnameinfo.c
==============================================================================
--- user/markj/netdump/lib/libc/net/getnameinfo.c Mon Apr 16 14:42:25 2018 (r332569)
+++ user/markj/netdump/lib/libc/net/getnameinfo.c Mon Apr 16 14:43:01 2018 (r332570)
@@ -481,7 +481,6 @@ getnameinfo_link(const struct afd *afd,
* IFT_OTHER (netinet/ip_ipip.c)
*/
/* default below is believed correct for all these. */
- case IFT_ARCNET:
case IFT_ETHER:
case IFT_FDDI:
case IFT_HIPPI:
Modified: user/markj/netdump/share/man/man4/Makefile
==============================================================================
--- user/markj/netdump/share/man/man4/Makefile Mon Apr 16 14:42:25 2018 (r332569)
+++ user/markj/netdump/share/man/man4/Makefile Mon Apr 16 14:43:01 2018 (r332570)
@@ -120,7 +120,6 @@ MAN= aac.4 \
chromebook_platform.4 \
ciss.4 \
cloudabi.4 \
- cm.4 \
cmx.4 \
${_coretemp.4} \
${_cpuctl.4} \
Modified: user/markj/netdump/share/vt/fonts/Makefile
==============================================================================
--- user/markj/netdump/share/vt/fonts/Makefile Mon Apr 16 14:42:25 2018 (r332569)
+++ user/markj/netdump/share/vt/fonts/Makefile Mon Apr 16 14:43:01 2018 (r332570)
@@ -2,6 +2,7 @@
FILES= gallant.fnt \
terminus-b32.fnt \
+ tom-thumb.fnt \
vgarom-8x8.fnt \
vgarom-8x14.fnt \
vgarom-8x16.fnt \
Copied: user/markj/netdump/share/vt/fonts/tom-thumb.hex (from r332568, head/share/vt/fonts/tom-thumb.hex)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ user/markj/netdump/share/vt/fonts/tom-thumb.hex Mon Apr 16 14:43:01 2018 (r332570, copy of r332568, head/share/vt/fonts/tom-thumb.hex)
@@ -0,0 +1,212 @@
+# $FreeBSD$
+# tom-thumb by Brian Swetland and Robey Pointer
+#
+# To the extent possible under law, the person who associated CC0 with
+# tom-thumb has waived all copyright and related or neighboring rights
+# to tom-thumb.
+#
+# You should have received a copy of the CC0 legalcode along with this
+# work. If not, see <http://creativecommons.org/publicdomain/zero/1.0>.
+#
+# Height: 6
+# Width: 4
+0020:000000000000
+0021:404040004000
+0022:A0A000000000
+0023:A0E0A0E0A000
+0024:60C060C04000
+0025:802040802000
+0026:C0C0E0A06000
+0027:404000000000
+0028:408080804000
+0029:804040408000
+002A:00A040A00000
+002B:0040E0400000
+002C:000000408000
+002D:0000E0000000
+002E:000000004000
+002F:202040808000
+0030:60A0A0A0C000
+0031:40C040404000
+0032:C0204080E000
+0033:C0204020C000
+0034:A0A0E0202000
+0035:E080C020C000
+0036:6080E0A0E000
+0037:E02040808000
+0038:E0A0E0A0E000
+0039:E0A0E020C000
+003A:004000400000
+003B:004000408000
+003C:204080402000
+003D:00E000E00000
+003E:804020408000
+003F:E02040004000
+0040:40A0E0806000
+0041:40A0E0A0A000
+0042:C0A0C0A0C000
+0043:608080806000
+0044:C0A0A0A0C000
+0045:E080E080E000
+0046:E080E0808000
+0047:6080E0A06000
+0048:A0A0E0A0A000
+0049:E0404040E000
+004A:202020A04000
+004B:A0A0C0A0A000
+004C:80808080E000
+004D:A0E0E0A0A000
+004E:A0E0E0E0A000
+004F:40A0A0A04000
+0050:C0A0C0808000
+0051:40A0A0E06000
+0052:C0A0E0C0A000
+0053:60804020C000
+0054:E04040404000
+0055:A0A0A0A06000
+0056:A0A0A0404000
+0057:A0A0E0E0A000
+0058:A0A040A0A000
+0059:A0A040404000
+005A:E0204080E000
+005B:E0808080E000
+005C:008040200000
+005D:E0202020E000
+005E:40A000000000
+005F:00000000E000
+0060:804000000000
+0061:00C060A0E000
+0062:80C0A0A0C000
+0063:006080806000
+0064:2060A0A06000
+0065:0060A0C06000
+0066:2040E0404000
+0067:0060A0E02040
+0068:80C0A0A0A000
+0069:400040404000
+006A:20002020A040
+006B:80A0C0C0A000
+006C:C0404040E000
+006D:00E0E0E0A000
+006E:00C0A0A0A000
+006F:0040A0A04000
+0070:00C0A0A0C080
+0071:0060A0A06020
+0072:006080808000
+0073:0060C060C000
+0074:40E040406000
+0075:00A0A0A06000
+0076:00A0A0E04000
+0077:00A0E0E0E000
+0078:00A04040A000
+0079:00A0A0602040
+007A:00E060C0E000
+007B:604080406000
+007C:404000404000
+007D:C0402040C000
+007E:60C000000000
+00A1:800080808000
+00A2:40E080E04000
+00A3:6040E040E000
+00A4:A040E040A000
+00A5:A0A040E04000
+00A6:404000404000
+00A7:6040A040C000
+00A8:A00000000000
+00A9:608060000000
+00AA:60A0E000E000
+00AB:408040000000
+00AC:E02000000000
+00AD:C00000000000
+00AE:C0C0A0000000
+00AF:E00000000000
+00B0:40A040000000
+00B1:40E04000E000
+00B2:C04060000000
+00B3:E060E0000000
+00B4:408000000000
+00B5:A0A0A0C08000
+00B6:60A060606000
+00B7:E0E0E0000000
+00B8:4020C0000000
+00B9:808080000000
+00BA:40A04000E000
+00BB:804080000000
+00BC:808000602000
+00BD:808000C06000
+00BE:C0C000602000
+00BF:40004080E000
+00C0:402040E0A000
+00C1:408040E0A000
+00C2:E00040E0A000
+00C3:60C040E0A000
+00C4:A040A0E0A000
+00C5:C0C0A0E0A000
+00C6:60C0E0C0E000
+00C7:608080602040
+00C8:4020E0C0E000
+00C9:4080E0C0E000
+00CA:E000E0C0E000
+00CB:A000E0C0E000
+00CC:4020E040E000
+00CD:4080E040E000
+00CE:E000E040E000
+00CF:A000E040E000
+00D0:C0A0E0A0C000
+00D1:C060A0E0A000
+00D2:4020E0A0E000
+00D3:4080E0A0E000
+00D4:E000E0A0E000
+00D5:C060E0A0E000
+00D6:A000E0A0E000
+00D7:A040A0000000
+00D8:60A0E0A0C000
+00D9:8040A0A0E000
+00DA:2040A0A0E000
+00DB:E000A0A0E000
+00DC:A000A0A0E000
+00DD:2040A0E04000
+00DE:80E0A0E08000
+00DF:60A0C0A0C080
+00E0:402060A0E000
+00E1:408060A0E000
+00E2:E00060A0E000
+00E3:60C060A0E000
+00E4:A00060A0E000
+00E5:606060A0E000
+00E6:60E0E0C00000
+00E7:608060204000
+00E8:402060E06000
+00E9:408060E06000
+00EA:E00060E06000
+00EB:A00060E06000
+00EC:804080808000
+00ED:408040404000
+00EE:E00040404000
+00EF:A00040404000
+00F0:60C060A06000
+00F1:C060C0A0A000
+00F2:402040A04000
+00F3:408040A04000
+00F4:E00040A04000
+00F5:C06040A04000
+00F6:A00040A04000
+00F7:4000E0004000
+00F8:60E0A0C00000
+00F9:8040A0A06000
+00FA:2040A0A06000
+00FB:E000A0A06000
+00FC:A000A0A06000
+00FD:2040A0602040
+00FE:80C0A0C08000
+00FF:A000A0602040
+0152:60C0E0C06000
+0153:60E0C0E00000
+0160:A060C060C000
+0161:A060C060C000
+0178:A000A0404000
+017D:A0E060C0E000
+017E:A0E060C0E000
+2022:000040000000
+2026:00000000A000
+20AC:60E0E0C06000
Modified: user/markj/netdump/stand/common/bootstrap.h
==============================================================================
--- user/markj/netdump/stand/common/bootstrap.h Mon Apr 16 14:42:25 2018 (r332569)
+++ user/markj/netdump/stand/common/bootstrap.h Mon Apr 16 14:43:01 2018 (r332570)
@@ -36,7 +36,7 @@
/* Commands and return values; nonzero return sets command_errmsg != NULL */
typedef int (bootblk_cmd_t)(int argc, char *argv[]);
#define COMMAND_ERRBUFSZ (256)
-extern char *command_errmsg;
+extern const char *command_errmsg;
extern char command_errbuf[COMMAND_ERRBUFSZ];
#define CMD_OK 0
#define CMD_WARN 1
Modified: user/markj/netdump/stand/common/commands.c
==============================================================================
--- user/markj/netdump/stand/common/commands.c Mon Apr 16 14:42:25 2018 (r332569)
+++ user/markj/netdump/stand/common/commands.c Mon Apr 16 14:43:01 2018 (r332570)
@@ -32,7 +32,7 @@ __FBSDID("$FreeBSD$");
#include "bootstrap.h"
-char *command_errmsg;
+const char *command_errmsg;
/* XXX should have procedural interface for setting, size limit? */
char command_errbuf[COMMAND_ERRBUFSZ];
@@ -61,153 +61,160 @@ here
COMMAND_SET(help, "help", "detailed help", command_help);
static int
-help_getnext(int fd, char **topic, char **subtopic, char **desc)
+help_getnext(int fd, char **topic, char **subtopic, char **desc)
{
- char line[81], *cp, *ep;
-
- for (;;) {
- if (fgetstr(line, 80, fd) < 0)
- return(0);
-
- if ((strlen(line) < 3) || (line[0] != '#') || (line[1] != ' '))
- continue;
+ char line[81], *cp, *ep;
+ /* Make sure we provide sane values. */
*topic = *subtopic = *desc = NULL;
- cp = line + 2;
- while((cp != NULL) && (*cp != 0)) {
- ep = strchr(cp, ' ');
- if ((*cp == 'T') && (*topic == NULL)) {
- if (ep != NULL)
- *ep++ = 0;
- *topic = strdup(cp + 1);
- } else if ((*cp == 'S') && (*subtopic == NULL)) {
- if (ep != NULL)
- *ep++ = 0;
- *subtopic = strdup(cp + 1);
- } else if (*cp == 'D') {
- *desc = strdup(cp + 1);
- ep = NULL;
- }
- cp = ep;
+ for (;;) {
+ if (fgetstr(line, 80, fd) < 0)
+ return (0);
+
+ if (strlen(line) < 3 || line[0] != '#' || line[1] != ' ')
+ continue;
+
+ cp = line + 2;
+ while (cp != NULL && *cp != 0) {
+ ep = strchr(cp, ' ');
+ if (*cp == 'T' && *topic == NULL) {
+ if (ep != NULL)
+ *ep++ = 0;
+ *topic = strdup(cp + 1);
+ } else if (*cp == 'S' && *subtopic == NULL) {
+ if (ep != NULL)
+ *ep++ = 0;
+ *subtopic = strdup(cp + 1);
+ } else if (*cp == 'D') {
+ *desc = strdup(cp + 1);
+ ep = NULL;
+ }
+ cp = ep;
+ }
+ if (*topic == NULL) {
+ free(*subtopic);
+ free(*desc);
+ *subtopic = *desc = NULL;
+ continue;
+ }
+ return (1);
}
- if (*topic == NULL) {
- free(*subtopic);
- free(*desc);
- continue;
- }
- return(1);
- }
}
static int
help_emitsummary(char *topic, char *subtopic, char *desc)
{
- int i;
-
- pager_output(" ");
- pager_output(topic);
- i = strlen(topic);
- if (subtopic != NULL) {
- pager_output(" ");
- pager_output(subtopic);
- i += strlen(subtopic) + 1;
- }
- if (desc != NULL) {
- do {
- pager_output(" ");
- } while (i++ < 30);
- pager_output(desc);
- }
- return (pager_output("\n"));
+ int i;
+
+ pager_output(" ");
+ pager_output(topic);
+ i = strlen(topic);
+ if (subtopic != NULL) {
+ pager_output(" ");
+ pager_output(subtopic);
+ i += strlen(subtopic) + 1;
+ }
+ if (desc != NULL) {
+ do {
+ pager_output(" ");
+ } while (i++ < 30);
+ pager_output(desc);
+ }
+ return (pager_output("\n"));
}
-
+
static int
-command_help(int argc, char *argv[])
+command_help(int argc, char *argv[])
{
- char buf[81]; /* XXX buffer size? */
- int hfd, matched, doindex;
- char *topic, *subtopic, *t, *s, *d;
+ char buf[81]; /* XXX buffer size? */
+ int hfd, matched, doindex;
+ char *topic, *subtopic, *t, *s, *d;
- /* page the help text from our load path */
- snprintf(buf, sizeof(buf), "%s/boot/loader.help", getenv("loaddev"));
- if ((hfd = open(buf, O_RDONLY)) < 0) {
- printf("Verbose help not available, use '?' to list commands\n");
- return(CMD_OK);
- }
+ /* page the help text from our load path */
+ snprintf(buf, sizeof(buf), "%s/boot/loader.help", getenv("loaddev"));
+ if ((hfd = open(buf, O_RDONLY)) < 0) {
+ printf("Verbose help not available, "
+ "use '?' to list commands\n");
+ return (CMD_OK);
+ }
- /* pick up request from arguments */
- topic = subtopic = NULL;
- switch(argc) {
- case 3:
- subtopic = strdup(argv[2]);
- case 2:
- topic = strdup(argv[1]);
- break;
- case 1:
- topic = strdup("help");
- break;
- default:
- command_errmsg = "usage is 'help <topic> [<subtopic>]";
- close(hfd);
- return(CMD_ERROR);
- }
+ /* pick up request from arguments */
+ topic = subtopic = NULL;
+ switch (argc) {
+ case 3:
+ subtopic = strdup(argv[2]);
+ /* FALLTHROUGH */
+ case 2:
+ topic = strdup(argv[1]);
+ break;
+ case 1:
+ topic = strdup("help");
+ break;
+ default:
+ command_errmsg = "usage is 'help <topic> [<subtopic>]";
+ close(hfd);
+ return(CMD_ERROR);
+ }
- /* magic "index" keyword */
- doindex = !strcmp(topic, "index");
- matched = doindex;
-
- /* Scan the helpfile looking for help matching the request */
- pager_open();
- while(help_getnext(hfd, &t, &s, &d)) {
+ /* magic "index" keyword */
+ doindex = strcmp(topic, "index") == 0? 1 : 0;
+ matched = doindex;
- if (doindex) { /* dink around formatting */
- if (help_emitsummary(t, s, d))
- break;
+ /* Scan the helpfile looking for help matching the request */
+ pager_open();
+ while (help_getnext(hfd, &t, &s, &d)) {
- } else if (strcmp(topic, t)) {
- /* topic mismatch */
- if (matched) /* nothing more on this topic, stop scanning */
- break;
+ if (doindex) { /* dink around formatting */
+ if (help_emitsummary(t, s, d))
+ break;
- } else {
- /* topic matched */
- matched = 1;
- if (((subtopic == NULL) && (s == NULL)) ||
- ((subtopic != NULL) && (s != NULL) && !strcmp(subtopic, s))) {
- /* exact match, print text */
- while ((fgetstr(buf, 80, hfd) >= 0) && (buf[0] != '#')) {
- if (pager_output(buf))
- break;
- if (pager_output("\n"))
- break;
+ } else if (strcmp(topic, t)) {
+ /* topic mismatch */
+ if (matched) {
+ /* nothing more on this topic, stop scanning */
+ break;
+ }
+ } else {
+ /* topic matched */
+ matched = 1;
+ if ((subtopic == NULL && s == NULL) ||
+ (subtopic != NULL && s != NULL &&
+ strcmp(subtopic, s) == 0)) {
+ /* exact match, print text */
+ while (fgetstr(buf, 80, hfd) >= 0 &&
+ buf[0] != '#') {
+ if (pager_output(buf))
+ break;
+ if (pager_output("\n"))
+ break;
+ }
+ } else if (subtopic == NULL && s != NULL) {
+ /* topic match, list subtopics */
+ if (help_emitsummary(t, s, d))
+ break;
+ }
}
- } else if ((subtopic == NULL) && (s != NULL)) {
- /* topic match, list subtopics */
- if (help_emitsummary(t, s, d))
- break;
- }
+ free(t);
+ free(s);
+ free(d);
+ t = s = d = NULL;
}
free(t);
free(s);
free(d);
- t = s = d = NULL;
- }
- free(t);
- free(s);
- free(d);
- pager_close();
- close(hfd);
- if (!matched) {
- snprintf(command_errbuf, sizeof(command_errbuf),
- "no help available for '%s'", topic);
+ pager_close();
+ close(hfd);
+ if (!matched) {
+ snprintf(command_errbuf, sizeof(command_errbuf),
+ "no help available for '%s'", topic);
+ free(topic);
+ free(subtopic);
+ return (CMD_ERROR);
+ }
free(topic);
free(subtopic);
- return(CMD_ERROR);
- }
- free(topic);
- free(subtopic);
- return(CMD_OK);
+ return (CMD_OK);
}
COMMAND_SET(commandlist, "?", "list commands", command_commandlist);
@@ -221,27 +228,28 @@ COMMAND_SET(commandlist, "?", "list commands", command
* fixing it.
*/
static int
-command_commandlist(int argc, char *argv[])
+command_commandlist(int argc __unused, char *argv[] __unused)
{
- struct bootblk_command **cmdp;
- int res;
- char name[20];
+ struct bootblk_command **cmdp;
+ int res;
+ char name[20];
- res = 0;
- pager_open();
- res = pager_output("Available commands:\n");
- SET_FOREACH(cmdp, Xcommand_set) {
- if (res)
- break;
- if (((*cmdp)->c_name != NULL) && ((*cmdp)->c_desc != NULL)) {
- sprintf(name, " %-15s ", (*cmdp)->c_name);
- pager_output(name);
- pager_output((*cmdp)->c_desc);
- res = pager_output("\n");
+ res = 0;
+ pager_open();
+ res = pager_output("Available commands:\n");
+ SET_FOREACH(cmdp, Xcommand_set) {
+ if (res)
+ break;
+ if ((*cmdp)->c_name != NULL && (*cmdp)->c_desc != NULL) {
+ snprintf(name, sizeof(name), " %-15s ",
+ (*cmdp)->c_name);
+ pager_output(name);
+ pager_output((*cmdp)->c_desc);
+ res = pager_output("\n");
+ }
}
- }
- pager_close();
- return(CMD_OK);
+ pager_close();
+ return (CMD_OK);
}
/*
@@ -254,35 +262,35 @@ COMMAND_SET(show, "show", "show variable(s)", command_
static int
command_show(int argc, char *argv[])
{
- struct env_var *ev;
- char *cp;
+ struct env_var *ev;
+ char *cp;
- if (argc < 2) {
- /*
- * With no arguments, print everything.
- */
- pager_open();
- for (ev = environ; ev != NULL; ev = ev->ev_next) {
- pager_output(ev->ev_name);
- cp = getenv(ev->ev_name);
- if (cp != NULL) {
- pager_output("=");
- pager_output(cp);
- }
- if (pager_output("\n"))
- break;
- }
- pager_close();
- } else {
- if ((cp = getenv(argv[1])) != NULL) {
- printf("%s\n", cp);
+ if (argc < 2) {
+ /*
+ * With no arguments, print everything.
+ */
+ pager_open();
+ for (ev = environ; ev != NULL; ev = ev->ev_next) {
+ pager_output(ev->ev_name);
+ cp = getenv(ev->ev_name);
+ if (cp != NULL) {
+ pager_output("=");
+ pager_output(cp);
+ }
+ if (pager_output("\n"))
+ break;
+ }
+ pager_close();
} else {
- snprintf(command_errbuf, sizeof(command_errbuf),
- "variable '%s' not found", argv[1]);
- return(CMD_ERROR);
+ if ((cp = getenv(argv[1])) != NULL) {
+ printf("%s\n", cp);
+ } else {
+ snprintf(command_errbuf, sizeof(command_errbuf),
+ "variable '%s' not found", argv[1]);
+ return (CMD_ERROR);
+ }
}
- }
- return(CMD_OK);
+ return (CMD_OK);
}
COMMAND_SET(set, "set", "set a variable", command_set);
@@ -290,37 +298,37 @@ COMMAND_SET(set, "set", "set a variable", command_set)
static int
command_set(int argc, char *argv[])
{
- int err;
-
- if (argc != 2) {
- command_errmsg = "wrong number of arguments";
- return(CMD_ERROR);
- } else {
- if ((err = putenv(argv[1])) != 0) {
- command_errmsg = strerror(err);
- return(CMD_ERROR);
+ int err;
+
+ if (argc != 2) {
+ command_errmsg = "wrong number of arguments";
+ return (CMD_ERROR);
+ } else {
+ if ((err = putenv(argv[1])) != 0) {
+ command_errmsg = strerror(err);
+ return (CMD_ERROR);
+ }
}
- }
- return(CMD_OK);
+ return (CMD_OK);
}
COMMAND_SET(unset, "unset", "unset a variable", command_unset);
static int
-command_unset(int argc, char *argv[])
+command_unset(int argc, char *argv[])
{
- int err;
-
- if (argc != 2) {
- command_errmsg = "wrong number of arguments";
- return(CMD_ERROR);
- } else {
- if ((err = unsetenv(argv[1])) != 0) {
- command_errmsg = strerror(err);
- return(CMD_ERROR);
+ int err;
+
+ if (argc != 2) {
+ command_errmsg = "wrong number of arguments";
+ return (CMD_ERROR);
+ } else {
+ if ((err = unsetenv(argv[1])) != 0) {
+ command_errmsg = strerror(err);
+ return (CMD_ERROR);
+ }
}
- }
- return(CMD_OK);
+ return (CMD_OK);
}
COMMAND_SET(echo, "echo", "echo arguments", command_echo);
@@ -328,34 +336,34 @@ COMMAND_SET(echo, "echo", "echo arguments", command_ec
static int
command_echo(int argc, char *argv[])
{
- char *s;
- int nl, ch;
-
- nl = 0;
- optind = 1;
- optreset = 1;
- while ((ch = getopt(argc, argv, "n")) != -1) {
- switch(ch) {
- case 'n':
- nl = 1;
- break;
- case '?':
- default:
- /* getopt has already reported an error */
- return(CMD_OK);
+ char *s;
+ int nl, ch;
+
+ nl = 0;
+ optind = 1;
+ optreset = 1;
+ while ((ch = getopt(argc, argv, "n")) != -1) {
+ switch (ch) {
+ case 'n':
+ nl = 1;
+ break;
+ case '?':
+ default:
+ /* getopt has already reported an error */
+ return (CMD_OK);
+ }
}
- }
- argv += (optind);
- argc -= (optind);
+ argv += (optind);
+ argc -= (optind);
- s = unargv(argc, argv);
- if (s != NULL) {
- printf("%s", s);
- free(s);
- }
- if (!nl)
- printf("\n");
- return(CMD_OK);
+ s = unargv(argc, argv);
+ if (s != NULL) {
+ printf("%s", s);
+ free(s);
+ }
+ if (!nl)
+ printf("\n");
+ return (CMD_OK);
}
/*
@@ -367,55 +375,55 @@ COMMAND_SET(read, "read", "read input from the termina
static int
command_read(int argc, char *argv[])
{
- char *prompt;
- int timeout;
- time_t when;
- char *cp;
- char *name;
- char buf[256]; /* XXX size? */
- int c;
+ char *prompt;
+ int timeout;
+ time_t when;
+ char *cp;
+ char *name;
+ char buf[256]; /* XXX size? */
+ int c;
- timeout = -1;
- prompt = NULL;
- optind = 1;
- optreset = 1;
- while ((c = getopt(argc, argv, "p:t:")) != -1) {
- switch(c) {
-
- case 'p':
- prompt = optarg;
- break;
- case 't':
- timeout = strtol(optarg, &cp, 0);
- if (cp == optarg) {
- snprintf(command_errbuf, sizeof(command_errbuf),
- "bad timeout '%s'", optarg);
- return(CMD_ERROR);
- }
- break;
- default:
- return(CMD_OK);
+ timeout = -1;
+ prompt = NULL;
+ optind = 1;
+ optreset = 1;
+ while ((c = getopt(argc, argv, "p:t:")) != -1) {
+ switch (c) {
+ case 'p':
+ prompt = optarg;
+ break;
+ case 't':
+ timeout = strtol(optarg, &cp, 0);
+ if (cp == optarg) {
+ snprintf(command_errbuf,
+ sizeof(command_errbuf),
+ "bad timeout '%s'", optarg);
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-user
mailing list