Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F109298795
D20248.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
60 KB
Referenced Files
None
Subscribers
None
D20248.diff
View Options
Index: head/ObsoleteFiles.inc
===================================================================
--- head/ObsoleteFiles.inc
+++ head/ObsoleteFiles.inc
@@ -38,6 +38,11 @@
# xargs -n1 | sort | uniq -d;
# done
+# 20190523: Remove obsolete kgzip and support files
+OLD_FILES+=usr/sbin/kgzip
+OLD_FILES+=usr/lib/kgzldr.o
+OLD_FILES+=usr/share/man/man8/kgzip.8.gz
+
# 20190517: Remove obsolete 10 and 10/100 ethernet drivers.
OLD_FILES+=usr/share/man/man4/bm.4.gz
OLD_FILES+=usr/share/man/man4/cs.4.gz
Index: head/stand/i386/Makefile
===================================================================
--- head/stand/i386/Makefile
+++ head/stand/i386/Makefile
@@ -16,10 +16,6 @@
# special boot programs, 'self-extracting boot2+loader'
SUBDIR.yes+= pxeldr
-.if ${MACHINE_CPUARCH} == "i386"
-SUBDIR.yes+= kgzldr
-.endif
-
SUBDIR.${MK_LOADER_ZFS}+= zfsboot gptzfsboot
.include <bsd.subdir.mk>
Index: head/stand/i386/kgzldr/Makefile
===================================================================
--- head/stand/i386/kgzldr/Makefile
+++ head/stand/i386/kgzldr/Makefile
@@ -1,20 +0,0 @@
-# $FreeBSD$
-
-.include <bsd.init.mk>
-
-PROG= kgzldr.o
-STRIP=
-BINMODE=${LIBMODE}
-BINDIR= ${LIBDIR}
-
-SRCS= start.S boot.c subr_inflate.c lib.c crt.S sio.S
-CFLAGS= -Os
-CFLAGS+=-DKZIP
-NO_SHARED=
-LDFLAGS+=-Wl,-r
-.PATH: ${SYSDIR}/kern
-
-BOOT_COMCONSOLE_PORT?= 0x3f8
-ACFLAGS+=-Wa,-defsym,SIO_PRT=${BOOT_COMCONSOLE_PORT}
-
-.include <bsd.prog.mk>
Index: head/stand/i386/kgzldr/Makefile.depend
===================================================================
--- head/stand/i386/kgzldr/Makefile.depend
+++ head/stand/i386/kgzldr/Makefile.depend
@@ -1,12 +0,0 @@
-# $FreeBSD$
-# Autogenerated - do NOT edit!
-
-DIRDEPS = \
- include \
-
-
-.include <dirdeps.mk>
-
-.if ${DEP_RELDIR} == ${_DEP_RELDIR}
-# local dependencies - needed for -jN in clean tree
-.endif
Index: head/stand/i386/kgzldr/boot.c
===================================================================
--- head/stand/i386/kgzldr/boot.c
+++ head/stand/i386/kgzldr/boot.c
@@ -1,129 +0,0 @@
-/*-
- * Copyright (c) 1999 Global Technology Associates, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <sys/reboot.h>
-#include <sys/inflate.h>
-
-#include "kgzldr.h"
-
-#define KGZ_HEAD 0xa /* leading bytes to ignore */
-#define KGZ_TAIL 0x8 /* trailing bytes to ignore */
-
-#define E_FMT 1 /* Error: Invalid format */
-#define E_MEM 2 /* Error: Out of memory */
-
-struct kgz_hdr {
- char ident[4]; /* identification */
- uint32_t dload; /* decoded image load address */
- uint32_t dsize; /* decoded image size */
- uint32_t isize; /* image size in memory */
- uint32_t entry; /* program entry point */
- uint32_t nsize; /* encoded image size */
-};
-extern struct kgz_hdr kgz; /* header */
-extern uint8_t kgz_ndata[]; /* encoded image */
-
-static const char *const msg[] = {
- "done",
- "invalid format",
- "out of memory"
-};
-
-static const u_char *ip; /* input pointer */
-static u_char *op; /* output pointer */
-
-static struct inflate infl; /* inflate() parameters */
-
-static int decode(void);
-static int input(void *);
-static int output(void *, u_char *, u_long);
-
-/*
- * Uncompress and boot a kernel.
- */
-int
-boot(int howto)
-{
- int err;
-
- kgz_con = howto & RB_SERIAL ? KGZ_SIO : KGZ_CRT;
- putstr("Uncompressing ... ");
- err = decode();
- putstr(msg[err]);
- putstr("\n");
- if (err) {
- putstr("System halted");
- for (;;)
- ;
- }
- return err;
-}
-
-/*
- * Interface with inflate() to uncompress the data.
- */
-static int
-decode(void)
-{
- static u_char slide[GZ_WSIZE];
- int err;
-
- ip = kgz_ndata + KGZ_HEAD;
- op = (u_char *)kgz.dload;
- infl.gz_input = input;
- infl.gz_output = output;
- infl.gz_slide = slide;
- err = inflate(&infl);
- return err ? err == 3 ? E_MEM : E_FMT : 0;
-}
-
-/*
- * Read a byte.
- */
-static int
-input(void *dummy)
-{
- if ((size_t)(ip - kgz_ndata) + KGZ_TAIL > kgz.nsize)
- return GZ_EOF;
- return *ip++;
-}
-
-/*
- * Write some bytes.
- */
-static int
-output(void *dummy, u_char * ptr, u_long len)
-{
- if (op - (u_char *)kgz.dload + len > kgz.dsize)
- return -1;
- while (len--)
- *op++ = *ptr++;
- return 0;
-}
Index: head/stand/i386/kgzldr/crt.S
===================================================================
--- head/stand/i386/kgzldr/crt.S
+++ head/stand/i386/kgzldr/crt.S
@@ -1,83 +0,0 @@
-#
-# Copyright (c) 1999 Global Technology Associates, Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
-# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
-# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# From: btx.s 1.10 1999/02/25 16:27:41 rnordier
-# $FreeBSD$
-#
-
-# Screen defaults and assumptions.
-
- .set SCR_MAT,0x7 # Mode/attribute
- .set SCR_COL,0x50 # Columns per row
- .set SCR_ROW,0x19 # Rows per screen
-
-# BIOS Data Area locations.
-
- .set BDA_SCR,0x449 # Video mode
- .set BDA_POS,0x450 # Cursor position
-
- .globl crt_putchr
-
-# void crt_putchr(int c)
-
-crt_putchr: movb 0x4(%esp,1),%al # Get character
- pusha # Save
- xorl %ecx,%ecx # Zero for loops
- movb $SCR_MAT,%ah # Mode/attribute
- movl $BDA_POS,%ebx # BDA pointer
- movw (%ebx),%dx # Cursor position
- movl $0xb8000,%edi # Regen buffer (color)
- cmpb %ah,BDA_SCR-BDA_POS(%ebx) # Mono mode?
- jne crt_putchr.1 # No
- xorw %di,%di # Regen buffer (mono)
-crt_putchr.1: cmpb $0xa,%al # New line?
- je crt_putchr.2 # Yes
- xchgl %eax,%ecx # Save char
- movb $SCR_COL,%al # Columns per row
- mulb %dh # * row position
- addb %dl,%al # + column
- adcb $0x0,%ah # position
- shll %eax # * 2
- xchgl %eax,%ecx # Swap char, offset
- movw %ax,(%edi,%ecx,1) # Write attr:char
- incl %edx # Bump cursor
- cmpb $SCR_COL,%dl # Beyond row?
- jb crt_putchr.3 # No
-crt_putchr.2: xorb %dl,%dl # Zero column
- incb %dh # Bump row
-crt_putchr.3: cmpb $SCR_ROW,%dh # Beyond screen?
- jb crt_putchr.4 # No
- leal 2*SCR_COL(%edi),%esi # New top line
- movw $(SCR_ROW-1)*SCR_COL/2,%cx # Words to move
- rep # Scroll
- movsl # screen
- movb $' ',%al # Space
- movb $SCR_COL,%cl # Columns to clear
- rep # Clear
- stosw # line
- movb $SCR_ROW-1,%dh # Bottom line
-crt_putchr.4: movw %dx,(%ebx) # Update position
- popa # Restore
- ret # To caller
Index: head/stand/i386/kgzldr/kgzldr.h
===================================================================
--- head/stand/i386/kgzldr/kgzldr.h
+++ head/stand/i386/kgzldr/kgzldr.h
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 1999 Global Technology Associates, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#define KGZ_CRT 0x1 /* Video console */
-#define KGZ_SIO 0x2 /* Serial console */
-
-extern int kgz_con;
-
-int boot(int);
-
-unsigned char *kzipmalloc(int);
-void kzipfree(void *);
-void putstr(const char *);
-
-void crt_putchr(int);
-void sio_putchr(int);
Index: head/stand/i386/kgzldr/lib.c
===================================================================
--- head/stand/i386/kgzldr/lib.c
+++ head/stand/i386/kgzldr/lib.c
@@ -1,88 +0,0 @@
-/*-
- * Copyright (c) 1999 Global Technology Associates, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <stddef.h>
-
-#include "kgzldr.h"
-
-#define MEMSIZ 0x8000 /* Memory pool size */
-
-int kgz_con; /* Console control */
-
-static size_t memtot; /* Memory allocated: bytes */
-static u_int memcnt; /* Memory allocated: blocks */
-
-/*
- * Library functions required by inflate().
- */
-
-/*
- * Allocate memory block.
- */
-unsigned char *
-kzipmalloc(int size)
-{
- static u_char mem[MEMSIZ];
- void *ptr;
-
- if (memtot + size > MEMSIZ)
- return NULL;
- ptr = mem + memtot;
- memtot += size;
- memcnt++;
- return ptr;
-}
-
-/*
- * Free allocated memory block.
- */
-void
-kzipfree(void *ptr)
-{
- memcnt--;
- if (!memcnt)
- memtot = 0;
-}
-
-/*
- * Write a string to the console.
- */
-void
-putstr(const char *str)
-{
- int c;
-
- while ((c = *str++)) {
- if (kgz_con & KGZ_CRT)
- crt_putchr(c);
- if (kgz_con & KGZ_SIO)
- sio_putchr(c);
- }
-}
Index: head/stand/i386/kgzldr/sio.S
===================================================================
--- head/stand/i386/kgzldr/sio.S
+++ head/stand/i386/kgzldr/sio.S
@@ -1,44 +0,0 @@
-#
-# Copyright (c) 1999 Global Technology Associates, Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
-# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
-# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# From: sio.s 1.3 1999/01/10 14:48:03 rnordier
-# $FreeBSD$
-#
-
- .globl sio_putchr
-
-# void sio_putchr(int c)
-
-sio_putchr: movw $SIO_PRT+0x5,%dx # Line status reg
- xor %ecx,%ecx # Timeout
- movb $0x40,%ch # counter
-sio_putchr.1: inb %dx,%al # Transmitter
- testb $0x20,%al # buffer empty?
- loopz sio_putchr.1 # No
- jz sio_putchr.2 # If timeout
- movb 0x4(%esp,1),%al # Get character
- subb $0x5,%dl # Transmitter hold reg
- outb %al,%dx # Write character
-sio_putchr.2: ret # To caller
Index: head/stand/i386/kgzldr/start.S
===================================================================
--- head/stand/i386/kgzldr/start.S
+++ head/stand/i386/kgzldr/start.S
@@ -1,45 +0,0 @@
-#
-# Copyright (c) 1999 Global Technology Associates, Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
-# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
-# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# $FreeBSD$
-#
-
- .set entry,0x10 # kgz.entry
-
- .globl _start
-
-# C startup code for kgzldr.
-
-_start: cld # String ops inc
- movl $_edata,%edi # Start of bss
- movl $_end,%ecx # Compute
- subl %edi,%ecx # size
- xorl %eax,%eax # Zero
- rep # Clear
- stosb # bss
- pushl 0x4(%esp) # Pass howto flags
- call boot # Call C code
- popl %ecx # Clear stack
- jmp *kgz+entry # To loaded code
Index: head/targets/pseudo/userland/Makefile.depend
===================================================================
--- head/targets/pseudo/userland/Makefile.depend
+++ head/targets/pseudo/userland/Makefile.depend
@@ -827,7 +827,6 @@
usr.sbin/hyperv/tools/kvp \
usr.sbin/hyperv/tools/vss \
usr.sbin/kgmon \
- usr.sbin/kgzip \
usr.sbin/lptcontrol \
usr.sbin/mptable \
usr.sbin/ndiscvt \
Index: head/targets/pseudo/userland/misc/Makefile.depend
===================================================================
--- head/targets/pseudo/userland/misc/Makefile.depend
+++ head/targets/pseudo/userland/misc/Makefile.depend
@@ -83,7 +83,7 @@
DIRDEPS.arm= ${_sys_boot_fdt} ${_sys_boot_efi}
DIRDEPS.arm64= ${_sys_boot_fdt} ${_sys_boot_efi}
-DIRDEPS.i386= ${DIRDEPS.x86sys} ${_sys_boot_efi} stand/i386/kgzldr
+DIRDEPS.i386= ${DIRDEPS.x86sys} ${_sys_boot_efi}
DIRDEPS.powerpc= ${_sys_boot_fdt} stand/libsa32 stand/ofw stand/uboot
DIRDEPS.sparc64= stand/ofw ${_sys_boot_zfs}
.endif
Index: head/usr.sbin/Makefile.amd64
===================================================================
--- head/usr.sbin/Makefile.amd64
+++ head/usr.sbin/Makefile.amd64
@@ -1,6 +1,5 @@
# $FreeBSD$
-# kgzip: builds, but missing support files
# mptable: broken (not 64 bit clean)
# pnpinfo: crashes (not really useful anyway)
.if ${MK_ACPI} != "no"
Index: head/usr.sbin/Makefile.i386
===================================================================
--- head/usr.sbin/Makefile.i386
+++ head/usr.sbin/Makefile.i386
@@ -16,7 +16,6 @@
SUBDIR+= hyperv
.endif
SUBDIR+= kgmon
-SUBDIR+= kgzip
SUBDIR+= lptcontrol
SUBDIR+= mptable
.if ${MK_NDIS} != "no"
Index: head/usr.sbin/kgzip/Makefile
===================================================================
--- head/usr.sbin/kgzip/Makefile
+++ head/usr.sbin/kgzip/Makefile
@@ -1,9 +0,0 @@
-# $FreeBSD$
-
-PROG= kgzip
-MAN= kgzip.8
-SRCS= kgzip.c aouthdr.c elfhdr.c kgzcmp.c kgzld.c xio.c
-
-WARNS?= 3
-
-.include <bsd.prog.mk>
Index: head/usr.sbin/kgzip/Makefile.depend
===================================================================
--- head/usr.sbin/kgzip/Makefile.depend
+++ head/usr.sbin/kgzip/Makefile.depend
@@ -1,15 +0,0 @@
-# $FreeBSD$
-# Autogenerated - do NOT edit!
-
-DIRDEPS = \
- include \
- include/xlocale \
- lib/${CSU_DIR} \
- lib/libc \
-
-
-.include <dirdeps.mk>
-
-.if ${DEP_RELDIR} == ${_DEP_RELDIR}
-# local dependencies - needed for -jN in clean tree
-.endif
Index: head/usr.sbin/kgzip/aouthdr.h
===================================================================
--- head/usr.sbin/kgzip/aouthdr.h
+++ head/usr.sbin/kgzip/aouthdr.h
@@ -1,61 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 2000 Robert Nordier
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
- * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#include <a.out.h>
-#include "kgz.h"
-
-/* Relocatable header: part 0 */
-struct kgz_aouthdr0 {
- struct exec a;
-};
-
-/* Symbol table entries */
-#define KGZ__STNUM 2
-
-/* Symbol table strings */
-#define KGZ__STR_KGZ "_kgz"
-#define KGZ__STR_KGZ_NDATA "_kgz_ndata"
-
-/* String table */
-struct kgz__strtab {
- unsigned long length;
- char kgz[sizeof(KGZ__STR_KGZ)];
- char kgz_ndata[sizeof(KGZ__STR_KGZ_NDATA)];
-};
-
-/* Relocatable header: part 1 */
-struct kgz_aouthdr1 {
- struct nlist st[KGZ__STNUM];
- struct kgz__strtab strtab;
-};
-
-extern const struct kgz_aouthdr0 aouthdr0;
-extern const struct kgz_aouthdr1 aouthdr1;
Index: head/usr.sbin/kgzip/aouthdr.c
===================================================================
--- head/usr.sbin/kgzip/aouthdr.c
+++ head/usr.sbin/kgzip/aouthdr.c
@@ -1,81 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 2000 Robert Nordier
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
- * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#include <stddef.h>
-#include "aouthdr.h"
-
-#define KGZ_FIX_NSIZE 0 /* Run-time fixup */
-
-const struct kgz_aouthdr0 aouthdr0 = {
- /* a.out header */
- {
- MID_I386 << 020 | OMAGIC, /* a_midmag */
- 0, /* a_text */
- sizeof(struct kgz_hdr) + KGZ_FIX_NSIZE, /* a_data */
- 0, /* a_bss */
- sizeof(struct nlist) * KGZ__STNUM, /* a_syms */
- 0, /* a_entry */
- 0, /* a_trsize */
- 0 /* a_drsize */
- }
-};
-
-const struct kgz_aouthdr1 aouthdr1 = {
- /* Symbol table */
- {
- {
- {
- (char *)offsetof(struct kgz__strtab,
- kgz) /* n_un */
- },
- N_DATA | N_EXT, /* n_type */
- AUX_OBJECT, /* n_other */
- 0, /* n_desc */
- 0 /* n_value */
- },
- {
- {
- (char *)offsetof(struct kgz__strtab,
- kgz_ndata) /* n_un */
- },
- N_DATA | N_EXT, /* n_type */
- AUX_OBJECT, /* n_other */
- 0, /* n_desc */
- sizeof(struct kgz_hdr) /* n_value */
- }
- },
- /* String table */
- {
- sizeof(struct kgz__strtab), /* length */
- KGZ__STR_KGZ, /* kgz */
- KGZ__STR_KGZ_NDATA /* kgz_ndata */
- }
-};
Index: head/usr.sbin/kgzip/elfhdr.h
===================================================================
--- head/usr.sbin/kgzip/elfhdr.h
+++ head/usr.sbin/kgzip/elfhdr.h
@@ -1,86 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 1999 Global Technology Associates, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#include <sys/types.h>
-#define __ELF_WORD_SIZE 32
-#include <sys/elf32.h>
-#include <sys/elf_generic.h>
-#include "kgz.h"
-
-/* Section header indices */
-#define KGZ_SH_SYMTAB 1
-#define KGZ_SH_SHSTRTAB 2
-#define KGZ_SH_STRTAB 3
-#define KGZ_SH_DATA 4
-#define KGZ_SHNUM 5
-
-/* Section header strings */
-#define KGZ_SHSTR_ZERO ""
-#define KGZ_SHSTR_SYMTAB ".symtab"
-#define KGZ_SHSTR_SHSTRTAB ".shstrtab"
-#define KGZ_SHSTR_STRTAB ".strtab"
-#define KGZ_SHSTR_DATA ".data"
-
-/* Section header string table */
-struct kgz_shstrtab {
- char zero[sizeof(KGZ_SHSTR_ZERO)];
- char symtab[sizeof(KGZ_SHSTR_SYMTAB)];
- char shstrtab[sizeof(KGZ_SHSTR_SHSTRTAB)];
- char strtab[sizeof(KGZ_SHSTR_STRTAB)];
- char data[sizeof(KGZ_SHSTR_DATA)];
-};
-
-/* Symbol table indices */
-#define KGZ_ST_KGZ 1
-#define KGZ_ST_KGZ_NDATA 2
-#define KGZ_STNUM 3
-
-/* Symbol table strings */
-#define KGZ_STR_ZERO ""
-#define KGZ_STR_KGZ "kgz"
-#define KGZ_STR_KGZ_NDATA "kgz_ndata"
-
-/* String table */
-struct kgz_strtab {
- char zero[sizeof(KGZ_STR_ZERO)];
- char kgz[sizeof(KGZ_STR_KGZ)];
- char kgz_ndata[sizeof(KGZ_STR_KGZ_NDATA)];
-};
-
-/* Relocatable header format */
-struct kgz_elfhdr {
- Elf32_Ehdr e;
- Elf32_Shdr sh[KGZ_SHNUM];
- Elf32_Sym st[KGZ_STNUM];
- struct kgz_shstrtab shstrtab;
- struct kgz_strtab strtab;
-};
-
-extern const struct kgz_elfhdr elfhdr;
Index: head/usr.sbin/kgzip/elfhdr.c
===================================================================
--- head/usr.sbin/kgzip/elfhdr.c
+++ head/usr.sbin/kgzip/elfhdr.c
@@ -1,166 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 1999 Global Technology Associates, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#include <sys/endian.h>
-#include <stddef.h>
-#include "elfhdr.h"
-
-#define KGZ_FIX_NSIZE 0 /* Run-time fixup */
-
-/*
- * Relocatable header template.
- */
-const struct kgz_elfhdr elfhdr = {
- /* ELF header */
- {
- {
- ELFMAG0, ELFMAG1, ELFMAG2, ELFMAG3, /* e_ident */
- ELFCLASS32, ELFDATA2LSB, EV_CURRENT, 0,
- 'F', 'r', 'e', 'e', 'B', 'S', 'D', 0
- },
- htole16(ET_EXEC), /* e_type */
- htole16(EM_386), /* e_machine */
- htole32(EV_CURRENT), /* e_version */
- 0, /* e_entry */
- 0, /* e_phoff */
- htole32(offsetof(struct kgz_elfhdr, sh)), /* e_shoff */
- 0, /* e_flags */
- htole16(sizeof(Elf32_Ehdr)), /* e_ehsize */
- 0, /* e_phentsize */
- 0, /* e_phnum */
- htole16(sizeof(Elf32_Shdr)), /* e_shentsize */
- htole16(KGZ_SHNUM), /* e_shnum */
- htole16(KGZ_SH_SHSTRTAB) /* e_shstrndx */
- },
- /* Section header */
- {
- {
- 0, /* sh_name */
- htole32(SHT_NULL), /* sh_type */
- 0, /* sh_flags */
- 0, /* sh_addr */
- 0, /* sh_offset */
- 0, /* sh_size */
- htole32(SHN_UNDEF), /* sh_link */
- 0, /* sh_info */
- 0, /* sh_addralign */
- 0 /* sh_entsize */
- },
- {
- htole32(offsetof(struct kgz_shstrtab, symtab)), /* sh_name */
- htole32(SHT_SYMTAB), /* sh_type */
- 0, /* sh_flags */
- 0, /* sh_addr */
- htole32(offsetof(struct kgz_elfhdr, st)), /* sh_offset */
- htole32(sizeof(Elf32_Sym) * KGZ_STNUM), /* sh_size */
- htole32(KGZ_SH_STRTAB), /* sh_link */
- htole32(1), /* sh_info */
- htole32(4), /* sh_addralign */
- htole32(sizeof(Elf32_Sym)) /* sh_entsize */
- },
- {
- htole32(offsetof(struct kgz_shstrtab, shstrtab)), /* sh_name */
- htole32(SHT_STRTAB), /* sh_type */
- 0, /* sh_flags */
- 0, /* sh_addr */
- htole32(offsetof(struct kgz_elfhdr, shstrtab)), /* sh_offset */
- htole32(sizeof(struct kgz_shstrtab)), /* sh_size */
- htole32(SHN_UNDEF), /* sh_link */
- 0, /* sh_info */
- htole32(1), /* sh_addralign */
- 0 /* sh_entsize */
- },
- {
- htole32(offsetof(struct kgz_shstrtab, strtab)), /* sh_name */
- htole32(SHT_STRTAB), /* sh_type */
- 0, /* sh_flags */
- 0, /* sh_addr */
- htole32(offsetof(struct kgz_elfhdr, strtab)), /* sh_offset */
- htole32(sizeof(struct kgz_strtab)), /* sh_size */
- htole32(SHN_UNDEF), /* sh_link */
- 0, /* sh_info */
- htole32(1), /* sh_addralign */
- 0 /* sh_entsize */
- },
- {
- htole32(offsetof(struct kgz_shstrtab, data)), /* sh_name */
- htole32(SHT_PROGBITS), /* sh_type */
- htole32(SHF_ALLOC | SHF_WRITE), /* sh_flags */
- 0, /* sh_addr */
- htole32(sizeof(struct kgz_elfhdr)), /* sh_offset */
- htole32(sizeof(struct kgz_hdr) + KGZ_FIX_NSIZE), /* sh_size */
- htole32(SHN_UNDEF), /* sh_link */
- 0, /* sh_info */
- htole32(4), /* sh_addralign */
- 0 /* sh_entsize */
- }
- },
- /* Symbol table */
- {
- {
- 0, /* st_name */
- 0, /* st_value */
- 0, /* st_size */
- 0, /* st_info */
- 0, /* st_other */
- htole16(SHN_UNDEF) /* st_shndx */
- },
- {
- htole32(offsetof(struct kgz_strtab, kgz)), /* st_name */
- 0, /* st_value */
- htole32(sizeof(struct kgz_hdr)), /* st_size */
- ELF32_ST_INFO(STB_GLOBAL, STT_OBJECT), /* st_info */
- 0, /* st_other */
- htole16(KGZ_SH_DATA) /* st_shndx */
- },
- {
- htole32(offsetof(struct kgz_strtab, kgz_ndata)), /* st_name */
- htole32(sizeof(struct kgz_hdr)), /* st_value */
- htole32(KGZ_FIX_NSIZE), /* st_size */
- ELF32_ST_INFO(STB_GLOBAL, STT_OBJECT), /* st_info */
- 0, /* st_other */
- htole16(KGZ_SH_DATA) /* st_shndx */
- }
- },
- /* Section header string table */
- {
- KGZ_SHSTR_ZERO, /* zero */
- KGZ_SHSTR_SYMTAB, /* symtab */
- KGZ_SHSTR_SHSTRTAB, /* shstrtab */
- KGZ_SHSTR_STRTAB, /* strtab */
- KGZ_SHSTR_DATA /* data */
- },
- /* String table */
- {
- KGZ_STR_ZERO, /* zero */
- KGZ_STR_KGZ, /* kgz */
- KGZ_STR_KGZ_NDATA /* kgz_ndata */
- }
-};
Index: head/usr.sbin/kgzip/kgz.h
===================================================================
--- head/usr.sbin/kgzip/kgz.h
+++ head/usr.sbin/kgzip/kgz.h
@@ -1,59 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 1999 Global Technology Associates, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#ifndef _KGZ_H_
-#define _KGZ_H_
-
-#include <sys/types.h>
-
-/*
- * KGZ definitions: kgzip(8) output.
- */
-
-/* Values for ident[]. */
-#define KGZ_ID0 'K'
-#define KGZ_ID1 'G'
-#define KGZ_ID2 'Z'
-#define KGZ_ID3 '\0'
-
-/* KGZ header. */
-struct kgz_hdr {
- char ident[4]; /* identification */
- uint32_t dload; /* decoded image load address */
- uint32_t dsize; /* decoded image size */
- uint32_t isize; /* image size in memory */
- uint32_t entry; /* program entry point */
- uint32_t nsize; /* encoded image size */
-};
-
-extern struct kgz_hdr kgz; /* header */
-extern uint8_t kgz_ndata[]; /* encoded image */
-
-#endif /* !_KGZ_H_ */
Index: head/usr.sbin/kgzip/kgzcmp.c
===================================================================
--- head/usr.sbin/kgzip/kgzcmp.c
+++ head/usr.sbin/kgzip/kgzcmp.c
@@ -1,239 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 1999 Global Technology Associates, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#define _KERNEL
-#include <sys/param.h>
-#undef _KERNEL
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-
-#include <err.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include <a.out.h>
-
-#include "aouthdr.h"
-#include "elfhdr.h"
-#include "kgzip.h"
-
-static void mk_data(const struct iodesc *i, const struct iodesc *,
- struct kgz_hdr *, size_t);
-static int ld_elf(const struct iodesc *, const struct iodesc *,
- struct kgz_hdr *, const Elf32_Ehdr *);
-static int ld_aout(const struct iodesc *, const struct iodesc *,
- struct kgz_hdr *, const struct exec *);
-
-/*
- * Compress executable and output it in relocatable object format.
- */
-void
-kgzcmp(struct kgz_hdr *kh, const char *f1, const char *f2)
-{
- struct iodesc idi, ido;
- struct kgz_hdr khle;
-
- if ((idi.fd = open(idi.fname = f1, O_RDONLY)) == -1)
- err(1, "%s", idi.fname);
- if ((ido.fd = open(ido.fname = f2, O_CREAT | O_TRUNC | O_WRONLY,
- 0666)) == -1)
- err(1, "%s", ido.fname);
- kh->ident[0] = KGZ_ID0;
- kh->ident[1] = KGZ_ID1;
- kh->ident[2] = KGZ_ID2;
- kh->ident[3] = KGZ_ID3;
- mk_data(&idi, &ido, kh,
- (format == F_AOUT ? sizeof(struct kgz_aouthdr0) :
- sizeof(struct kgz_elfhdr)) +
- sizeof(struct kgz_hdr));
- kh->dload &= 0xffffff;
- kh->entry &= 0xffffff;
- if (format == F_AOUT) {
- struct kgz_aouthdr0 ahdr0 = aouthdr0;
- struct kgz_aouthdr1 ahdr1 = aouthdr1;
- unsigned x = (sizeof(struct kgz_hdr) + kh->nsize) & (16 - 1);
- if (x) {
- x = 16 - x;
- xzero(&ido, x);
- }
- xwrite(&ido, &ahdr1, sizeof(ahdr1));
- ahdr0.a.a_data += kh->nsize + x;
- xseek(&ido, 0);
- xwrite(&ido, &ahdr0, sizeof(ahdr0));
- } else {
- struct kgz_elfhdr ehdr = elfhdr;
- ehdr.st[KGZ_ST_KGZ_NDATA].st_size = htole32(kh->nsize);
- ehdr.sh[KGZ_SH_DATA].sh_size =
- htole32(le32toh(ehdr.sh[KGZ_SH_DATA].sh_size) + kh->nsize);
- xseek(&ido, 0);
- xwrite(&ido, &ehdr, sizeof(ehdr));
- }
- khle = *kh;
- khle.dload = htole32(khle.dload);
- khle.dsize = htole32(khle.dsize);
- khle.isize = htole32(khle.isize);
- khle.entry = htole32(khle.entry);
- khle.nsize = htole32(khle.nsize);
- xwrite(&ido, &khle, sizeof(khle));
- xclose(&ido);
- xclose(&idi);
-}
-
-/*
- * Make encoded (compressed) data.
- */
-static void
-mk_data(const struct iodesc * idi, const struct iodesc * ido,
- struct kgz_hdr * kh, size_t off)
-{
- union {
- struct exec ex;
- Elf32_Ehdr ee;
- } hdr;
- struct stat sb;
- struct iodesc idp;
- int fd[2];
- pid_t pid;
- size_t n;
- int fmt, status, e;
-
- n = xread(idi, &hdr, sizeof(hdr), 0);
- fmt = 0;
- if (n >= sizeof(hdr.ee) && IS_ELF(hdr.ee))
- fmt = F_ELF;
- else if (n >= sizeof(hdr.ex) && N_GETMAGIC(hdr.ex) == ZMAGIC)
- fmt = F_AOUT;
- if (!fmt)
- errx(1, "%s: Format not supported", idi->fname);
- xseek(ido, off);
- if (pipe(fd))
- err(1, NULL);
- switch (pid = fork()) {
- case -1:
- err(1, NULL);
- case 0:
- close(fd[1]);
- dup2(fd[0], STDIN_FILENO);
- close(fd[0]);
- close(idi->fd);
- dup2(ido->fd, STDOUT_FILENO);
- close(ido->fd);
- execlp("gzip", "gzip", "-9n", (char *)NULL);
- warn(NULL);
- _exit(1);
- default:
- close(fd[0]);
- idp.fname = "(pipe)";
- idp.fd = fd[1];
- e = fmt == F_ELF ? ld_elf(idi, &idp, kh, &hdr.ee) :
- fmt == F_AOUT ? ld_aout(idi, &idp, kh, &hdr.ex) : -1;
- close(fd[1]);
- if ((pid = waitpid(pid, &status, 0)) == -1)
- err(1, NULL);
- if (WIFSIGNALED(status) || WEXITSTATUS(status))
- exit(1);
- }
- if (e)
- errx(1, "%s: Invalid format", idi->fname);
- if (fstat(ido->fd, &sb))
- err(1, "%s", ido->fname);
- kh->nsize = sb.st_size - off;
-}
-
-/*
- * "Load" an ELF-format executable.
- */
-static int
-ld_elf(const struct iodesc * idi, const struct iodesc * ido,
- struct kgz_hdr * kh, const Elf32_Ehdr * e)
-{
- Elf32_Phdr p;
- size_t load, addr, n;
- unsigned x, i;
-
- load = addr = n = 0;
- for (x = i = 0; i < e->e_phnum; i++) {
- if (xread(idi, &p, sizeof(p),
- e->e_phoff + i * e->e_phentsize) != e->e_phentsize)
- return -1;
- if (p.p_type != PT_LOAD)
- continue;
- if (!x)
- load = addr = p.p_vaddr;
- else {
- if (p.p_vaddr < addr)
- return -1;
- n = p.p_vaddr - addr;
- if (n) {
- xzero(ido, n);
- addr += n;
- }
- }
- if (p.p_memsz < p.p_filesz)
- return -1;
- n = p.p_memsz - p.p_filesz;
- xcopy(idi, ido, p.p_filesz, p.p_offset);
- addr += p.p_filesz;
- x++;
- }
- if (!x)
- return -1;
- kh->dload = load;
- kh->dsize = addr - load;
- kh->isize = kh->dsize + n;
- kh->entry = e->e_entry;
- return 0;
-}
-
-/*
- * "Load" an a.out-format executable.
- */
-static int
-ld_aout(const struct iodesc * idi, const struct iodesc * ido,
- struct kgz_hdr * kh, const struct exec * a)
-{
- size_t load, addr;
-
- load = addr = N_TXTADDR(*a);
- xcopy(idi, ido, le32toh(a->a_text), N_TXTOFF(*a));
- addr += le32toh(a->a_text);
- if (N_DATADDR(*a) != addr)
- return -1;
- xcopy(idi, ido, le32toh(a->a_data), N_DATOFF(*a));
- addr += le32toh(a->a_data);
- kh->dload = load;
- kh->dsize = addr - load;
- kh->isize = kh->dsize + le32toh(a->a_bss);
- kh->entry = le32toh(a->a_entry);
- return 0;
-}
Index: head/usr.sbin/kgzip/kgzip.h
===================================================================
--- head/usr.sbin/kgzip/kgzip.h
+++ head/usr.sbin/kgzip/kgzip.h
@@ -1,53 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 1999 Global Technology Associates, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#include "kgz.h"
-
-#define F_AOUT 1 /* Format: a.out */
-#define F_ELF 2 /* Format: ELF32 */
-
-/* Used by I/O routines */
-struct iodesc {
- const char *fname; /* File name */
- int fd; /* File descriptor */
-};
-
-extern const char *loader; /* Default loader */
-extern int format; /* Output format */
-
-void kgzcmp(struct kgz_hdr *, const char *, const char *);
-void kgzld(struct kgz_hdr *, const char *, const char *);
-
-void xclose(const struct iodesc *);
-void xcopy(const struct iodesc *, const struct iodesc *, size_t, off_t);
-void xzero(const struct iodesc *, size_t);
-size_t xread(const struct iodesc *, void *, size_t, off_t);
-void xwrite(const struct iodesc *, const void *, size_t);
-void xseek(const struct iodesc *, off_t);
Index: head/usr.sbin/kgzip/kgzip.8
===================================================================
--- head/usr.sbin/kgzip/kgzip.8
+++ head/usr.sbin/kgzip/kgzip.8
@@ -1,156 +0,0 @@
-.\" Copyright (c) 1999 Global Technology Associates, Inc.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
-.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
-.\" OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-.\" OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-.\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-.\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-.\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd August 2, 2016
-.Dt KGZIP 8
-.Os
-.Sh NAME
-.Nm kgzip
-.Nd compress a kernel
-.Sh SYNOPSIS
-.Nm
-.Op Fl cv
-.Op Fl f Ar format
-.Op Fl l Ar loader
-.Op Fl o Ar output
-.Ar file
-.Sh DESCRIPTION
-.Bf -symbolic
-This utility is deprecated.
-Users are advised to use
-.Xr loader 8
-and compress the kernel with
-.Xr gzip 1 .
-.Ef
-.Pp
-The
-.Nm
-utility compresses a kernel or some other bootable binary.
-Operation
-is in two phases as follows:
-.Bl -enum
-.It
-A load image of the executable file is built which omits all but
-the
-.Sq text
-and
-.Sq data
-segments.
-This image is compressed using
-.Xr gzip 1
-and output as data in relocatable object format.
-.It
-The object file is linked with a special self-hosting loader, producing
-an executable suitable for booting with either the second- or
-third-level bootstraps.
-.El
-.Pp
-Supported object formats are 32-bit ELF and a.out ZMAGIC.
-.Pp
-If the
-.Ar file
-operand has a
-.Sq .o
-suffix, input is assumed to be for the link phase, and the first phase
-is omitted.
-.Pp
-The options are:
-.Bl -tag -width Fl
-.It Fl c
-Omit the link phase.
-.It Fl v
-Display object file information.
-.It Fl f Ar format
-Use
-.Ar format
-as the output format, where
-.Ar format
-is
-.Sq aout
-or
-.Sq elf .
-The default format is ELF.
-.It Fl l Ar loader
-Link
-.Ar loader
-as the loader.
-.It Fl o Ar output
-Name the output file
-.Ar output .
-The default is to use the input name with the suffix
-.Sq .o
-(for relocatables) or
-.Sq .kgz
-(for executables).
-.El
-.Sh NOTES
-Global variables equivalent to the following are defined in the output:
-.Bd -literal
-struct kgz_hdr {
- char ident[4]; /* identification: "KGZ" */
- uint32_t dload; /* decoded image load address */
- uint32_t dsize; /* decoded image size */
- uint32_t isize; /* image size in memory */
- uint32_t entry; /* entry point */
- uint32_t nsize; /* encoded image size */
-} kgz;
-
-uint8_t kgz_ndata[]; /* encoded data */
-.Ed
-.Pp
-The encoded data is simply
-.Xr gzip 1
-output: a header (with no optional fields); compressed data; and 32-bit
-CRC and size values.
-.Sh FILES
-.Bl -tag -width /usr/lib/kgzldr.o -compact
-.It Pa /usr/lib/kgzldr.o
-The default loader
-.El
-.Sh EXIT STATUS
-.Ex -std
-.Sh SEE ALSO
-.Xr gzip 1 ,
-.Xr ld 1 ,
-.Xr a.out 5 ,
-.Xr elf 5 ,
-.Xr boot 8 ,
-.Xr loader 8
-.Sh AUTHORS
-.An Robert Nordier Aq Mt rnordier@FreeBSD.org
-.Sh BUGS
-As symbols are lost, the usefulness of this utility for compressing
-kernels is limited to situations where
-.Xr loader 8
-cannot be used.
-.Pp
-.Pa kgzldr.o
-is only available for the i386 architecture.
-.Pp
-The preferred method of compressing a kernel
-is simply to
-.Xr gzip 1
-it.
Index: head/usr.sbin/kgzip/kgzip.c
===================================================================
--- head/usr.sbin/kgzip/kgzip.c
+++ head/usr.sbin/kgzip/kgzip.c
@@ -1,178 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 1999 Global Technology Associates, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef lint
-static const char rcsid[] =
- "$FreeBSD$";
-#endif /* not lint */
-
-#include <sys/types.h>
-#include <err.h>
-#include <paths.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "kgzip.h"
-
-#define FN_SRC 0 /* Filename: source */
-#define FN_OBJ 1 /* Filename: relocatable */
-#define FN_KGZ 2 /* Filename: executable */
-#define FN_CNT 3 /* Number of filenames */
-
-#define SFX_OBJ ".o" /* Filename suffix: relocatable */
-#define SFX_KGZ ".kgz" /* Filename suffix: executable */
-#define SFX_MAX 5 /* Size of larger filename suffix */
-
-const char *loader = "/usr/lib/kgzldr.o"; /* Default loader */
-int format; /* Output format */
-
-char *tname; /* Name of temporary file */
-
-static void cleanup(void);
-static void mk_fn(int, const char *, const char *, char *[]);
-static void usage(void);
-
-/*
- * Compress a kernel.
- */
-int
-main(int argc, char *argv[])
-{
- static char *fn[FN_CNT];
- struct kgz_hdr kh;
- const char *output;
- char *tmpdir;
- int cflag, vflag, c;
-
- tmpdir = getenv("TMPDIR");
- if (asprintf(&tname, "%s/kgzXXXXXXXXXX",
- tmpdir == NULL ? _PATH_TMP : tmpdir) == -1)
- errx(1, "Out of memory");
- output = NULL;
- cflag = vflag = 0;
- while ((c = getopt(argc, argv, "cvf:l:o:")) != -1)
- switch (c) {
- case 'c':
- cflag = 1;
- break;
- case 'v':
- vflag = 1;
- break;
- case 'f':
- if (!strcmp(optarg, "aout"))
- format = F_AOUT;
- else if (!strcmp(optarg, "elf"))
- format = F_ELF;
- else
- errx(1, "%s: Unknown format", optarg);
- break;
- case 'l':
- loader = optarg;
- break;
- case 'o':
- output = optarg;
- break;
- default:
- usage();
- }
- argc -= optind;
- argv += optind;
- if (argc != 1)
- usage();
- atexit(cleanup);
- mk_fn(cflag, *argv, output, fn);
- memset(&kh, 0, sizeof(kh));
- if (fn[FN_SRC]) {
- if (!format)
- format = F_ELF;
- kgzcmp(&kh, fn[FN_SRC], fn[FN_OBJ]);
- }
- if (!cflag)
- kgzld(&kh, fn[FN_OBJ], fn[FN_KGZ]);
- if (vflag)
- printf("dload=%#x dsize=%#x isize=%#x entry=%#x nsize=%#x\n",
- kh.dload, kh.dsize, kh.isize, kh.entry, kh.nsize);
- return 0;
-}
-
-/*
- * Clean up after processing.
- */
-static void
-cleanup(void)
-{
- if (tname)
- unlink(tname);
-}
-
-/*
- * Make the required filenames.
- */
-static void
-mk_fn(int cflag, const char *f1, const char *f2, char *fn[])
-{
- const char *p, *s;
- size_t n;
- int i, fd;
-
- i = 0;
- s = strrchr(f1, 0);
- n = sizeof(SFX_OBJ) - 1;
- if ((size_t)(s - f1) > n && !memcmp(s - n, SFX_OBJ, n)) {
- s -= n;
- i++;
- }
- fn[i++] = (char *)f1;
- if (i == FN_OBJ && !cflag) {
- if ((fd = mkstemp(tname)) == -1)
- err(1, NULL);
- close(fd);
- fn[i++] = tname;
- }
- if (!(fn[i] = (char *)f2)) {
- p = (p = strrchr(f1, '/')) ? p + 1 : f1;
- n = (size_t)(s - p);
- if (!(fn[i] = malloc(n + SFX_MAX)))
- err(1, NULL);
- memcpy(fn[i], p, n);
- strcpy(fn[i] + n, i == FN_OBJ ? SFX_OBJ : SFX_KGZ);
- }
-}
-
-/*
- * Display usage information.
- */
-static void
-usage(void)
-{
- fprintf(stderr,
- "usage: kgzip [-cv] [-f format] [-l loader] [-o output] file\n");
- exit(1);
-}
Index: head/usr.sbin/kgzip/kgzld.c
===================================================================
--- head/usr.sbin/kgzip/kgzld.c
+++ head/usr.sbin/kgzip/kgzld.c
@@ -1,103 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 1999 Global Technology Associates, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#include <sys/types.h>
-#include <sys/endian.h>
-#include <sys/wait.h>
-
-#include <err.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "aouthdr.h"
-#include "elfhdr.h"
-#include "kgzip.h"
-
-#define align(x, y) (((x) + (y) - 1) & ~((y) - 1))
-
-/*
- * Link KGZ file and loader.
- */
-void
-kgzld(struct kgz_hdr * kh, const char *f1, const char *f2)
-{
- char addr[16];
- struct iodesc idi;
- pid_t pid;
- size_t n;
- int status;
-
- if (strcmp(kh->ident, "KGZ")) {
- if ((idi.fd = open(idi.fname = f1, O_RDONLY)) == -1)
- err(1, "%s", idi.fname);
- if (!format) {
- union {
- struct exec ex;
- Elf32_Ehdr ee;
- } hdr;
- n = xread(&idi, &hdr, sizeof(hdr), 0);
- if (n >= sizeof(hdr.ee) && IS_ELF(hdr.ee))
- format = F_ELF;
- else if (n >= sizeof(hdr.ex) &&
- N_GETMAGIC(hdr.ex) == OMAGIC)
- format = F_AOUT;
- if (!format)
- errx(1, "%s: Format not supported", idi.fname);
- }
- n = xread(&idi, kh, sizeof(*kh),
- format == F_AOUT ? sizeof(struct kgz_aouthdr0)
- : sizeof(struct kgz_elfhdr));
- xclose(&idi);
- if (n != sizeof(*kh) || strcmp(kh->ident, "KGZ"))
- errx(1, "%s: Invalid format", idi.fname);
- }
- sprintf(addr, "%#x", align(kh->dload + kh->dsize, 0x1000));
- switch (pid = fork()) {
- case -1:
- err(1, NULL);
- case 0:
- if (format == F_AOUT)
- execlp("ld", "ld", "-aout", "-Z", "-T", addr, "-o", f2,
- loader, f1, (char *)NULL);
- else
- execlp("ld", "ld", "-Ttext", addr, "-o", f2, loader, f1,
- (char *)NULL);
- warn(NULL);
- _exit(1);
- default:
- if ((pid = waitpid(pid, &status, 0)) == -1)
- err(1, NULL);
- if (WIFSIGNALED(status) || WEXITSTATUS(status))
- exit(1);
- }
-}
Index: head/usr.sbin/kgzip/xio.c
===================================================================
--- head/usr.sbin/kgzip/xio.c
+++ head/usr.sbin/kgzip/xio.c
@@ -1,123 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 1999 Global Technology Associates, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#include <err.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "kgzip.h"
-
-/*
- * Close a file.
- */
-void
-xclose(const struct iodesc *id)
-{
- if (close(id->fd))
- err(1, "%s", id->fname);
-}
-
-/*
- * Copy bytes from one file to another.
- */
-void
-xcopy(const struct iodesc * idi, const struct iodesc * ido,
- size_t nbyte, off_t offset)
-{
- char buf[8192];
- size_t n;
-
- while (nbyte) {
- if ((n = sizeof(buf)) > nbyte)
- n = nbyte;
- if (xread(idi, buf, n, offset) != n)
- errx(1, "%s: Short read", idi->fname);
- xwrite(ido, buf, n);
- nbyte -= n;
- offset = -1;
- }
-}
-
-/*
- * Write binary zeroes to a file.
- */
-void
-xzero(const struct iodesc * id, size_t nbyte)
-{
- char buf[8192];
- size_t n;
-
- memset(buf, 0, sizeof(buf));
- while (nbyte) {
- if ((n = sizeof(buf)) > nbyte)
- n = nbyte;
- xwrite(id, buf, n);
- nbyte -= n;
- }
-}
-
-/*
- * Read from a file.
- */
-size_t
-xread(const struct iodesc * id, void *buf, size_t nbyte, off_t offset)
-{
- ssize_t n;
-
- if (offset != -1 && lseek(id->fd, offset, SEEK_SET) != offset)
- err(1, "%s", id->fname);
- if ((n = read(id->fd, buf, nbyte)) == -1)
- err(1, "%s", id->fname);
- return (size_t)n;
-}
-
-/*
- * Write to a file.
- */
-void
-xwrite(const struct iodesc * id, const void *buf, size_t nbyte)
-{
- ssize_t n;
-
- if ((n = write(id->fd, buf, nbyte)) == -1)
- err(1, "%s", id->fname);
- if ((size_t)n != nbyte)
- errx(1, "%s: Short write", id->fname);
-}
-
-/*
- * Reposition within a file.
- */
-void
-xseek(const struct iodesc *id, off_t offset)
-{
- if (lseek(id->fd, offset, SEEK_SET) != offset)
- err(1, "%s", id->fname);
-}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Feb 4, 6:03 AM (19 h, 59 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16448869
Default Alt Text
D20248.diff (60 KB)
Attached To
Mode
D20248: Delete kgzip and kgzldr.
Attached
Detach File
Event Timeline
Log In to Comment