Date: Mon, 16 Apr 2018 14:43:02 +0000 (UTC) From: Mark Johnston <markj@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: 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... Message-ID: <201804161443.w3GEh2Wm046983@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201804161443.w3GEh2Wm046983>