diff options
author | Michael Shalayeff <mickey@cvs.openbsd.org> | 1996-05-03 09:10:29 +0000 |
---|---|---|
committer | Michael Shalayeff <mickey@cvs.openbsd.org> | 1996-05-03 09:10:29 +0000 |
commit | 595cbd2e050401adf0cab2bab6ce52f902dfbb54 (patch) | |
tree | 8474c159022572bb93d15b7f2c287d1044321bc1 /sys/arch/vax/boot | |
parent | 3472e7ae763d3e453e57b218243b6d60ece25b43 (diff) |
sync w/ 0430
Diffstat (limited to 'sys/arch/vax/boot')
-rw-r--r-- | sys/arch/vax/boot/Makefile | 12 | ||||
-rw-r--r-- | sys/arch/vax/boot/autoconf.c | 32 | ||||
-rw-r--r-- | sys/arch/vax/boot/bootxx.c | 16 | ||||
-rw-r--r-- | sys/arch/vax/boot/conf.c | 5 | ||||
-rw-r--r-- | sys/arch/vax/boot/ctu.c | 181 | ||||
-rw-r--r-- | sys/arch/vax/boot/devopen.c | 5 | ||||
-rw-r--r-- | sys/arch/vax/boot/hp.c | 10 | ||||
-rw-r--r-- | sys/arch/vax/boot/ra.c | 6 | ||||
-rw-r--r-- | sys/arch/vax/boot/srt0.s | 13 | ||||
-rw-r--r-- | sys/arch/vax/boot/start.s | 7 | ||||
-rw-r--r-- | sys/arch/vax/boot/tmscp.c | 10 | ||||
-rw-r--r-- | sys/arch/vax/boot/vaxstand.h | 6 |
12 files changed, 264 insertions, 39 deletions
diff --git a/sys/arch/vax/boot/Makefile b/sys/arch/vax/boot/Makefile index f6763596bc0..0078dcd8cfc 100644 --- a/sys/arch/vax/boot/Makefile +++ b/sys/arch/vax/boot/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.6 1995/12/28 15:27:21 ragge Exp $ +# $NetBSD: Makefile,v 1.9 1996/03/16 11:03:12 ragge Exp $ # INCPATH=-I. -I../../.. -I../.. -I../../../lib/libsa @@ -11,7 +11,7 @@ S= ../../.. RELOC= 100000 CFLAGS+=-O ${INCPATH} -DSTANDALONE -DRELOC=0x${RELOC} -D_VAX_INLINE_ -DEVS= autoconf.o hp.o ra.o tmscp.o +DEVS= autoconf.o hp.o ra.o tmscp.o ctu.o LIBKERN=libkern.a KERNOBJ=__main.o strlen.o strcmp.o strncmp.o strncpy.o min.o strcpy.o @@ -102,6 +102,14 @@ libkern.a: ${KERNOBJ} @ar rv libkern.a `lorder ${KERNOBJ} | tsort` # +install: boot xxboot + install -c -o ${BINOWN} -g ${BINGRP} -m 444 boot ${DESTDIR}/ + install -c -o ${BINOWN} -g ${BINGRP} -m 444 xxboot ${DESTDIR}/usr/mdec + rm -f ${DESTDIR}/usr/mdec/raboot + ln ${DESTDIR}/usr/mdec/xxboot ${DESTDIR}/usr/mdec/raboot + rm -f ${DESTDIR}/usr/mdec/hpboot + ln ${DESTDIR}/usr/mdec/xxboot ${DESTDIR}/usr/mdec/hpboot + clean:: rm -f start.o romread.o bootxx.o init.o xxboot boot racopy \ libsvax.a udiv.o urem.o consio.o ${DEVS} edlabel edlabel.o diff --git a/sys/arch/vax/boot/autoconf.c b/sys/arch/vax/boot/autoconf.c index 654d6a68680..ca08f01214a 100644 --- a/sys/arch/vax/boot/autoconf.c +++ b/sys/arch/vax/boot/autoconf.c @@ -1,4 +1,4 @@ -/* $NetBSD: autoconf.c,v 1.3 1995/09/16 13:34:20 ragge Exp $ */ +/* $NetBSD: autoconf.c,v 1.5 1996/03/07 23:27:06 ragge Exp $ */ /* * Copyright (c) 1994 Ludd, University of Lule}, Sweden. * All rights reserved. @@ -47,6 +47,14 @@ static int uba750[]={0xf30000,0xf32000}; static int uio750[]={0xfc0000,0xf80000}; static int uda750[]={0772150}; +/* 11/780's only have 4, 8600 have 8 of these. */ +static int mba780[]={0x20010000,0x20012000,0x20014000,0x20016000, + 0x22010000,0x22012000,0x22014000,0x22016000}; +static int uba780[]={0x20006000,0x20008000,0x2000a000,0x2000c000, + 0x22006000,0x22008000,0x2200a000,0x2200c000}; +static int uio780[]={0x20100000,0x20140000,0x20180000,0x201c0000, + 0x22100000,0x22140000,0x22180000,0x221c0000}; + static int uba630[]={0x20087800}; static int uio630[]={0x30000000}; #define qbdev(csr) (((csr) & 017777)-0x10000000) @@ -67,6 +75,28 @@ autoconf() printf("CPU type %d not supported by boot\n",i); asm("halt"); + case VAX_8600: + nmba = 8; + nuba = 8; + nuda = 1; + mbaaddr = mba780; + ubaaddr = uba780; + udaaddr = uda750; + uioaddr = uio780; + tmsaddr = 0774500; + break; + + case VAX_780: + nmba = 4; + nuba = 4; + nuda = 1; + mbaaddr = mba780; + ubaaddr = uba780; + udaaddr = uda750; + uioaddr = uio780; + tmsaddr = 0774500; + break; + case VAX_750: nmba = 3; nuba = 2; diff --git a/sys/arch/vax/boot/bootxx.c b/sys/arch/vax/boot/bootxx.c index b60d7e7931c..4a1b34f83d6 100644 --- a/sys/arch/vax/boot/bootxx.c +++ b/sys/arch/vax/boot/bootxx.c @@ -1,4 +1,4 @@ -/* $NetBSD: bootxx.c,v 1.4 1995/10/20 13:35:43 ragge Exp $ */ +/* $NetBSD: bootxx.c,v 1.5 1996/02/17 18:23:21 ragge Exp $ */ /*- * Copyright (c) 1982, 1986 The Regents of the University of California. * All rights reserved. @@ -41,15 +41,15 @@ #include "lib/libsa/stand.h" #include "lib/libsa/ufs.h" -#include "../mba/mbareg.h" -#include "../mba/hpreg.h" - #include "../include/pte.h" #include "../include/sid.h" #include "../include/mtpr.h" #include "../include/reg.h" #include "../include/rpb.h" +#include "../mba/mbareg.h" +#include "../mba/hpreg.h" + #define NRSP 0 /* Kludge */ #define NCMD 0 /* Kludge */ #include "../uba/ubareg.h" @@ -197,6 +197,10 @@ getbootdev() is_tmscp = 1; /* use tape spec in mscp routines */ break; + case 64: + major = 8; + break; + default: printf("Unsupported boot device %d, trying anyway.\n", bootdev); boothowto |= (RB_SINGLE | RB_ASKNAME); @@ -236,7 +240,7 @@ devopen(f, fname, file) char line[64]; f->f_dev = &devsw[0]; - *file = fname; + *file = (char *)fname; /* * On uVAX we need to init [T]MSCP ctlr to be able to use it. @@ -382,7 +386,7 @@ hpread(block, size, buf) pfnum = (u_int) buf >> PGSHIFT; for (mapnr = 0, nsize = size; (nsize + NBPG) > 0; nsize -= NBPG) - mr->mba_map[mapnr++] = PG_V | pfnum++; + *(int *)&mr->mba_map[mapnr++] = PG_V | pfnum++; mr->mba_var = ((u_int) buf & PGOFSET); mr->mba_bc = (~size) + 1; bn = block; diff --git a/sys/arch/vax/boot/conf.c b/sys/arch/vax/boot/conf.c index 15236d763df..f516c4d2c3a 100644 --- a/sys/arch/vax/boot/conf.c +++ b/sys/arch/vax/boot/conf.c @@ -1,4 +1,4 @@ -/* $NetBSD: conf.c,v 1.4 1995/09/16 13:18:28 ragge Exp $ */ +/* $NetBSD: conf.c,v 1.5 1996/02/17 18:23:18 ragge Exp $ */ /* * Copyright (c) 1994 Ludd, University of Lule}, Sweden. * All rights reserved. @@ -40,6 +40,7 @@ int raopen(), rastrategy(); int hpopen(), hpstrategy(); +int ctuopen(), ctustrategy(); int tmscpopen(), tmscpstrategy(); struct devsw devsw[]={ @@ -51,7 +52,7 @@ struct devsw devsw[]={ SADEV("tm",nullsys, nodev, nullsys, noioctl), SADEV("ts",nullsys, nodev, nullsys, noioctl), SADEV("mt",nullsys, nodev, nullsys, noioctl), - SADEV("tu",nullsys, nodev, nullsys, noioctl), + SADEV("ctu",ctustrategy, ctuopen, nullsys, noioctl), SADEV("ra",rastrategy, raopen, nullsys, noioctl), SADEV("ut",nullsys, nodev, nullsys, noioctl), SADEV("id",nullsys, nodev, nullsys, noioctl), diff --git a/sys/arch/vax/boot/ctu.c b/sys/arch/vax/boot/ctu.c new file mode 100644 index 00000000000..26f29525160 --- /dev/null +++ b/sys/arch/vax/boot/ctu.c @@ -0,0 +1,181 @@ +/* $NetBSD: ctu.c,v 1.1 1996/02/17 18:23:20 ragge Exp $ */ +/* + * Copyright (c) 1996 Ludd, University of Lule}, Sweden. + * 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. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed at Ludd, University of + * Lule}, Sweden and its contributors. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + */ + +/* + * Standalone device driver for 11/750 Console TU58. + * It can only handle reads, and doesn't calculate checksum. + */ + +#include <sys/param.h> + +#include <lib/libsa/stand.h> + +#include <machine/mtpr.h> +#include <machine/rsp.h> + +enum tu_state { + SC_INIT, + SC_READY, + SC_SEND_CMD, + SC_GET_RESP, +}; + +volatile struct tu_softc { + enum tu_state sc_state; + char sc_rsp[15]; /* Should be struct rsb; but don't work */ + u_char *sc_xfptr; /* Current char to xfer */ + int sc_nbytes; /* Number of bytes to xfer */ + int sc_xbytes; /* Number of xfer'd bytes */ + int sc_bbytes; /* Number of xfer'd bytes this block */ +} tu_sc; + +void ctutintr __P(()); +void cturintr __P(()); + +int +ctuopen(f, adapt, ctlr, unit, part) + struct open_file *f; + int ctlr, unit, part; +{ + + tu_sc.sc_state = SC_INIT; + + mtpr(RSP_TYP_INIT, PR_CSTD); + cturintr(); + tu_sc.sc_state = SC_READY; + return 0; + +} + +int +ctustrategy(ra, func, dblk, size, buf, rsize) + struct ra_softc *ra; + int func; + daddr_t dblk; + char *buf; + u_int size, *rsize; +{ + int s; + + struct rsp *rsp = (struct rsp *)tu_sc.sc_rsp; + + tu_sc.sc_xfptr = buf; + tu_sc.sc_nbytes = size; + tu_sc.sc_xbytes = tu_sc.sc_bbytes = 0; + + rsp->rsp_typ = RSP_TYP_COMMAND; + rsp->rsp_sz = 012; + rsp->rsp_op = RSP_OP_READ; + rsp->rsp_mod = 0; + rsp->rsp_drv = 0; + rsp->rsp_sw = rsp->rsp_xx1 = rsp->rsp_xx2 = 0; + rsp->rsp_cnt = tu_sc.sc_nbytes; + rsp->rsp_blk = dblk; + rsp->rsp_sum = ctu_cksum(rsp, 6); + tu_sc.sc_state = SC_SEND_CMD; + while (tu_sc.sc_state != SC_GET_RESP) + ctutintr(); + while (tu_sc.sc_state != SC_READY) + cturintr(); + *rsize = size; + return 0; +} + +void +cturintr() +{ + int status; + + while ((mfpr(PR_CSRS) & 0x80) == 0) + ; + + status = mfpr(PR_CSRD); + + switch (tu_sc.sc_state) { + + case SC_INIT: + break; + + case SC_GET_RESP: + if (tu_sc.sc_xbytes == tu_sc.sc_nbytes) { + tu_sc.sc_bbytes++; + if (tu_sc.sc_bbytes == 146) + tu_sc.sc_state = SC_READY; + break; + } + tu_sc.sc_bbytes++; + if (tu_sc.sc_bbytes < 3) /* Data header */ + break; + if (tu_sc.sc_bbytes == 132) { /* Finished */ + tu_sc.sc_bbytes = 0; + break; + } + if (tu_sc.sc_bbytes == 131) /* First checksum */ + break; + tu_sc.sc_xfptr[tu_sc.sc_xbytes++] = status; + break; + + } + +} + +void +ctutintr() +{ + int c; + + while ((mfpr(PR_CSTS) & 0x80) == 0) + ; + + c = tu_sc.sc_rsp[tu_sc.sc_xbytes++] & 0xff; + mtpr(c, PR_CSTD); + if (tu_sc.sc_xbytes > 13) { + tu_sc.sc_state = SC_GET_RESP; + tu_sc.sc_xbytes = 0; + } +} + +ctu_cksum(buf, words) + unsigned short *buf; + int words; +{ + int i, cksum; + + for (i = cksum = 0; i < words; i++) + cksum += buf[i]; + +hej: if (cksum > 65535) { + cksum = (cksum & 65535) + (cksum >> 16); + goto hej; + } + return cksum; +} diff --git a/sys/arch/vax/boot/devopen.c b/sys/arch/vax/boot/devopen.c index 6200f477f49..d3468b427dd 100644 --- a/sys/arch/vax/boot/devopen.c +++ b/sys/arch/vax/boot/devopen.c @@ -1,4 +1,4 @@ -/* $NetBSD: devopen.c,v 1.3 1995/09/16 13:18:29 ragge Exp $ */ +/* $NetBSD: devopen.c,v 1.4 1996/03/16 11:02:28 ragge Exp $ */ /*- * Copyright (c) 1993 John Brezak * All rights reserved. @@ -182,13 +182,14 @@ devopen(f, fname, file) { int n, error; int dev, ctlr, unit, part; - int adapt = 0; /* XXX not used on HP */ + int adapt; struct devsw *dp = &devsw[0]; dev = B_TYPE(bootdev); ctlr = B_CONTROLLER(bootdev); unit = B_UNIT(bootdev); part = B_PARTITION(bootdev); + adapt = B_ADAPTOR(bootdev); if (error = devparse(fname, &dev, &adapt, &ctlr, &unit, &part, file)) return(error); diff --git a/sys/arch/vax/boot/hp.c b/sys/arch/vax/boot/hp.c index c7019a3527d..74400d2470d 100644 --- a/sys/arch/vax/boot/hp.c +++ b/sys/arch/vax/boot/hp.c @@ -1,4 +1,4 @@ -/* $NetBSD: hp.c,v 1.4 1995/09/16 15:43:25 ragge Exp $ */ +/* $NetBSD: hp.c,v 1.5 1996/02/17 18:23:22 ragge Exp $ */ /* * Copyright (c) 1994 Ludd, University of Lule}, Sweden. * All rights reserved. @@ -38,12 +38,12 @@ #include "lib/libsa/stand.h" -#include "../mba/mbareg.h" -#include "../mba/hpreg.h" - #include "../include/pte.h" #include "../include/macros.h" +#include "../mba/mbareg.h" +#include "../mba/hpreg.h" + #include "vaxstand.h" /* @@ -132,7 +132,7 @@ hpstrategy(hs, func, dblk, size, buf, rsize) pfnum = (u_int)buf >> PGSHIFT; for(mapnr = 0, nsize = size; (nsize + NBPG) > 0; nsize -= NBPG) - mr->mba_map[mapnr++] = PG_V | pfnum++; + *(int *)&mr->mba_map[mapnr++] = PG_V | pfnum++; mr->mba_var = ((u_int)buf & PGOFSET); mr->mba_bc = (~size) + 1; diff --git a/sys/arch/vax/boot/ra.c b/sys/arch/vax/boot/ra.c index a0ecefc1a1b..43e368fe098 100644 --- a/sys/arch/vax/boot/ra.c +++ b/sys/arch/vax/boot/ra.c @@ -1,4 +1,4 @@ -/* $NetBSD: ra.c,v 1.3 1995/09/16 13:34:22 ragge Exp $ */ +/* $NetBSD: ra.c,v 1.4 1996/02/17 18:23:23 ragge Exp $ */ /* * Copyright (c) 1995 Ludd, University of Lule}, Sweden. * All rights reserved. @@ -96,7 +96,7 @@ raopen(f, adapt, ctlr, unit, part) ra->unit=unit; ra->part = part; udacsr=(void*)ra->udaddr; - nisse=&mr->uba_map[0]; + nisse=(u_int *)&mr->uba_map[0]; nisse[494]=PG_V|(((u_int)&uda)>>9); nisse[495]=nisse[494]+1; ubauda=(void*)0x3dc00+(((u_int)(&uda))&0x1ff); @@ -163,7 +163,7 @@ rastrategy(ra, func, dblk, size, buf, rsize) ur = (void *)ra->ubaddr; udadev = (void*)ra->udaddr; - ptmapp = &ur->uba_map[0]; + ptmapp = (u_int *)&ur->uba_map[0]; lp = &ralabel; pfnum = (u_int)buf >> PGSHIFT; diff --git a/sys/arch/vax/boot/srt0.s b/sys/arch/vax/boot/srt0.s index a85d02538ba..1fc8dfca8e3 100644 --- a/sys/arch/vax/boot/srt0.s +++ b/sys/arch/vax/boot/srt0.s @@ -1,4 +1,4 @@ -/* $NetBSD: srt0.s,v 1.4 1995/09/16 16:20:20 ragge Exp $ */ +/* $NetBSD: srt0.s,v 1.5 1996/03/07 23:27:10 ragge Exp $ */ /* * Copyright (c) 1994 Ludd, University of Lule}, Sweden. * All rights reserved. @@ -48,11 +48,12 @@ _start: .globl _start movl $_start, sp # Probably safe place for stack subl2 $52, sp # do not overwrite saved boot-registers - subl3 $_start, $_end, r0 - moval _start, r1 - movl $_start, r2 - movc3 r0, (r1), (r2) # should use movc5 instead, to clear bss. - + subl3 $_start, $_edata, r0 + moval _start, r1 + subl3 $_start, $_end, r2 + movl $_start, r3 + movc5 r0, (r1), $0, r2, (r3) + jsb 1f 1: movl $relocated, (sp) # return-address on top of stack rsb # can be replaced with new address diff --git a/sys/arch/vax/boot/start.s b/sys/arch/vax/boot/start.s index 80040a7c2d7..55b2fc0438a 100644 --- a/sys/arch/vax/boot/start.s +++ b/sys/arch/vax/boot/start.s @@ -1,4 +1,4 @@ -/* $NetBSD: start.s,v 1.5 1995/10/20 13:35:41 ragge Exp $ */ +/* $NetBSD: start.s,v 1.7 1996/02/02 19:08:33 mycroft Exp $ */ /* * Copyright (c) 1995 Ludd, University of Lule}, Sweden. * All rights reserved. @@ -36,11 +36,10 @@ /* All bugs are subject to removal without further notice */ -#define LOCORE +#define _LOCORE + #include "sys/disklabel.h" -#undef LOCORE -#define ASSEMBLER #include "../include/mtpr.h" #include "../include/asm.h" diff --git a/sys/arch/vax/boot/tmscp.c b/sys/arch/vax/boot/tmscp.c index eb143e61426..f5d0fe11879 100644 --- a/sys/arch/vax/boot/tmscp.c +++ b/sys/arch/vax/boot/tmscp.c @@ -1,4 +1,4 @@ -/* $NetBSD: tmscp.c,v 1.1 1995/09/16 12:57:35 ragge Exp $ */ +/* $NetBSD: tmscp.c,v 1.2 1996/02/17 18:23:24 ragge Exp $ */ /* * Copyright (c) 1995 Ludd, University of Lule}, Sweden. * All rights reserved. @@ -91,7 +91,7 @@ tmscpopen(f, adapt, ctlr, unit, part) ra->ubaddr=(int)mr; ra->unit=unit; udacsr=(void*)ra->udaddr; - nisse=&mr->uba_map[0]; + nisse=(u_int *)&mr->uba_map[0]; nisse[494]=PG_V|(((u_int)&uda)>>9); nisse[495]=nisse[494]+1; ubauda=(void*)0x3dc00+(((u_int)(&uda))&0x1ff); @@ -112,8 +112,8 @@ tmscpopen(f, adapt, ctlr, unit, part) uda.uda_ca.ca_rspdsc=(int)&ubauda->uda_rsp.mscp_cmdref; uda.uda_ca.ca_cmddsc=(int)&ubauda->uda_cmd.mscp_cmdref; - uda.uda_cmd.mscp_un.un_seq.seq_addr = &uda.uda_ca.ca_cmddsc; - uda.uda_rsp.mscp_un.un_seq.seq_addr = &uda.uda_ca.ca_rspdsc; + uda.uda_cmd.mscp_un.un_seq.seq_addr = (long *)&uda.uda_ca.ca_cmddsc; + uda.uda_rsp.mscp_un.un_seq.seq_addr = (long *)&uda.uda_ca.ca_rspdsc; uda.uda_cmd.mscp_vcid = 1; uda.uda_cmd.mscp_un.un_sccc.sccc_ctlrflags = 0; @@ -164,7 +164,7 @@ tmscpstrategy(ra, func, dblk, size, buf, rsize) u_int i,j,pfnum, mapnr, nsize, bn, cn, sn, tn; volatile struct uba_regs *ur=(void *)ra->ubaddr; volatile struct udadevice *udadev=(void*)ra->udaddr; - volatile u_int *ptmapp=&ur->uba_map[0]; + volatile u_int *ptmapp = (u_int *)&ur->uba_map[0]; volatile int hej; pfnum=(u_int)buf>>PGSHIFT; diff --git a/sys/arch/vax/boot/vaxstand.h b/sys/arch/vax/boot/vaxstand.h index 17ec1cbcd03..f3217fdb235 100644 --- a/sys/arch/vax/boot/vaxstand.h +++ b/sys/arch/vax/boot/vaxstand.h @@ -1,4 +1,4 @@ -/* $NetBSD: vaxstand.h,v 1.3 1995/04/25 14:14:34 ragge Exp $ */ +/* $NetBSD: vaxstand.h,v 1.4 1996/02/17 18:23:25 ragge Exp $ */ /* * Copyright (c) 1994 Ludd, University of Lule}, Sweden. * All rights reserved. @@ -44,8 +44,8 @@ extern int *ubaaddr, *mbaaddr, *udaaddr, *uioaddr; /* devsw type definitions, used in bootxx and conf */ #define SADEV(name,strategy,open,close,ioctl) \ - { name, \ - (int(*)(void *, int ,daddr_t , u_int , char *, u_int *))strategy, \ + { (char *)name, \ + (int(*)(void *, int ,daddr_t , size_t, void *, size_t *))strategy, \ (int(*)(struct open_file *, ...))open, \ (int(*)(struct open_file *))close, \ (int(*)(struct open_file *,u_long, void *))ioctl} |