Date: Sat, 29 Jun 2002 13:38:51 -0400 From: Bosko Milekic <bmilekic@unixdaemons.com> To: Bosko Milekic <bmilekic@freebsd.org> Cc: Perforce Change Reviews <perforce@freebsd.org> Subject: Re: PERFORCE change 13599 for review Message-ID: <20020629133851.A12121@unixdaemons.com> In-Reply-To: <200206291733.g5THXQZu041720@freefall.freebsd.org>; from bmilekic@freebsd.org on Sat, Jun 29, 2002 at 10:33:26AM -0700 References: <200206291733.g5THXQZu041720@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
I think I almost caught exactly everything right before the first part of KSE III. :-) On Sat, Jun 29, 2002 at 10:33:26AM -0700, Bosko Milekic wrote: > http://people.freebsd.org/~peter/p4db/chv.cgi?CH=13599 > > Change 13599 by bmilekic@bmilekic_angela on 2002/06/29 10:32:45 > > Final IFC before KSEIII (just saw julian's Email about > commit about to go in). > > Affected files ... > > .. //depot/projects/interrupt/sys/alpha/include/kse.h#1 branch > .. //depot/projects/interrupt/sys/boot/alpha/boot1/boot1.c#3 integrate > .. //depot/projects/interrupt/sys/boot/alpha/libalpha/common.h#2 integrate > .. //depot/projects/interrupt/sys/conf/files.powerpc#4 integrate > .. //depot/projects/interrupt/sys/ddb/db_elf.c#2 integrate > .. //depot/projects/interrupt/sys/dev/bge/if_bge.c#5 integrate > .. //depot/projects/interrupt/sys/dev/fxp/if_fxp.c#4 integrate > .. //depot/projects/interrupt/sys/dev/lge/if_lge.c#3 integrate > .. //depot/projects/interrupt/sys/dev/nge/if_nge.c#4 integrate > .. //depot/projects/interrupt/sys/dev/sio/sio_ebus.c#2 integrate > .. //depot/projects/interrupt/sys/geom/geom_aes.c#2 integrate > .. //depot/projects/interrupt/sys/geom/geom_kern.c#3 integrate > .. //depot/projects/interrupt/sys/i386/include/kse.h#1 branch > .. //depot/projects/interrupt/sys/i386/isa/intr_machdep.h#5 integrate > .. //depot/projects/interrupt/sys/kern/kern_descrip.c#6 integrate > .. //depot/projects/interrupt/sys/kern/kern_event.c#4 integrate > .. //depot/projects/interrupt/sys/kern/kern_exec.c#7 integrate > .. //depot/projects/interrupt/sys/kern/kern_exit.c#6 integrate > .. //depot/projects/interrupt/sys/kern/kern_ktrace.c#6 integrate > .. //depot/projects/interrupt/sys/kern/kern_lockf.c#3 integrate > .. //depot/projects/interrupt/sys/kern/kern_physio.c#3 integrate > .. //depot/projects/interrupt/sys/kern/kern_prot.c#8 integrate > .. //depot/projects/interrupt/sys/kern/kern_resource.c#4 integrate > .. //depot/projects/interrupt/sys/kern/kern_sig.c#4 integrate > .. //depot/projects/interrupt/sys/kern/kern_subr.c#6 integrate > .. //depot/projects/interrupt/sys/kern/kern_synch.c#5 integrate > .. //depot/projects/interrupt/sys/kern/kern_sysctl.c#4 integrate > .. //depot/projects/interrupt/sys/kern/kern_thread.c#1 branch > .. //depot/projects/interrupt/sys/kern/kern_time.c#4 integrate > .. //depot/projects/interrupt/sys/kern/kern_xxx.c#3 integrate > .. //depot/projects/interrupt/sys/kern/subr_disklabel.c#5 integrate > .. //depot/projects/interrupt/sys/kern/subr_log.c#3 integrate > .. //depot/projects/interrupt/sys/kern/subr_mbuf.c#5 integrate > .. //depot/projects/interrupt/sys/kern/subr_prf.c#5 integrate > .. //depot/projects/interrupt/sys/kern/subr_prof.c#3 integrate > .. //depot/projects/interrupt/sys/kern/sys_pipe.c#7 integrate > .. //depot/projects/interrupt/sys/kern/sys_socket.c#5 integrate > .. //depot/projects/interrupt/sys/kern/uipc_cow.c#2 integrate > .. //depot/projects/interrupt/sys/kern/uipc_jumbo.c#2 integrate > .. //depot/projects/interrupt/sys/kern/uipc_socket.c#7 integrate > .. //depot/projects/interrupt/sys/kern/uipc_socket2.c#5 integrate > .. //depot/projects/interrupt/sys/kern/uipc_syscalls.c#7 integrate > .. //depot/projects/interrupt/sys/kern/uipc_usrreq.c#5 integrate > .. //depot/projects/interrupt/sys/kern/vfs_cache.c#6 integrate > .. //depot/projects/interrupt/sys/kern/vfs_export.c#4 integrate > .. //depot/projects/interrupt/sys/kern/vfs_subr.c#9 integrate > .. //depot/projects/interrupt/sys/kern/vfs_syscalls.c#9 integrate > .. //depot/projects/interrupt/sys/kern/vfs_vnops.c#9 integrate > .. //depot/projects/interrupt/sys/netinet/tcp_syncache.c#7 integrate > .. //depot/projects/interrupt/sys/nfsclient/nfs.h#4 integrate > .. //depot/projects/interrupt/sys/nfsclient/nfs_bio.c#4 integrate > .. //depot/projects/interrupt/sys/nfsclient/nfs_socket.c#4 integrate > .. //depot/projects/interrupt/sys/nfsclient/nfs_vnops.c#3 integrate > .. //depot/projects/interrupt/sys/pci/if_sk.c#3 integrate > .. //depot/projects/interrupt/sys/pci/if_ti.c#5 integrate > .. //depot/projects/interrupt/sys/pci/if_wb.c#3 integrate > .. //depot/projects/interrupt/sys/powerpc/include/cpufunc.h#5 integrate > .. //depot/projects/interrupt/sys/powerpc/include/critical.h#2 integrate > .. //depot/projects/interrupt/sys/powerpc/include/in_cksum.h#1 branch > .. //depot/projects/interrupt/sys/powerpc/include/pcb.h#4 integrate > .. //depot/projects/interrupt/sys/powerpc/include/pmap.h#5 integrate > .. //depot/projects/interrupt/sys/powerpc/powerpc/autoconf.c#3 integrate > .. //depot/projects/interrupt/sys/powerpc/powerpc/bcopy.c#2 integrate > .. //depot/projects/interrupt/sys/powerpc/powerpc/clock.c#4 integrate > .. //depot/projects/interrupt/sys/powerpc/powerpc/in_cksum.c#1 branch > .. //depot/projects/interrupt/sys/powerpc/powerpc/interrupt.c#1 branch > .. //depot/projects/interrupt/sys/powerpc/powerpc/locore.s#5 integrate > .. //depot/projects/interrupt/sys/powerpc/powerpc/ofw_machdep.c#4 integrate > .. //depot/projects/interrupt/sys/powerpc/powerpc/pmap.c#7 integrate > .. //depot/projects/interrupt/sys/powerpc/powerpc/swtch.s#5 integrate > .. //depot/projects/interrupt/sys/powerpc/powerpc/trap_subr.S#2 integrate > .. //depot/projects/interrupt/sys/sparc64/conf/GENERIC#6 integrate > .. //depot/projects/interrupt/sys/sparc64/include/kse.h#1 branch > .. //depot/projects/interrupt/sys/sparc64/include/profile.h#2 integrate > .. //depot/projects/interrupt/sys/sparc64/sparc64/pmap.c#8 integrate > .. //depot/projects/interrupt/sys/sys/event.h#3 integrate > .. //depot/projects/interrupt/sys/sys/file.h#5 integrate > .. //depot/projects/interrupt/sys/sys/jumbo.h#2 integrate > .. //depot/projects/interrupt/sys/sys/kse.h#3 integrate > .. //depot/projects/interrupt/sys/sys/mbuf.h#6 integrate > .. //depot/projects/interrupt/sys/sys/socketvar.h#6 integrate > .. //depot/projects/interrupt/sys/sys/vnode.h#5 integrate > > Differences ... > > ==== //depot/projects/interrupt/sys/boot/alpha/boot1/boot1.c#3 (text+ko) ==== > > @@ -1,5 +1,5 @@ > /* > - * $FreeBSD: src/sys/boot/alpha/boot1/boot1.c,v 1.11 2002/06/11 10:19:59 phk Exp $ > + * $FreeBSD: src/sys/boot/alpha/boot1/boot1.c,v 1.12 2002/06/29 02:32:32 peter Exp $ > * From $NetBSD: bootxx.c,v 1.4 1997/09/06 14:08:29 drochner Exp $ > */ > > @@ -253,7 +253,7 @@ > char *name = "/boot/loader"; > char *p; > char filename[512]; > - void (*entry) __P((void)); > + void (*entry)(void); > u_long start, freq; > int i; > > > ==== //depot/projects/interrupt/sys/boot/alpha/libalpha/common.h#2 (text+ko) ==== > > @@ -1,11 +1,11 @@ > /* > - * $FreeBSD: src/sys/boot/alpha/libalpha/common.h,v 1.2 1999/08/28 00:39:26 peter Exp $ > + * $FreeBSD: src/sys/boot/alpha/libalpha/common.h,v 1.3 2002/06/29 02:32:32 peter Exp $ > * From: $NetBSD: common.h,v 1.2 1998/01/05 07:02:48 perry Exp $ > */ > > -int prom_open __P((char*, int)); > -void OSFpal __P((void)); > -void halt __P((void)); > -u_int64_t prom_dispatch __P((int, ...)); > -int cpu_number __P((void)); > -void switch_palcode __P((void)); > +int prom_open(char*, int); > +void OSFpal(void); > +void halt(void); > +u_int64_t prom_dispatch(int, ...); > +int cpu_number(void); > +void switch_palcode(void); > > ==== //depot/projects/interrupt/sys/conf/files.powerpc#4 (text+ko) ==== > > @@ -1,7 +1,7 @@ > # This file tells config what files go into building a kernel, > # files marked standard are always included. > # > -# $FreeBSD: src/sys/conf/files.powerpc,v 1.10 2002/05/13 07:53:22 benno Exp $ > +# $FreeBSD: src/sys/conf/files.powerpc,v 1.12 2002/06/29 09:50:20 benno Exp $ > # > # The long compile-with and dependency lines are required because of > # limitations in config: backslash-newline doesn't work in strings, and > @@ -21,6 +21,8 @@ > powerpc/powerpc/extintr.c standard > powerpc/powerpc/fpu.c standard > powerpc/powerpc/fuswintr.c standard > +powerpc/powerpc/in_cksum.c optional inet > +powerpc/powerpc/interrupt.c standard > powerpc/powerpc/machdep.c standard > powerpc/powerpc/nexus.c standard > powerpc/powerpc/ofwmagic.s standard > > ==== //depot/projects/interrupt/sys/ddb/db_elf.c#2 (text+ko) ==== > > @@ -1,4 +1,4 @@ > -/* $FreeBSD: src/sys/ddb/db_elf.c,v 1.10 2002/05/07 10:59:52 bde Exp $ */ > +/* $FreeBSD: src/sys/ddb/db_elf.c,v 1.11 2002/06/29 02:32:33 peter Exp $ */ > /* $NetBSD: db_elf.c,v 1.4 1998/05/03 18:49:54 thorpej Exp $ */ > > /*- > @@ -56,7 +56,7 @@ > > #include <machine/elf.h> > > -static char *db_elf_find_strtab __P((db_symtab_t *)); > +static char *db_elf_find_strtab(db_symtab_t *); > > #define STAB_TO_SYMSTART(stab) ((Elf_Sym *)((stab)->start)) > #define STAB_TO_SYMEND(stab) ((Elf_Sym *)((stab)->end)) > > ==== //depot/projects/interrupt/sys/dev/bge/if_bge.c#5 (text+ko) ==== > > @@ -30,7 +30,7 @@ > * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF > * THE POSSIBILITY OF SUCH DAMAGE. > * > - * $FreeBSD: src/sys/dev/bge/if_bge.c,v 1.15 2002/06/24 22:28:42 mp Exp $ > + * $FreeBSD: src/sys/dev/bge/if_bge.c,v 1.16 2002/06/29 01:36:59 alfred Exp $ > */ > > /* > @@ -122,7 +122,7 @@ > > #if !defined(lint) > static const char rcsid[] = > - "$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.15 2002/06/24 22:28:42 mp Exp $"; > + "$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.16 2002/06/29 01:36:59 alfred Exp $"; > #endif > > /* > @@ -181,7 +181,7 @@ > static int bge_alloc_jumbo_mem (struct bge_softc *); > static void bge_free_jumbo_mem (struct bge_softc *); > static void *bge_jalloc (struct bge_softc *); > -static void bge_jfree (caddr_t, void *); > +static void bge_jfree (void *, void *); > static int bge_newbuf_std (struct bge_softc *, int, struct mbuf *); > static int bge_newbuf_jumbo (struct bge_softc *, int, struct mbuf *); > static int bge_init_rx_ring_std (struct bge_softc *); > @@ -663,7 +663,7 @@ > */ > static void > bge_jfree(buf, args) > - caddr_t buf; > + void *buf; > void *args; > { > struct bge_jpool_entry *entry; > > ==== //depot/projects/interrupt/sys/dev/fxp/if_fxp.c#4 (text+ko) ==== > > @@ -25,7 +25,7 @@ > * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > * SUCH DAMAGE. > * > - * $FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.130 2002/06/05 18:34:08 ambrisko Exp $ > + * $FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.131 2002/06/29 01:56:14 silby Exp $ > */ > > /* > @@ -160,6 +160,7 @@ > { 0x1037, "Intel Pro/100 Ethernet" }, > { 0x1038, "Intel Pro/100 Ethernet" }, > { 0x1039, "Intel Pro/100 Ethernet" }, > + { 0x103A, "Intel Pro/100 Ethernet" }, > { 0, NULL }, > }; > > > ==== //depot/projects/interrupt/sys/dev/lge/if_lge.c#3 (text+ko) ==== > > @@ -30,7 +30,7 @@ > * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF > * THE POSSIBILITY OF SUCH DAMAGE. > * > - * $FreeBSD: src/sys/dev/lge/if_lge.c,v 1.11 2002/04/28 20:34:20 phk Exp $ > + * $FreeBSD: src/sys/dev/lge/if_lge.c,v 1.12 2002/06/29 01:36:59 alfred Exp $ > */ > > /* > @@ -114,7 +114,7 @@ > > #ifndef lint > static const char rcsid[] = > - "$FreeBSD: src/sys/dev/lge/if_lge.c,v 1.11 2002/04/28 20:34:20 phk Exp $"; > + "$FreeBSD: src/sys/dev/lge/if_lge.c,v 1.12 2002/06/29 01:36:59 alfred Exp $"; > #endif > > /* > @@ -132,7 +132,7 @@ > static int lge_alloc_jumbo_mem (struct lge_softc *); > static void lge_free_jumbo_mem (struct lge_softc *); > static void *lge_jalloc (struct lge_softc *); > -static void lge_jfree (caddr_t, void *); > +static void lge_jfree (void *, void *); > > static int lge_newbuf (struct lge_softc *, > struct lge_rx_desc *, > @@ -917,7 +917,7 @@ > * Release a jumbo buffer. > */ > static void lge_jfree(buf, args) > - caddr_t buf; > + void *buf; > void *args; > { > struct lge_softc *sc; > > ==== //depot/projects/interrupt/sys/dev/nge/if_nge.c#4 (text+ko) ==== > > @@ -30,7 +30,7 @@ > * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF > * THE POSSIBILITY OF SUCH DAMAGE. > * > - * $FreeBSD: src/sys/dev/nge/if_nge.c,v 1.32 2002/05/04 11:15:33 phk Exp $ > + * $FreeBSD: src/sys/dev/nge/if_nge.c,v 1.33 2002/06/29 01:36:59 alfred Exp $ > */ > > /* > @@ -132,7 +132,7 @@ > > #ifndef lint > static const char rcsid[] = > - "$FreeBSD: src/sys/dev/nge/if_nge.c,v 1.32 2002/05/04 11:15:33 phk Exp $"; > + "$FreeBSD: src/sys/dev/nge/if_nge.c,v 1.33 2002/06/29 01:36:59 alfred Exp $"; > #endif > > #define NGE_CSUM_FEATURES (CSUM_IP | CSUM_TCP | CSUM_UDP) > @@ -153,7 +153,7 @@ > static int nge_alloc_jumbo_mem (struct nge_softc *); > static void nge_free_jumbo_mem (struct nge_softc *); > static void *nge_jalloc (struct nge_softc *); > -static void nge_jfree (caddr_t, void *); > +static void nge_jfree (void *, void *); > > static int nge_newbuf (struct nge_softc *, > struct nge_desc *, struct mbuf *); > @@ -1203,7 +1203,7 @@ > * Release a jumbo buffer. > */ > static void nge_jfree(buf, args) > - caddr_t buf; > + void *buf; > void *args; > { > struct nge_softc *sc; > > ==== //depot/projects/interrupt/sys/dev/sio/sio_ebus.c#2 (text+ko) ==== > > @@ -24,7 +24,7 @@ > */ > > #include <sys/cdefs.h> > -__FBSDID($FreeBSD: src/sys/dev/sio/sio_ebus.c,v 1.1 2002/06/18 01:19:31 obrien Exp $); > +__FBSDID($FreeBSD: src/sys/dev/sio/sio_ebus.c,v 1.2 2002/06/29 02:32:33 peter Exp $); > > #include <sys/param.h> > #include <sys/systm.h> > @@ -40,9 +40,9 @@ > #include <ofw/openfirm.h> > #include <sparc64/ebus/ebusvar.h> > > -int sio_ofw_inlist __P((char *name, char *list[])); > -static int sio_ebus_attach __P((device_t dev)); > -static int sio_ebus_probe __P((device_t dev)); > +int sio_ofw_inlist(char *name, char *list[]); > +static int sio_ebus_attach(device_t dev); > +static int sio_ebus_probe(device_t dev); > > static device_method_t sio_ebus_methods[] = { > /* Device interface */ > > ==== //depot/projects/interrupt/sys/geom/geom_aes.c#2 (text+ko) ==== > > @@ -32,7 +32,7 @@ > * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > * SUCH DAMAGE. > * > - * $FreeBSD: src/sys/geom/geom_aes.c,v 1.2 2002/06/09 10:57:33 phk Exp $ > + * $FreeBSD: src/sys/geom/geom_aes.c,v 1.3 2002/06/28 21:25:15 phk Exp $ > * > * This method provides AES encryption with a compiled in key (default > * all zeroes). > @@ -55,6 +55,9 @@ > #include <sys/malloc.h> > #include <sys/lock.h> > #include <sys/mutex.h> > +#include <sys/libkern.h> > +#include <sys/md5.h> > +#include <sys/endian.h> > #endif > #include <sys/errno.h> > #include <geom/geom.h> > @@ -65,26 +68,83 @@ > > #define AES_CLASS_NAME "AES" > > +#define MASTER_KEY_LENGTH (1024/8) > + > static u_char *aes_magic = "<<FreeBSD-GEOM-AES>>"; > +static u_char *aes_magic_random = "<<FreeBSD-GEOM-AES-RANDOM>>"; > +static u_char *aes_magic_test = "<<FreeBSD-GEOM-AES-TEST>>"; > > -static u_char aes_key[128 / 8] = { > - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 > -}; > > struct g_aes_softc { > + enum { > + KEY_ZERO, > + KEY_RANDOM, > + KEY_TEST > + } keying; > u_int sectorsize; > off_t mediasize; > - keyInstance ekey; > - keyInstance dkey; > cipherInstance ci; > + u_char master_key[MASTER_KEY_LENGTH]; > }; > > +/* > + * Generate a sectorkey from the masterkey and the offset position. > + * > + * For KEY_ZERO we just return a key of all zeros. > + * > + * We feed the sector byte offset, 16 bytes of the master-key and > + * the sector byte offset once more to MD5. > + * The sector byte offset is converted to little-endian format first > + * to support multi-architecture operation. > + * We use 16 bytes from the master-key starting at the logical sector > + * number modulus he length of the master-key. If need be we wrap > + * around to the start of the master-key. > + */ > + > +static void > +g_aes_makekey(struct g_aes_softc *sc, off_t off, keyInstance *ki, int dir) > +{ > + MD5_CTX cx; > + u_int64_t u64; > + u_int u, u1; > + u_char *p, buf[16]; > + > + if (sc->keying == KEY_ZERO) { > + rijndael_makeKey(ki, dir, 128, sc->master_key); > + return; > + } > + MD5Init(&cx); > + u64 = htole64(off); > + MD5Update(&cx, (u_char *)&u64, sizeof(u64)); > + u = off / sc->sectorsize; > + u %= sizeof sc->master_key; > + p = sc->master_key + u; > + if (u + 16 <= sizeof(sc->master_key)) { > + MD5Update(&cx, p, 16); > + } else { > + u1 = sizeof sc->master_key - u; > + MD5Update(&cx, p, u1); > + MD5Update(&cx, sc->master_key, 16 - u1); > + u1 = 0; /* destroy evidence */ > + } > + u = 0; /* destroy evidence */ > + MD5Update(&cx, (u_char *)&u64, sizeof(u64)); > + u64 = 0; /* destroy evidence */ > + MD5Final(buf, &cx); > + bzero(&cx, sizeof cx); /* destroy evidence */ > + rijndael_makeKey(ki, dir, 128, buf); > + bzero(buf, sizeof buf); /* destroy evidence */ > + > +} > + > static void > g_aes_read_done(struct bio *bp) > { > struct g_geom *gp; > struct g_aes_softc *sc; > u_char *p, *b, *e, *sb; > + keyInstance dkey; > + off_t o; > > gp = bp->bio_from->geom; > sc = gp->softc; > @@ -92,17 +152,28 @@ > b = bp->bio_data; > e = bp->bio_data; > e += bp->bio_length; > + o = bp->bio_offset - sc->sectorsize; > for (p = b; p < e; p += sc->sectorsize) { > - rijndael_blockDecrypt(&sc->ci, &sc->dkey, p, sc->sectorsize * 8, sb); > + g_aes_makekey(sc, o, &dkey, DIR_DECRYPT); > + rijndael_blockDecrypt(&sc->ci, &dkey, p, sc->sectorsize * 8, sb); > bcopy(sb, p, sc->sectorsize); > + o += sc->sectorsize; > } > + bzero(&dkey, sizeof dkey); /* destroy evidence */ > + bzero(sb, sc->sectorsize); /* destroy evidence */ > + g_free(sb); > g_std_done(bp); > } > > static void > g_aes_write_done(struct bio *bp) > { > + struct g_aes_softc *sc; > + struct g_geom *gp; > > + gp = bp->bio_to->geom; > + sc = gp->softc; > + bzero(bp->bio_data, bp->bio_length); /* destroy evidence */ > g_free(bp->bio_data); > g_std_done(bp); > } > @@ -115,6 +186,8 @@ > struct g_aes_softc *sc; > struct bio *bp2; > u_char *p1, *p2, *b, *e; > + keyInstance ekey; > + off_t o; > > gp = bp->bio_to->geom; > cp = LIST_FIRST(&gp->consumer); > @@ -135,11 +208,15 @@ > e = bp->bio_data; > e += bp->bio_length; > p2 = bp2->bio_data; > + o = bp->bio_offset; > for (p1 = b; p1 < e; p1 += sc->sectorsize) { > - rijndael_blockEncrypt(&sc->ci, &sc->ekey, > + g_aes_makekey(sc, o, &ekey, DIR_ENCRYPT); > + rijndael_blockEncrypt(&sc->ci, &ekey, > p1, sc->sectorsize * 8, p2); > p2 += sc->sectorsize; > + o += sc->sectorsize; > } > + bzero(&ekey, sizeof ekey); /* destroy evidence */ > g_io_request(bp2, cp); > break; > case BIO_GETATTR: > @@ -166,6 +243,7 @@ > { > struct g_geom *gp; > struct g_provider *pp; > + struct g_aes_softc *sc; > int error; > > g_trace(G_T_TOPOLOGY, "g_aes_orphan(%p/%s)", cp, cp->provider->name); > @@ -174,10 +252,12 @@ > ("g_aes_orphan with error == 0")); > > gp = cp->geom; > + sc = gp->softc; > gp->flags |= G_GEOM_WITHER; > error = cp->provider->error; > LIST_FOREACH(pp, &gp->provider, provider) > g_orphan_provider(pp, error); > + bzero(sc, sizeof(struct g_aes_softc)); /* destroy evidence */ > return; > } > > @@ -238,16 +318,46 @@ > if (buf == NULL || error != 0) { > break; > } > - if (memcmp(buf, aes_magic, strlen(aes_magic))) > + sc = g_malloc(sizeof(struct g_aes_softc), M_WAITOK | M_ZERO); > + if (!memcmp(buf, aes_magic, strlen(aes_magic))) { > + sc->keying = KEY_ZERO; > + } else if (!memcmp(buf, aes_magic_random, > + strlen(aes_magic_random))) { > + sc->keying = KEY_RANDOM; > + } else if (!memcmp(buf, aes_magic_test, > + strlen(aes_magic_test))) { > + sc->keying = KEY_TEST; > + } else { > + g_free(sc); > break; > - sc = g_malloc(sizeof(struct g_aes_softc), M_WAITOK | M_ZERO); > + } > gp->softc = sc; > gp->access = g_aes_access; > sc->sectorsize = sectorsize; > sc->mediasize = mediasize - sectorsize; > rijndael_cipherInit(&sc->ci, MODE_CBC, NULL); > - rijndael_makeKey(&sc->ekey, DIR_ENCRYPT, 128, aes_key); > - rijndael_makeKey(&sc->dkey, DIR_DECRYPT, 128, aes_key); > + if (sc->keying == KEY_TEST) { > + int i; > + u_char *p; > + > + p = sc->master_key; > + for (i = 0; i < sizeof sc->master_key; i ++) > + *p++ = i; > + } > + if (sc->keying == KEY_RANDOM) { > + int i; > + u_int32_t u; > + u_char *p; > + > + p = sc->master_key; > + for (i = 0; i < sizeof sc->master_key; i += sizeof u) { > + u = arc4random(); > + *p++ = u; > + *p++ = u >> 8; > + *p++ = u >> 16; > + *p++ = u >> 24; > + } > + } > pp = g_new_providerf(gp, gp->name); > pp->mediasize = mediasize - sectorsize; > g_error_provider(pp, 0); > > ==== //depot/projects/interrupt/sys/geom/geom_kern.c#3 (text+ko) ==== > > @@ -32,7 +32,7 @@ > * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > * SUCH DAMAGE. > * > - * $FreeBSD: src/sys/geom/geom_kern.c,v 1.3 2002/03/26 22:07:38 phk Exp $ > + * $FreeBSD: src/sys/geom/geom_kern.c,v 1.4 2002/06/29 07:47:20 julian Exp $ > */ > > #include <sys/param.h> > @@ -63,7 +63,7 @@ > g_up_procbody(void) > { > struct proc *p = g_up_proc; > - struct thread *tp = &p->p_xxthread; > + struct thread *tp = FIRST_THREAD_IN_PROC(p); > > curthread->td_base_pri = PRIBIO; > for(;;) { > @@ -86,7 +86,7 @@ > g_down_procbody(void) > { > struct proc *p = g_down_proc; > - struct thread *tp = &p->p_xxthread; > + struct thread *tp = FIRST_THREAD_IN_PROC(p); > > curthread->td_base_pri = PRIBIO; > for(;;) { > > ==== //depot/projects/interrupt/sys/i386/isa/intr_machdep.h#5 (text+ko) ==== > > @@ -30,7 +30,7 @@ > * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > * SUCH DAMAGE. > * > - * $FreeBSD: src/sys/i386/isa/intr_machdep.h,v 1.40 2002/04/06 08:25:05 nyan Exp $ > + * $FreeBSD: src/sys/i386/isa/intr_machdep.h,v 1.41 2002/06/29 02:32:33 peter Exp $ > */ > > #ifndef _I386_ISA_INTR_MACHDEP_H_ > @@ -140,7 +140,7 @@ > * Type of the first (asm) part of an interrupt handler. > */ > typedef void inthand_t(u_int cs, u_int ef, u_int esp, u_int ss); > -typedef void unpendhand_t __P((void)); > +typedef void unpendhand_t(void); > > #define IDTVEC(name) __CONCAT(X,name) > > > ==== //depot/projects/interrupt/sys/kern/kern_descrip.c#6 (text+ko) ==== > > @@ -36,7 +36,7 @@ > * SUCH DAMAGE. > * > * @(#)kern_descrip.c 8.6 (Berkeley) 4/19/94 > - * $FreeBSD: src/sys/kern/kern_descrip.c,v 1.148 2002/05/31 11:52:29 tanimura Exp $ > + * $FreeBSD: src/sys/kern/kern_descrip.c,v 1.149 2002/06/29 01:50:24 alfred Exp $ > */ > > #include "opt_compat.h" > @@ -99,7 +99,7 @@ > static int do_dup(struct filedesc *fdp, int old, int new, register_t *retval, struct thread *td); > static int badfo_readwrite(struct file *fp, struct uio *uio, > struct ucred *cred, int flags, struct thread *td); > -static int badfo_ioctl(struct file *fp, u_long com, caddr_t data, > +static int badfo_ioctl(struct file *fp, u_long com, void *data, > struct thread *td); > static int badfo_poll(struct file *fp, int events, > struct ucred *cred, struct thread *td); > @@ -313,34 +313,34 @@ > fp->f_flag &= ~FCNTLFLAGS; > fp->f_flag |= FFLAGS(uap->arg & ~O_ACCMODE) & FCNTLFLAGS; > tmp = fp->f_flag & FNONBLOCK; > - error = fo_ioctl(fp, FIONBIO, (caddr_t)&tmp, td); > + error = fo_ioctl(fp, FIONBIO, &tmp, td); > if (error) { > fdrop(fp, td); > break; > } > tmp = fp->f_flag & FASYNC; > - error = fo_ioctl(fp, FIOASYNC, (caddr_t)&tmp, td); > + error = fo_ioctl(fp, FIOASYNC, &tmp, td); > if (!error) { > fdrop(fp, td); > break; > } > fp->f_flag &= ~FNONBLOCK; > tmp = 0; > - (void)fo_ioctl(fp, FIONBIO, (caddr_t)&tmp, td); > + (void)fo_ioctl(fp, FIONBIO, &tmp, td); > fdrop(fp, td); > break; > > case F_GETOWN: > fhold(fp); > FILEDESC_UNLOCK(fdp); > - error = fo_ioctl(fp, FIOGETOWN, (caddr_t)td->td_retval, td); > + error = fo_ioctl(fp, FIOGETOWN, (void *)td->td_retval, td); > fdrop(fp, td); > break; > > case F_SETOWN: > fhold(fp); > FILEDESC_UNLOCK(fdp); > - error = fo_ioctl(fp, FIOSETOWN, (caddr_t)&uap->arg, td); > + error = fo_ioctl(fp, FIOSETOWN, &uap->arg, td); > fdrop(fp, td); > break; > > @@ -363,8 +363,7 @@ > vp = (struct vnode *)fp->f_data; > > /* Copy in the lock structure */ > - error = copyin((caddr_t)(intptr_t)uap->arg, (caddr_t)&fl, > - sizeof(fl)); > + error = copyin((caddr_t)(intptr_t)uap->arg, &fl, sizeof(fl)); > if (error) { > fdrop(fp, td); > break; > @@ -434,8 +433,7 @@ > vp = (struct vnode *)fp->f_data; > > /* Copy in the lock structure */ > - error = copyin((caddr_t)(intptr_t)uap->arg, (caddr_t)&fl, > - sizeof(fl)); > + error = copyin((caddr_t)(intptr_t)uap->arg, &fl, sizeof(fl)); > if (error) { > fdrop(fp, td); > break; > @@ -461,8 +459,8 @@ > &fl, F_POSIX); > fdrop(fp, td); > if (error == 0) { > - error = copyout((caddr_t)&fl, > - (caddr_t)(intptr_t)uap->arg, sizeof(fl)); > + error = copyout(&fl, (caddr_t)(intptr_t)uap->arg, > + sizeof(fl)); > } > break; > default: > @@ -835,7 +833,7 @@ > error = fo_stat(fp, &ub, td); > if (error == 0) { > cvtstat(&ub, &oub); > - error = copyout((caddr_t)&oub, (caddr_t)uap->sb, sizeof (oub)); > + error = copyout(&oub, uap->sb, sizeof (oub)); > } > fdrop(fp, td); > done2: > @@ -871,7 +869,7 @@ > goto done2; > error = fo_stat(fp, &ub, td); > if (error == 0) > - error = copyout((caddr_t)&ub, (caddr_t)uap->sb, sizeof (ub)); > + error = copyout(&ub, uap->sb, sizeof (ub)); > fdrop(fp, td); > done2: > mtx_unlock(&Giant); > @@ -907,7 +905,7 @@ > error = fo_stat(fp, &ub, td); > if (error == 0) { > cvtnstat(&ub, &nub); > - error = copyout((caddr_t)&nub, (caddr_t)uap->sb, sizeof (nub)); > + error = copyout(&nub, uap->sb, sizeof (nub)); > } > fdrop(fp, td); > done2: > @@ -1563,7 +1561,7 @@ > break; > } > NDFREE(&nd, NDF_ONLY_PNBUF); > - fp->f_data = (caddr_t)nd.ni_vp; > + fp->f_data = nd.ni_vp; > fp->f_flag = flags; > fp->f_ops = &vnops; > fp->f_type = DTYPE_VNODE; > @@ -2067,7 +2065,7 @@ > return (error); > } > > - error = SYSCTL_OUT(req, (caddr_t)&filehead, sizeof(filehead)); > + error = SYSCTL_OUT(req, &filehead, sizeof(filehead)); > if (error) { > sx_sunlock(&filelist_lock); > return (error); > @@ -2077,7 +2075,7 @@ > * followed by an array of file structures > */ > LIST_FOREACH(fp, &filehead, f_list) { > - error = SYSCTL_OUT(req, (caddr_t)fp, sizeof (struct file)); > + error = SYSCTL_OUT(req, fp, sizeof (struct file)); > if (error) { > sx_sunlock(&filelist_lock); > return (error); > @@ -2145,7 +2143,7 @@ > badfo_ioctl(fp, com, data, td) > struct file *fp; > u_long com; > - caddr_t data; > + void *data; > struct thread *td; > { > > > ==== //depot/projects/interrupt/sys/kern/kern_event.c#4 (text+ko) ==== > > @@ -23,7 +23,7 @@ > * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > * SUCH DAMAGE. > * > - * $FreeBSD: src/sys/kern/kern_event.c,v 1.39 2002/05/19 00:14:48 jhb Exp $ > + * $FreeBSD: src/sys/kern/kern_event.c,v 1.41 2002/06/29 01:50:24 alfred Exp $ > */ > > #include <sys/param.h> > @@ -60,7 +60,7 @@ > struct ucred *cred, int flags, struct thread *td); > static int kqueue_write(struct file *fp, struct uio *uio, > struct ucred *cred, int flags, struct thread *td); > -static int kqueue_ioctl(struct file *fp, u_long com, caddr_t data, > +static int kqueue_ioctl(struct file *fp, u_long com, void *data, > struct thread *td); > static int kqueue_poll(struct file *fp, int events, struct ucred *cred, > struct thread *td); > @@ -334,7 +334,7 @@ > M_KQUEUE, M_WAITOK); > callout_init(calloutp, 0); > callout_reset(calloutp, tticks, filt_timerexpire, kn); > - kn->kn_hook = (caddr_t)calloutp; > + kn->kn_hook = calloutp; > > return (0); > } > @@ -380,7 +380,7 @@ > fp->f_type = DTYPE_KQUEUE; > fp->f_ops = &kqueueops; > TAILQ_INIT(&kq->kq_head); > - fp->f_data = (caddr_t)kq; > + fp->f_data = kq; > FILE_UNLOCK(fp); > FILEDESC_LOCK(fdp); > td->td_retval[0] = fd; > @@ -446,8 +446,8 @@ > if (uap->nevents != 0) { > kevp->flags = EV_ERROR; > kevp->data = error; > - (void) copyout((caddr_t)kevp, > - (caddr_t)uap->eventlist, > + (void) copyout(kevp, > + uap->eventlist, > sizeof(*kevp)); > uap->eventlist++; > uap->nevents--; > @@ -751,7 +751,7 @@ > count--; > if (nkev == KQ_NEVENTS) { > splx(s); > - error = copyout((caddr_t)&kq->kq_kev, (caddr_t)ulistp, > + error = copyout(&kq->kq_kev, ulistp, > sizeof(struct kevent) * nkev); > ulistp += nkev; > nkev = 0; > @@ -765,7 +765,7 @@ > splx(s); > done: > if (nkev != 0) > - error = copyout((caddr_t)&kq->kq_kev, (caddr_t)ulistp, > + error = copyout(&kq->kq_kev, ulistp, > sizeof(struct kevent) * nkev); > td->td_retval[0] = maxevents - count; > return (error); > @@ -793,7 +793,7 @@ > > /*ARGSUSED*/ > static int > -kqueue_ioctl(struct file *fp, u_long com, caddr_t data, struct thread *td) > +kqueue_ioctl(struct file *fp, u_long com, void *data, struct thread *td) > { > return (ENOTTY); > } > @@ -980,7 +980,7 @@ > FILEDESC_LOCK(fdp); > goto retry; > } > - bcopy((caddr_t)fdp->fd_knlist, (caddr_t)list, > + bcopy(fdp->fd_knlist, list, > fdp->fd_knlistsize * sizeof(struct klist *)); > bzero((caddr_t)list + > fdp->fd_knlistsize * sizeof(struct klist *), > > ==== //depot/projects/interrupt/sys/kern/kern_exec.c#7 (text+ko) ==== > > @@ -23,7 +23,7 @@ > * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > * SUCH DAMAGE. > * > - * $FreeBSD: src/sys/kern/kern_exec.c,v 1.167 2002/06/25 18:14:38 alc Exp $ > + * $FreeBSD: src/sys/kern/kern_exec.c,v 1.168 2002/06/29 01:50:24 alfred Exp $ > */ > > #include <sys/param.h> > @@ -353,7 +353,7 @@ > p->p_flag |= P_EXEC; > if (p->p_pptr && (p->p_flag & P_PPWAIT)) { > p->p_flag &= ~P_PPWAIT; > - wakeup((caddr_t)p->p_pptr); > + wakeup(p->p_pptr); > } > > /* > > ==== //depot/projects/interrupt/sys/kern/kern_exit.c#6 (text+ko) ==== > > @@ -36,7 +36,7 @@ > * SUCH DAMAGE. > * > * @(#)kern_exit.c 8.7 (Berkeley) 2/12/94 > - * $FreeBSD: src/sys/kern/kern_exit.c,v 1.168 2002/06/24 15:48:01 jake Exp $ > + * $FreeBSD: src/sys/kern/kern_exit.c,v 1.169 2002/06/29 01:50:24 alfred Exp $ > */ > > #include "opt_compat.h" > @@ -157,7 +157,7 @@ > q = q->p_peers; > } > while (p->p_peers) > - msleep((caddr_t)p, &p->p_mtx, PWAIT, "exit1", 0); > + msleep(p, &p->p_mtx, PWAIT, "exit1", 0); > } > PROC_UNLOCK(p); > > @@ -212,7 +212,7 @@ > while (q->p_peers != p) > q = q->p_peers; > q->p_peers = p->p_peers; > - wakeup((caddr_t)p->p_leader); > + wakeup(p->p_leader); > } > PROC_UNLOCK(p->p_leader); > > @@ -348,7 +348,7 @@ > sx_xlock(&proctree_lock); > q = LIST_FIRST(&p->p_children); > if (q != NULL) /* only need this if any child is S_ZOMB */ > - wakeup((caddr_t) initproc); > + wakeup(initproc); > for (; q != NULL; q = nq) { > nq = LIST_NEXT(q, p_sibling); > PROC_LOCK(q); > @@ -401,7 +401,7 @@ > * continue. > */ > if (LIST_EMPTY(&pp->p_children)) > - wakeup((caddr_t)pp); > + wakeup(pp); > } > > if (p->p_sigparent && p->p_pptr != initproc) > @@ -414,7 +414,7 @@ > * If this is a kthread, then wakeup anyone waiting for it to exit. > */ > if (p->p_flag & P_KTHREAD) > - wakeup((caddr_t)p); > + wakeup(p); > PROC_UNLOCK(p); > > /* > @@ -569,8 +569,8 @@ > if (uap->status) { > status = p->p_xstat; /* convert to int */ > PROC_UNLOCK(p); > - if ((error = copyout((caddr_t)&status, > - (caddr_t)uap->status, sizeof(status)))) { > + if ((error = copyout(&status, > + uap->status, sizeof(status)))) { > sx_xunlock(&proctree_lock); > mtx_unlock(&Giant); > return (error); > @@ -580,9 +580,8 @@ > if (uap->rusage) { > bcopy(p->p_ru, &ru, sizeof(ru)); > PROC_UNLOCK(p); > - if ((error = copyout((caddr_t)&ru, > - (caddr_t)uap->rusage, > - sizeof (struct rusage)))) { > + if ((error = copyout(&ru, > + uap->rusage, sizeof (struct rusage)))) { > sx_xunlock(&proctree_lock); > mtx_unlock(&Giant); > return (error); > @@ -599,7 +598,7 @@ > proc_reparent(p, t); > PROC_UNLOCK(p); > psignal(t, SIGCHLD); > - wakeup((caddr_t)t); > + wakeup(t); > PROC_UNLOCK(t); > sx_xunlock(&proctree_lock); > mtx_unlock(&Giant); > @@ -685,8 +684,8 @@ > if (uap->status) { > status = W_STOPCODE(p->p_xstat); > PROC_UNLOCK(p); > - error = copyout((caddr_t)&status, > - (caddr_t)uap->status, sizeof(status)); > + error = copyout(&status, > + uap->status, sizeof(status)); > } else { > PROC_UNLOCK(p); > error = 0; > @@ -702,8 +701,8 @@ > > if (uap->status) { > status = SIGCONT; > - error = copyout((caddr_t)&status, > - (caddr_t)uap->status, sizeof(status)); > + error = copyout(&status, > + uap->status, sizeof(status)); > } else > error = 0; > > @@ -725,7 +724,7 @@ > } > PROC_LOCK(q); > sx_xunlock(&proctree_lock); > > >>> TRUNCATED FOR MAIL (1000 lines) <<< > -- Bosko Milekic bmilekic@unixdaemons.com bmilekic@FreeBSD.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020629133851.A12121>