diff -r src/sys/stand/gets.c ../src/sys/stand/gets.c 17c17 < * @(#)gets.c 7.4 (Berkeley) 9/12/88 --- > * @(#)gets.c 7.3 (Berkeley) 6/29/88 33d32 < case '\177': 41a41 > case '\177': diff -r src/sys/stand/ls.c ../src/sys/stand/ls.c 17c17 < * @(#)ls.c 7.5 (Berkeley) 3/21/89 --- > * @(#)ls.c 7.4 (Berkeley) 6/29/88 25d24 < #include "ttychars.h" 32,45c31,37 < for (;;) { < if ((fd = getfile("ls", 0)) == -1) < exit(); < ip = &iob[fd - 3].i_ino; < if ((ip->i_mode & IFMT) != IFDIR) { < printf("ls: not a directory\n"); < continue; < } < if (ip->i_size == 0) { < printf("ls: zero length directory\n"); < continue; < } < ls(fd); < } --- > fd = getfile("ls", 0); > ip = &iob[fd - 3].i_ino; > if ((ip->i_mode & IFMT) != IFDIR) > _stop("ls: not a directory"); > if (ip->i_size == 0) > _stop("ls: zero length directory"); > ls(fd); 48,63d39 < getfile(prompt, mode) < char *prompt; < int mode; < { < int fd; < char buf[100]; < < do { < printf("%s: ", prompt); < gets(buf); < if (buf[0] == CTRL('d') && buf[1] == 0) < return (-1); < } while ((fd = open(buf, mode)) <= 0); < return(fd); < } < 73c49 < printf("\ninode\tname\n"); --- > printf("\nname->inode\n"); 80,85c56,61 < if (((DP *)dp)->d_namlen > MAXNAMLEN+1) { < printf("Corrupt file name length! Run fsck soon!\n"); < return; < } < printf("%d\t%s\n", ((DP *)dp)->d_ino, < ((DP *)dp)->d_name); --- > if (((DP *)dp)->d_reclen > DIRSIZ(((DP *)dp))) > continue; > if (((DP *)dp)->d_namlen > MAXNAMLEN+1) > _stop("Corrupt file name length! Run fsck soon!\n"); > printf("%s->%d\n", ((DP *)dp)->d_name, > ((DP *)dp)->d_ino); diff -r src/sys/stand/saio.h ../src/sys/stand/saio.h 2,3c2,4 < * Copyright (c) 1982, 1988 The Regents of the University of California. < * All rights reserved. --- > * Copyright (c) 1982, 1988 Regents of the University of California. > * All rights reserved. The Berkeley software License Agreement > * specifies the terms and conditions for redistribution. 5,17c6 < * Redistribution and use in source and binary forms are permitted < * provided that the above copyright notice and this paragraph are < * duplicated in all such forms and that any documentation, < * advertising materials, and other materials related to such < * distribution and use acknowledge that the software was developed < * by the University of California, Berkeley. The name of the < * University may not be used to endorse or promote products derived < * from this software without specific prior written permission. < * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR < * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED < * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. < * < * %W% (Berkeley) %G% --- > * @(#)saio.h 7.3 (Berkeley) 3/2/88 23c12 < #define UNIX "hd(6,0,0) /vmunix" --- > #define UNIX "/vmunix" 32c21 < int i_adapt; /* adapter or bus */ --- > int i_adapt; /* adapter */ 52d40 < 54d41 < #define i_bus i_adapt 61,68c48,55 < #define F_READ 0x0001 /* file opened for reading */ < #define F_WRITE 0x0002 /* file opened for writing */ < #define F_ALLOC 0x0004 /* buffer allocated */ < #define F_FILE 0x0008 /* file instead of device */ < #define F_NBSF 0x0010 /* no bad sector forwarding */ < #define F_ECCLM 0x0020 /* limit # of bits in ecc correction */ < #define F_SSI 0x0040 /* set skip sector inhibit */ < #define F_SEVRE 0x0080 /* Severe burnin (no retries, no ECC) */ --- > #define F_READ 0x1 /* file opened for reading */ > #define F_WRITE 0x2 /* file opened for writing */ > #define F_ALLOC 0x4 /* buffer allocated */ > #define F_FILE 0x8 /* file instead of device */ > #define F_NBSF 0x10 /* no bad sector forwarding */ > #define F_ECCLM 0x20 /* limit # of bits in ecc correction */ > #define F_SSI 0x40 /* set skip sector inhibit */ > #define F_SEVRE 0x80 /* Severe burnin (no retries, no ECC) */ 78a66,68 > /* > * Request codes. Must be the same as F_XXX above > */ diff -r src/sys/tahoe/autoconf.c ../src/sys/tahoe/autoconf.c 305,306c305 < if (VBIOMAPPED(addr)) < ui->ui_addr = (caddr_t)reg; --- > ui->ui_addr = (caddr_t)reg; Only in src/sys/tahoe: autoconf.c.nbsd diff -r src/sys/tahoe/conf.c ../src/sys/tahoe/conf.c 17c17 < * @(#)conf.c 7.4 (Berkeley) 5/1/89 --- > * @(#)conf.c 7.3 (Berkeley) 6/29/88 42,54d41 < #include "hd.h" < #if NHD > 0 < int hdopen(),hdclose(),hdstrategy(),hdioctl(); < int hddump(),hdsize(); < #else < #define hdopen nodev < #define hdclose nodev < #define hdstrategy nodev < #define hdioctl nodev < #define hddump nodev < #define hdsize 0 < #endif < 74,75c61,62 < { hdopen, hdclose, hdstrategy, hdioctl, /*2*/ < hddump, hdsize, 0 }, --- > { nodev, nulldev, nodev, nodev, /*2*/ > nodev, 0, 0 }, 212,214c199,201 < hdopen, hdclose, rawread, rawwrite, /*6*/ < hdioctl, nodev, nulldev, NULL, < seltrue, nodev, hdstrategy, --- > nodev, nulldev, nodev, nodev, /*6*/ > nodev, nodev, nulldev, NULL, > seltrue, nodev, NULL, diff -r src/sys/tahoe/genassym.c ../src/sys/tahoe/genassym.c 25c25 < static char sccsid[] = "@(#)genassym.c 7.3 (Berkeley) 9/24/88"; --- > static char sccsid[] = "@(#)genassym.c 7.2 (Berkeley) 6/29/88"; 81d80 < printf("#define\tMCLBYTES %d\n", MCLBYTES); diff -r src/sys/tahoe/locore.s ../src/sys/tahoe/locore.s 6c6 < * @(#)locore.s 7.6 (Berkeley) 5/1/89 --- > * @(#)locore.s 7.2 (Berkeley) 7/6/88 606c606 < SYSMAP(Mbmap ,mbutl ,NMBCLUSTERS*MCLBYTES/NBPG+CLSIZE ) --- > SYSMAP(Mbmap ,mbutl ,NMBCLUSTERS*CLSIZE+CLSIZE ) 615,618d614 < #include "hd.h" < #if NHD > 0 < ADDMAP( NHDC*(MAXPHYS/NBPG+CLSIZE) ) < #endif 620d615 < #if NDK > 0 622d616 < #endif 624d617 < #if NYC > 0 626d618 < #endif 635d626 < #if NACE > 0 637,644d627 < #endif < #if NHD > 0 < ADDMAP( NHDC ) < #endif < #include "vx.h" < #if NVX > 0 < ADDMAP( NVX * 16384/NBPG ) < #endif 648,651d630 < #if NHD > 0 < ADDMAP( NHDC*(MAXPHYS/NBPG+CLSIZE) ) < #endif < #if NDK > 0 653,654d631 < #endif < #if NYC > 0 656d632 < #endif 854,856c830,831 < /* try /sbin/init */ < pushab b`argv1-l0(pc) < l0: pushab b`init1-l1(pc) --- > pushab b`argv-l0(pc) > l0: pushab b`init-l1(pc) 860,866d834 < /* try /etc/init */ < pushab b`argv2-l2(pc) < l2: pushab b`init2-l3(pc) < l3: pushl $2 < movab (sp),fp < kcall $SYS_execv < /* give up */ 868,869d835 < pushl $1 < movab (sp),fp 872,873c838 < init1: .asciz "/sbin/init" < init2: .asciz "/etc/init" --- > init: .asciz "/etc/init" 877c842 < argv1: .long init1+6-_icode --- > argv: .long init+5-_icode 880,882d844 < argv2: .long init2+5-_icode < .long _initflags-_icode < .long 0 907,928d868 < 2: movl r2,_scb+SCB_BUSERR < mtpr r1,$IPL < ret < < /* < * wbadaddr(addr, len, value) < * see if write of value to addr with a len type instruction causes < * a machine check < * len is length of access (1=byte, 2=short, 4=long) < * r0 = 0 means good(exists); r0 =1 means does not exist. < */ < ENTRY(wbadaddr, R3|R4) < mfpr $IPL,r1 < mtpr $HIGH,$IPL < movl _scb+SCB_BUSERR,r2 < movl 4(fp),r3 < movl 8(fp),r4 < movab 9f,_scb+SCB_BUSERR < bbc $0,r4,1f; movb 15(fp), (r3) < 1: bbc $1,r4,1f; movw 14(fp), (r3) < 1: bbc $2,r4,1f; movl 12(fp), (r3) < 1: clrl r0 # made it w/o machine checks Only in src/sys/tahoe: locore.s.okeeffe diff -r src/sys/tahoeif/if_ace.c ../src/sys/tahoeif/if_ace.c 5,7d4 < * This code is derived from software contributed to Berkeley by < * Computer Consoles Inc. < * 20c17 < * @(#)if_ace.c 7.5 (Berkeley) 4/25/89 --- > * @(#)if_ace.c 7.2 (Berkeley) 6/29/88 31d27 < #include "malloc.h" 58,59c54,55 < #include "machine/cpu.h" < #include "machine/pte.h" --- > #include "../machine/cpu.h" > #include "../machine/pte.h" 65c61 < int aceprobe(), aceattach(), acerint(), acecint(), acestart(); --- > int aceprobe(), aceattach(), acerint(), acecint(); 175,176c171 < ifp->if_output = ether_output; < ifp->if_start = acestart; --- > ifp->if_output = aceoutput; 179c174 < ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX; --- > ifp->if_flags = IFF_BROADCAST; 206a202 > register struct ifnet *ifp = &is->is_if; 210c206 < if (is->is_if.if_addrlist == (struct ifaddr *)0) --- > if (ifp->if_addrlist == (struct ifaddr *)0) 212c208 < if ((is->is_if.if_flags & IFF_RUNNING) == 0) { --- > if ((ifp->if_flags & IFF_RUNNING) == 0) { 240c236 < acestart(&is->is_if); --- > acestart(unit); 248,249c244,245 < acestart(ifp) < register struct ifnet *ifp; --- > acestart(unit) > int unit; 253a250 > register struct ace_softc *is = &ace_softc[unit]; 256d252 < #define is ((struct ace_softc *)ifp) 257a254,256 > if (is->is_flags & ACEF_OACTIVE) > return; > is->is_flags |= ACEF_OACTIVE; 262,263c261,262 < ifp->if_flags |= IFF_OACTIVE; < return (0); --- > is->is_flags &= ~ACEF_OACTIVE; > return; 266c265 < IF_DEQUEUE(&ifp->if_snd, m); --- > IF_DEQUEUE(&is->is_if.if_snd, m); 269,270c268,269 < ifp->if_flags &= ~IFF_OACTIVE; < return (0); --- > is->is_flags &= ~ACEF_OACTIVE; > return; 272c271 < len = aceput(txs->tx_data, m); --- > len = aceput(unit, txs->tx_data, m); 288c287 < ifp->if_opackets++; --- > is->is_if.if_opackets++; 293d291 < #undef is 311c309 < acestart(&is->is_if); --- > acestart(unit); 328c326 < acestart(&is->is_if); --- > acestart(unit); 407c405,406 < * information to be at the front. --- > * information to be at the front, but we still have to drop > * the type and length which are at the front of any trailer data. 411a411,418 > if (off) { > struct ifnet *ifp; > > ifp = *(mtod(m, struct ifnet **)); > m->m_off += 2 * sizeof (u_short); > m->m_len -= 2 * sizeof (u_short); > *(mtod(m, struct ifnet **)) = ifp; > } 449,452c456,459 < * Routine to copy from mbuf chain to transmit buffer on the VERSAbus < * If packet size is less than the minimum legal size, < * the buffer is expanded. We probably should zero out the extra < * bytes for security, but that would slow things down. --- > * Ethernet output routine. > * Encapsulate a packet of type family for the local net. > * Use trailer local net encapsulation if enough data in first > * packet leaves a multiple of 512 bytes of data in remainder. 454,457c461,464 < aceput(txbuf, m) < char *txbuf; < struct mbuf *m; < #ifdef notdef --- > aceoutput(ifp, m0, dst) > struct ifnet *ifp; > struct mbuf *m0; > struct sockaddr *dst; 459,463c466,473 < register u_char *bp, *mcp; < register short *s1, *s2; < register u_int len; < register struct mbuf *mp; < int total; --- > register struct ace_softc *is = &ace_softc[ifp->if_unit]; > register struct mbuf *m = m0; > register struct ether_header *ace; > register int off; > struct mbuf *mcopy = (struct mbuf *)0; > int type, s, error, usetrailers; > u_char edst[6]; > struct in_addr idst; 465,475c475,497 < total = mp->m_pkthdr.len; < bp = (u_char *)txbuf; < for (mp = m; mp; mp = mp->m_next) { < len = mp->m_len; < if (len == 0) < continue; < mcp = mtod(mp, u_char *); < if (((int)mcp & 01) && ((int)bp & 01)) { < /* source & destination at odd addresses */ < movob(bp++, *mcp++); < --len; --- > if ((ifp->if_flags & (IFF_UP|IFF_RUNNING)) != (IFF_UP|IFF_RUNNING)) { > error = ENETDOWN; > goto bad; > } > switch (dst->sa_family) { > > #ifdef INET > case AF_INET: > idst = ((struct sockaddr_in *)dst)->sin_addr; > if (!arpresolve(&is->is_ac, m, &idst, edst, &usetrailers)) > return (0); /* if not yet resolved */ > if (!bcmp((caddr_t)edst, (caddr_t)etherbroadcastaddr, > sizeof (edst))) > mcopy = m_copy(m, 0, (int)M_COPYALL); > off = ntohs((u_short)mtod(m, struct ip *)->ip_len) - m->m_len; > if (usetrailers && off > 0 && (off & 0x1ff) == 0 && > m->m_off >= MMINOFF + 2 * sizeof (u_short)) { > type = ETHERTYPE_TRAIL + (off>>9); > m->m_off -= 2 * sizeof (u_short); > m->m_len += 2 * sizeof (u_short); > *mtod(m, u_short *) = htons((u_short)ETHERTYPE_IP); > *(mtod(m, u_short *) + 1) = htons((u_short)m->m_len); > goto gottrailertype; 477,478c499,520 < if (len > 1 && (((int)mcp & 01)==0) && (((int)bp & 01)==0)) { < int l = len & 1; --- > type = ETHERTYPE_IP; > off = 0; > goto gottype; > #endif > #ifdef NS > case AF_NS: > bcopy((caddr_t)&(((struct sockaddr_ns *)dst)->sns_addr.x_host), > (caddr_t)edst, sizeof (edst)); > if (!bcmp((caddr_t)edst, (caddr_t)&ns_broadhost,sizeof(edst))) > mcopy = m_copy(m, 0, (int)M_COPYALL); > else if (!bcmp((caddr_t)edst, (caddr_t)&ns_thishost, > sizeof(edst))) > return(looutput(&loif, m, dst)); > type = ETHERTYPE_NS; > off = 0; > goto gottype; > #endif > case AF_UNSPEC: > ace = (struct ether_header *)dst->sa_data; > bcopy((caddr_t)ace->ether_dhost, (caddr_t)edst, sizeof (edst)); > type = ace->ether_type; > goto gottype; 480,487c522,551 < s1 = (short *)bp; < s2 = (short *)mcp; < len >>= 1; /* count # of shorts */ < while (len-- != 0) < movow(s1++, *s2++); < len = l; /* # remaining bytes */ < bp = (u_char *)s1; < mcp = (u_char *)s2; --- > default: > log(LOG_ERR, "ace%d: can't handle af%d\n", > ifp->if_unit, dst->sa_family); > error = EAFNOSUPPORT; > goto bad; > } > > gottrailertype: > /* > * Packet to be sent as trailer: move first packet > * (control information) to end of chain. > */ > while (m->m_next) > m = m->m_next; > m->m_next = m0; > m = m0->m_next; > m0->m_next = 0; > m0 = m; > > gottype: > /* > * Add local net header. If no space in first mbuf, > * allocate another. > */ > if (m->m_off > MMAXOFF || > MMINOFF + sizeof (struct ether_header) > m->m_off) { > m = m_get(M_DONTWAIT, MT_HEADER); > if (m == 0) { > error = ENOBUFS; > goto bad; 489,490c553,558 < while (len-- != 0) < movob(bp++, *mcp++); --- > m->m_next = m0; > m->m_off = MMINOFF; > m->m_len = sizeof (struct ether_header); > } else { > m->m_off -= sizeof (struct ether_header); > m->m_len += sizeof (struct ether_header); 492,493c560,587 < m_freem(m); < return (total); --- > ace = mtod(m, struct ether_header *); > bcopy((caddr_t)edst, (caddr_t)ace->ether_dhost, sizeof (edst)); > bcopy((caddr_t)is->is_addr, (caddr_t)ace->ether_shost, > sizeof (is->is_addr)); > ace->ether_type = htons((u_short)type); > > /* > * Queue message on interface, and start output if interface > * not yet active. > */ > s = splimp(); > if (IF_QFULL(&ifp->if_snd)) { > IF_DROP(&ifp->if_snd); > error = ENOBUFS; > goto qfull; > } > IF_ENQUEUE(&ifp->if_snd, m); > splx(s); > acestart(ifp->if_unit); > return (mcopy ? looutput(&loif, mcopy, dst) : 0); > qfull: > m0 = m; > splx(s); > bad: > m_freem(m0); > if (mcopy) > m_freem(mcopy); > return (error); 495c589,600 < #else --- > > /* > * Routine to copy from mbuf chain to transmit buffer on the VERSAbus > * If packet size is less than the minimum legal size, > * the buffer is expanded. We probably should zero out the extra > * bytes for security, but that would slow things down. > */ > /*ARGSUSED*/ > aceput(unit, txbuf, m) > int unit; > char *txbuf; > struct mbuf *m; 534d638 < #endif 541a646 > /*ARGSUSED*/ 543c648 < aceget(rxbuf, totlen, off, ifp) --- > aceget(rxbuf, totlen, off0, ifp) 545c650 < int totlen, off; --- > int totlen, off0; 549d653 < register struct mbuf *m; 550a655 > register struct mbuf *m; 552,553c657 < int len; < u_char *packet_end; --- > int len, off = off0; 555,570c659 < rxbuf += sizeof (struct ether_header); < cp = rxbuf; < packet_end = cp + totlen; < if (off) { < off += 2 * sizeof(u_short); < totlen -= 2 *sizeof(u_short); < cp = rxbuf + off; < } < < MGETHDR(m, M_DONTWAIT, MT_DATA); < if (m == 0) < return (0); < m->m_pkthdr.rcvif = ifp; < m->m_pkthdr.len = totlen; < m->m_len = MHLEN; < --- > cp = rxbuf + sizeof (struct ether_header); 572,584c661,674 < if (top) { < MGET(m, M_DONTWAIT, MT_DATA); < if (m == 0) { < m_freem(top); < return (0); < } < m->m_len = MLEN; < } < len = min(totlen, (packet_end - cp)); < if (len >= MINCLSIZE) { < MCLGET(m, M_DONTWAIT); < if (m->m_flags & M_EXT) < m->m_len = len = min(len, MCLBYTES); --- > MGET(m, M_DONTWAIT, MT_DATA); > if (m == 0) > goto bad; > if (off) { > len = totlen - off; > cp = rxbuf + sizeof (struct ether_header) + off; > } else > len = totlen; > if (ifp) > len += sizeof(ifp); > if (len >= NBPG) { > MCLGET(m); > if (m->m_len == CLBYTES) > m->m_len = len = MIN(len, CLBYTES); 586c676 < len = m->m_len; --- > m->m_len = len = MIN(MLEN, len); 587a678,682 > m->m_len = len = MIN(MLEN, len); > m->m_off = MMINOFF; > } > mcp = mtod(m, u_char *); > if (ifp) { 589c684 < * Place initial small packet/header at end of mbuf. --- > * Prepend interface pointer to first mbuf. 591,596c686,689 < if (len < m->m_len) { < if (top == 0 && len + max_linkhdr <= m->m_len) < m->m_data += max_linkhdr; < m->m_len = len; < } else < len = m->m_len; --- > *(mtod(m, struct ifnet **)) = ifp; > mcp += sizeof(ifp); > len -= sizeof(ifp); > ifp = (struct ifnet *)0; 598d690 < mcp = mtod(m, u_char *); 624,626c716,725 < totlen -= len; < if (cp == packet_end) < cp = rxbuf; --- > if (off == 0) { > totlen -= len; > continue; > } > off += len; > if (off == totlen) { > cp = rxbuf + sizeof (struct ether_header); > off = 0; > totlen = off0; > } 628a728,730 > bad: > m_freem(top); > return (0); 670c772 < switch (ifa->ifa_addr->sa_family) { --- > switch (ifa->ifa_addr.sa_family) { diff -r src/sys/tahoeif/if_enp.c ../src/sys/tahoeif/if_enp.c 5,7d4 < * This code is derived from software contributed to Berkeley by < * Computer Consoles Inc. < * 20c17 < * @(#)if_enp.c 7.5 (Berkeley) 4/22/89 --- > * @(#)if_enp.c 7.2 (Berkeley) 6/29/88 78c75 < int enpinit(), enpioctl(), enpreset(), enpoutput(), enpstart(); --- > int enpinit(), enpioctl(), enpreset(), enpoutput(); 132,133c129 < ifp->if_output = ether_output; < ifp->if_start = enpstart; --- > ifp->if_output = enpoutput; 135c131 < ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX; --- > ifp->if_flags = IFF_BROADCAST; 194c190 < enpread(&enp_softc[unit], bcbp); --- > (void) enpread(&enp_softc[unit], bcbp); 208a205 > register struct ifqueue *inq; 227c224 < return; --- > goto setup; 231c228 < return; --- > goto setup; 236c233 < return; --- > goto setup; 241c238,239 < * information to be at the front. --- > * information to be at the front, but we still have to drop > * the type and length which are at the front of any trailer data. 245,246c243,283 < return; < ether_input(&es->es_if, enp, m); --- > goto setup; > if (off) { > struct ifnet *ifp; > > ifp = *(mtod(m, struct ifnet **)); > m->m_off += 2 * sizeof (u_short); > m->m_len -= 2 * sizeof (u_short); > *(mtod(m, struct ifnet **)) = ifp; > } > switch (enp->ether_type) { > > #ifdef INET > case ETHERTYPE_IP: > schednetisr(NETISR_IP); > inq = &ipintrq; > break; > #endif > case ETHERTYPE_ARP: > arpinput(&es->es_ac, m); > goto setup; > > #ifdef NS > case ETHERTYPE_NS: > schednetisr(NETISR_NS); > inq = &nsintrq; > break; > #endif > default: > m_freem(m); > goto setup; > } > if (IF_QFULL(inq)) { > IF_DROP(inq); > m_freem(m); > goto setup; > } > s = splimp(); > IF_ENQUEUE(inq, m); > splx(s); > setup: > return (0); 249c286,295 < enpstart(ifp) --- > /* > * Ethernet output routine. (called by user) > * Encapsulate a packet of type family for the local net. > * Use trailer local net encapsulation if enough data in first > * packet leaves a multiple of 512 bytes of data in remainder. > * If destination is this address or broadcast, send packet to > * loop device to kludge around the fact that 3com interfaces can't > * talk to themselves. > */ > enpoutput(ifp, m0, dst) 250a297,298 > struct mbuf *m0; > struct sockaddr *dst; 251a300,307 > register struct enp_softc *es = &enp_softc[ifp->if_unit]; > register struct mbuf *m = m0; > register struct ether_header *enp; > register int off; > struct mbuf *mcopy = (struct mbuf *)0; > int type, s, error, usetrailers; > u_char edst[6]; > struct in_addr idst; 253,256c309,417 < if (enpput(ifp)) < return (ENOBUFS); < else < return (0); --- > if ((ifp->if_flags & (IFF_UP|IFF_RUNNING)) != (IFF_UP|IFF_RUNNING)) { > error = ENETDOWN; > goto bad; > } > switch (dst->sa_family) { > #ifdef INET > case AF_INET: > idst = ((struct sockaddr_in *)dst)->sin_addr; > if (!arpresolve(&es->es_ac, m, &idst, edst, &usetrailers)) > return (0); /* if not yet resolved */ > if (!bcmp((caddr_t)edst, (caddr_t)etherbroadcastaddr, > sizeof (edst))) > mcopy = m_copy(m, 0, (int)M_COPYALL); > off = ntohs((u_short)mtod(m, struct ip *)->ip_len) - m->m_len; > if (usetrailers && off > 0 && (off & 0x1ff) == 0 && > m->m_off >= MMINOFF + 2 * sizeof (u_short)) { > type = ETHERTYPE_TRAIL + (off>>9); > m->m_off -= 2 * sizeof (u_short); > m->m_len += 2 * sizeof (u_short); > *mtod(m, u_short *) = htons((u_short)ETHERTYPE_IP); > *(mtod(m, u_short *) + 1) = htons((u_short)m->m_len); > goto gottrailertype; > } > type = ETHERTYPE_IP; > off = 0; > goto gottype; > #endif > #ifdef NS > case AF_NS: > bcopy((caddr_t)&(((struct sockaddr_ns *)dst)->sns_addr.x_host), > (caddr_t)edst, sizeof (edst)); > if (!bcmp((caddr_t)edst, (caddr_t)&ns_broadhost, sizeof (edst))) > mcopy = m_copy(m, 0, (int)M_COPYALL); > else if (!bcmp((caddr_t)edst, (caddr_t)&ns_thishost, > sizeof (edst))) > return (looutput(&loif, m, dst)); > type = ETHERTYPE_NS; > off = 0; > goto gottype; > #endif > case AF_UNSPEC: > enp = (struct ether_header *)dst->sa_data; > bcopy((caddr_t)enp->ether_dhost, (caddr_t)edst, sizeof (edst)); > type = enp->ether_type; > goto gottype; > > default: > log(LOG_ERR, "enp%d: can't handle af%d\n", > ifp->if_unit, dst->sa_family); > error = EAFNOSUPPORT; > goto bad; > } > > gottrailertype: > /* > * Packet to be sent as trailer: move first packet > * (control information) to end of chain. > */ > while (m->m_next) > m = m->m_next; > m->m_next = m0; > m = m0->m_next; > m0->m_next = 0; > m0 = m; > > gottype: > /* > * Add local net header. If no space in first mbuf, > * allocate another. > */ > if (m->m_off > MMAXOFF || > MMINOFF + sizeof (struct ether_header) > m->m_off) { > m = m_get(M_DONTWAIT, MT_HEADER); > if (m == 0) { > error = ENOBUFS; > goto bad; > } > m->m_next = m0; > m->m_off = MMINOFF; > m->m_len = sizeof (struct ether_header); > } else { > m->m_off -= sizeof (struct ether_header); > m->m_len += sizeof (struct ether_header); > } > enp = mtod(m, struct ether_header *); > bcopy((caddr_t)edst, (caddr_t)enp->ether_dhost, sizeof (edst)); > bcopy((caddr_t)es->es_addr, (caddr_t)enp->ether_shost, > sizeof (es->es_addr)); > enp->ether_type = htons((u_short)type); > > /* > * Queue message on interface if possible > */ > s = splimp(); > if (enpput(ifp->if_unit, m)) { > error = ENOBUFS; > goto qfull; > } > splx(s); > es->es_if.if_opackets++; > return (mcopy ? looutput(&loif, mcopy, dst) : 0); > qfull: > splx(s); > m0 = m; > bad: > m_freem(m0); > if (mcopy) > m_freem(mcopy); > return (error); 262,263c423,425 < enpput(ifp) < struct ifnet *ifp; --- > enpput(unit, m) > int unit; > struct mbuf *m; 270,271c432 < int unit = ifp->if_unit, ret = 1; < struct mbuf *m; --- > u_char *mcp; 274,283c435,436 < again: < if (ringempty((RING *)&addr->enp_hostfree)) { < /* ifp->if_flags |= IFF_OACTIVE; */ < return (ret); < } < IF_DEQUEUE(&ifp->if_snd, m); < if (m == 0) { < ifp->if_flags &= ~IFF_OACTIVE; < return (0); < } --- > if (ringempty((RING *)&addr->enp_hostfree)) > return (1); 291c444,445 < enpcopy(mtod(mp, u_char *), bp, len); --- > mcp = mtod(mp, u_char *); > enpcopy(mcp, bp, len); 295c449 < bcbp->b_len = max(ETHERMIN+sizeof (struct ether_header), bcbp->b_len); --- > bcbp->b_len = MAX(ETHERMIN+sizeof (struct ether_header), bcbp->b_len); 300,301c454 < ret = 0; < goto again; --- > return (0); 311c464 < enpget(rxbuf, totlen, off, ifp) --- > enpget(rxbuf, totlen, off0, ifp) 313c466 < int totlen, off; --- > int totlen, off0; 316c469 < register u_char *cp; --- > register u_char *cp, *mcp; 319,320c472 < int len; < u_char *packet_end; --- > int len, off = off0; 322,337c474 < rxbuf += sizeof (struct ether_header); < cp = rxbuf; < packet_end = cp + totlen; < if (off) { < off += 2 * sizeof(u_short); < totlen -= 2 *sizeof(u_short); < cp = rxbuf + off; < } < < MGETHDR(m, M_DONTWAIT, MT_DATA); < if (m == 0) < return (0); < m->m_pkthdr.rcvif = ifp; < m->m_pkthdr.len = totlen; < m->m_len = MHLEN; < --- > cp = rxbuf + sizeof (struct ether_header); 339,351c476,487 < if (top) { < MGET(m, M_DONTWAIT, MT_DATA); < if (m == 0) { < m_freem(top); < return (0); < } < m->m_len = MLEN; < } < len = min(totlen, (packet_end - cp)); < if (len >= MINCLSIZE) { < MCLGET(m, M_DONTWAIT); < if (m->m_flags & M_EXT) < m->m_len = len = min(len, MCLBYTES); --- > MGET(m, M_DONTWAIT, MT_DATA); > if (m == 0) > goto bad; > if (off) { > len = totlen - off; > cp = rxbuf + sizeof (struct ether_header) + off; > } else > len = totlen; > if (len >= NBPG) { > MCLGET(m); > if (m->m_len == CLBYTES) > m->m_len = len = MIN(len, CLBYTES); 353c489 < len = m->m_len; --- > m->m_len = len = MIN(MLEN, len); 354a491,495 > m->m_len = len = MIN(MLEN, len); > m->m_off = MMINOFF; > } > mcp = mtod(m, u_char *); > if (ifp) { 356c497 < * Place initial small packet/header at end of mbuf. --- > * Prepend interface pointer to first mbuf. 358,363c499,502 < if (len < m->m_len) { < if (top == 0 && len + max_linkhdr <= m->m_len) < m->m_data += max_linkhdr; < m->m_len = len; < } else < len = m->m_len; --- > *(mtod(m, struct ifnet **)) = ifp; > mcp += sizeof (ifp); > len -= sizeof (ifp); > ifp = (struct ifnet *)0; 365c504,505 < enpcopy(cp, mtod(m, u_char *), (u_int)len); --- > enpcopy(cp, mcp, (u_int)len); > cp += len; 368,371c508,517 < totlen -= len; < cp += len; < if (cp == packet_end) < cp = rxbuf; --- > if (off == 0) { > totlen -= len; > continue; > } > off += len; > if (off == totlen) { > cp = rxbuf + sizeof (struct ether_header); > off = 0; > totlen = off0; > } 373a520,522 > bad: > m_freem(top); > return (0); 420c569 < switch (ifa->ifa_addr->sa_family) { --- > switch (ifa->ifa_addr.sa_family) { Only in src/sys/tahoeif: if_ex.c Only in src/sys/tahoeif: if_exreg.h diff -r src/sys/tahoestand/Makefile ../src/sys/tahoestand/Makefile 17c17 < # @(#)Makefile 7.10 (Berkeley) 5/1/89 --- > # @(#)Makefile 7.9 (Berkeley) 7/9/88 36,37c36,37 < srt0.c sys.c vd.c cy.c hd.c < DRIVERS=cy.o vd.o hd.o --- > srt0.c sys.c vd.c cy.c hdc.c > DRIVERS=cy.o vd.o hdc.o 42c42 < ${SUBDIR}: --- > ${SUBDIR}: FRC 97c97 < clean: --- > clean: FRC 101,105c101 < cleandir: clean < rm -f ${MAN} tags .depend < for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} cleandir); done < < depend: ${SRCS} --- > depend: ${SRCS} FRC 109c105 < install: --- > install: FRC 116,118c112,114 < # for i in ${SUBDIR}; do \ < # (cd $$i; make ${MFLAGS} DESTDIR=${DESTDIR} install) \ < # done --- > for i in ${SUBDIR}; do \ > (cd $$i; make ${MFLAGS} DESTDIR=${DESTDIR} install) \ > done 120c116 < tags: ${SRCS} --- > tags: ${SRCS} FRC 122a119,179 > > FRC: > > # DO NOT DELETE THIS LINE -- mkdep uses it. > # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. > > boot.o: boot.c ../machine/mtpr.h ../h/param.h /usr/include/sys/types.h > boot.o: ../h/signal.h /usr/include/machine/trap.h > boot.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h > boot.o: ../h/inode.h ../h/fs.h ../h/vm.h /usr/include/sys/vmparam.h > boot.o: /usr/include/machine/vmparam.h /usr/include/sys/vmmac.h > boot.o: /usr/include/sys/vmmeter.h /usr/include/sys/vmsystm.h ../stand/saio.h > boot.o: ../stand/saioctl.h ../stand/saerrno.h ../h/reboot.h > boot.o: /usr/include/a.out.h /usr/include/sys/exec.h > cat.o: ../stand/cat.c > conf.o: conf.c ../h/param.h /usr/include/sys/types.h ../h/signal.h > conf.o: /usr/include/machine/trap.h /usr/include/machine/machparam.h > conf.o: /usr/include/machine/endian.h ../h/inode.h ../h/fs.h ../stand/saio.h > conf.o: ../stand/saioctl.h ../stand/saerrno.h > copy.o: ../stand/copy.c > dev.o: ../stand/dev.c ../h/param.h /usr/include/sys/types.h ../h/signal.h > dev.o: /usr/include/machine/trap.h /usr/include/machine/machparam.h > dev.o: /usr/include/machine/endian.h ../h/inode.h ../h/fs.h ../stand/saio.h > dev.o: ../stand/saioctl.h ../stand/saerrno.h > getfile.o: ../stand/getfile.c ../h/param.h /usr/include/sys/types.h > getfile.o: ../h/signal.h /usr/include/machine/trap.h > getfile.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h > getfile.o: ../h/inode.h ../h/fs.h ../stand/saio.h ../stand/saioctl.h > getfile.o: ../stand/saerrno.h > gets.o: ../stand/gets.c > ls.o: ../stand/ls.c ../h/param.h /usr/include/sys/types.h ../h/signal.h > ls.o: /usr/include/machine/trap.h /usr/include/machine/machparam.h > ls.o: /usr/include/machine/endian.h ../h/inode.h ../h/dir.h ../h/fs.h > ls.o: ../stand/saio.h ../stand/saioctl.h ../stand/saerrno.h > prf.o: prf.c ../machine/mtpr.h ../h/param.h /usr/include/sys/types.h > prf.o: ../h/signal.h /usr/include/machine/trap.h > prf.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h > prf.o: ../tahoe/cp.h > srt0.o: srt0.c ../machine/mtpr.h > sys.o: ../stand/sys.c ../h/param.h /usr/include/sys/types.h ../h/signal.h > sys.o: /usr/include/machine/trap.h /usr/include/machine/machparam.h > sys.o: /usr/include/machine/endian.h ../h/inode.h ../h/fs.h ../h/dir.h > sys.o: ../h/reboot.h ../stand/saio.h ../stand/saioctl.h ../stand/saerrno.h > vd.o: vd.c ../machine/mtpr.h ../h/param.h /usr/include/sys/types.h > vd.o: ../h/signal.h /usr/include/machine/trap.h > vd.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h > vd.o: ../h/inode.h ../h/fs.h ../h/buf.h ../h/disklabel.h ../stand/saio.h > vd.o: ../stand/saioctl.h ../stand/saerrno.h ../tahoevba/vdreg.h > vd.o: ../tahoevba/vbaparam.h > cy.o: cy.c ../machine/pte.h ../machine/mtpr.h ../h/param.h > cy.o: /usr/include/sys/types.h ../h/signal.h /usr/include/machine/trap.h > cy.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h > cy.o: ../h/inode.h ../h/fs.h ../stand/saio.h ../stand/saioctl.h > cy.o: ../stand/saerrno.h ../tahoevba/cyreg.h ../tahoevba/vbaparam.h > hdc.o: hdc.c /usr/include/machine/mtpr.h ../h/param.h ../h/types.h > hdc.o: ../h/signal.h /usr/include/machine/trap.h ../h/../machine/machparam.h > hdc.o: /usr/include/machine/endian.h ../h/inode.h ../h/fs.h ../h/buf.h > hdc.o: ../h/ioctl.h ../h/ttychars.h ../h/ttydev.h ../h/disklabel.h > hdc.o: ../stand/saio.h ../stand/saioctl.h ../stand/saerrno.h ../tahoevba/hdc.h > > # IF YOU PUT ANYTHING HERE IT WILL GO AWAY Only in src/sys/tahoestand: boot diff -r src/sys/tahoestand/boot.c ../src/sys/tahoestand/boot.c 1c1 < /* boot.c 7.1 89/05/01 */ --- > /* boot.c 1.7 88/03/04 */ 3c3 < #include "machine/mtpr.h" --- > #include "../machine/mtpr.h" 31c31 < int io = 0, retry, type; --- > int io, retry, type; 38a39 > printf("\nBoot\n"); 51,52d51 < if (io >= 0) < printf("\nBoot"); 82,83c81,84 < if (read(io, (char *)&x, sizeof(x)) != sizeof(x) || N_BADMAG(x)) { < printf("bad magic #\n"); --- > i = read(io, (char *)&x, sizeof x); > if (i != sizeof x || > (x.a_magic != 0407 && x.a_magic != 0413 && x.a_magic != 0410)) { > printf("Bad format\n"); 86,87c87,88 < printf("%ld", x.a_text); < if (x.a_magic == ZMAGIC && lseek(io, 0x400, 0) == -1) --- > printf("%d", x.a_text); > if (x.a_magic == 0413 && lseek(io, 0x400, 0) == -1) 92c93 < if (x.a_magic == ZMAGIC || x.a_magic == NMAGIC) --- > if (x.a_magic == 0413 || x.a_magic == 0410) 95c96 < printf("+%ld", x.a_data); --- > printf("+%d", x.a_data); 99c100 < printf("+%ld", x.a_bss); --- > printf("+%d", x.a_bss); 105c106 < printf("[+%ld", x.a_syms); --- > printf("[+%d", x.a_syms); 125c126 < printf(" start 0x%lx\n", x.a_entry); --- > printf(" start 0x%x\n", x.a_entry); 132c133 < printf("short read\n"); --- > printf("Short read\n"); Only in src/sys/tahoestand: boot.o Only in src/sys/tahoestand: bootsrt0.o Only in src/sys/tahoestand: cat Only in src/sys/tahoestand: cat.o Only in src/sys/tahoestand: conf.o Only in src/sys/tahoestand: copy Only in src/sys/tahoestand: copy.o diff -r src/sys/tahoestand/cy.c ../src/sys/tahoestand/cy.c 1c1 < /* cy.c 7.8 89/04/25 */ --- > /* cy.c 7.7 88/05/24 */ 6,7c6,7 < #include "machine/pte.h" < #include "machine/mtpr.h" --- > #include "../machine/pte.h" > #include "../machine/mtpr.h" Only in src/sys/tahoestand: cy.o Only in src/sys/tahoestand: dev.o Only in src/sys/tahoestand: getfile.o Only in src/sys/tahoestand: gets.o Only in src/sys/tahoestand: hd.c Only in src/sys/tahoestand: hd.o Only in ../src/sys/tahoestand: hdc.c Only in src/sys/tahoestand: libsa.a Only in src/sys/tahoestand: ls Only in src/sys/tahoestand: ls.o Only in src/sys/tahoestand: machdep.o Only in src/sys/tahoestand: ncy.c Only in src/sys/tahoestand: ncy.o diff -r src/sys/tahoestand/prf.c ../src/sys/tahoestand/prf.c 1c1 < /* prf.c 1.5 89/04/25 */ --- > /* prf.c 1.4 88/03/03 */ 4c4 < #include "machine/mtpr.h" --- > #include "../machine/mtpr.h" Only in src/sys/tahoestand: prf.o Only in src/sys/tahoestand: printn.o diff -r src/sys/tahoestand/srt0.c ../src/sys/tahoestand/srt0.c 1c1 < /* srt0.c 1.7 89/04/25 */ --- > /* srt0.c 1.6 87/04/02 */ 3c3 < #include "machine/mtpr.h" --- > #include "../machine/mtpr.h" Only in src/sys/tahoestand: srt0.o Only in src/sys/tahoestand: sys.o diff -r src/sys/tahoestand/vd.c ../src/sys/tahoestand/vd.c 1,21c1 < /* < * Copyright (c) 1988 The Regents of the University of California. < * All rights reserved. < * < * This code is derived from software contributed to Berkeley by < * Computer Consoles Inc. < * < * Redistribution and use in source and binary forms are permitted < * provided that the above copyright notice and this paragraph are < * duplicated in all such forms and that any documentation, < * advertising materials, and other materials related to such < * distribution and use acknowledge that the software was developed < * by the University of California, Berkeley. The name of the < * University may not be used to endorse or promote products derived < * from this software without specific prior written permission. < * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR < * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED < * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. < * < * @(#)vd.c 7.13 (Berkeley) 4/25/89 < */ --- > /* vd.c 7.10 88/06/14 */ 26c6 < #include "machine/mtpr.h" --- > #include "../machine/mtpr.h" Only in src/sys/tahoestand: vd.o Only in src/sys/tahoestand/vdformat: Errs diff -r src/sys/tahoestand/vdformat/Makefile ../src/sys/tahoestand/vdformat/Makefile 17c17 < # @(#)Makefile 1.10 (Berkeley) 10/28/88 --- > # @(#)Makefile 1.8 (Berkeley) 7/9/88 32d31 < MAN= vdformat.0 42,44d40 < cleandir: clean < rm -f ${MAN} tags .depend < 51c47 < install: ${MAN} --- > install: 53d48 < install -o bin -g bin -m 444 ${MAN} ${DESTDIR}/usr/man/cat8/tahoe 55c50 < depend: ${SRCS} --- > depend: 58c53 < tags: ${SRCS} --- > tags: 59a55,186 > > # DO NOT DELETE THIS LINE -- mkdep uses it. > # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. > > cmd.o: cmd.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h ../../h/param.h > cmd.o: /usr/include/sys/types.h ../../h/signal.h ../../machine/trap.h > cmd.o: ../../machine/machparam.h ../../h/buf.h ../../h/disklabel.h > cmd.o: ../../h/inode.h ../../h/fs.h ../../tahoevba/vbaparam.h > cmd.o: ../../tahoevba/vdreg.h ../../tahoe/cp.h cmd.h > cons.o: cons.c ../../h/../machine/mtpr.h ../../h/param.h > cons.o: /usr/include/sys/types.h ../../h/signal.h ../../machine/trap.h > cons.o: ../../machine/machparam.h ../../h/../tahoe/cp.h > config.o: config.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h > config.o: ../../h/param.h /usr/include/sys/types.h ../../h/signal.h > config.o: ../../machine/trap.h ../../machine/machparam.h ../../h/buf.h > config.o: ../../h/disklabel.h ../../h/inode.h ../../h/fs.h > config.o: ../../tahoevba/vbaparam.h ../../tahoevba/vdreg.h ../../tahoe/cp.h > correct.o: correct.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h > correct.o: ../../h/param.h /usr/include/sys/types.h ../../h/signal.h > correct.o: ../../machine/trap.h ../../machine/machparam.h ../../h/buf.h > correct.o: ../../h/disklabel.h ../../h/inode.h ../../h/fs.h > correct.o: ../../tahoevba/vbaparam.h ../../tahoevba/vdreg.h ../../tahoe/cp.h > correct.o: cmd.h > delete.o: delete.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h > delete.o: ../../h/param.h /usr/include/sys/types.h ../../h/signal.h > delete.o: ../../machine/trap.h ../../machine/machparam.h ../../h/buf.h > delete.o: ../../h/disklabel.h ../../h/inode.h ../../h/fs.h > delete.o: ../../tahoevba/vbaparam.h ../../tahoevba/vdreg.h ../../tahoe/cp.h > delete.o: cmd.h > disklabel.o: disklabel.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h > disklabel.o: ../../h/param.h /usr/include/sys/types.h ../../h/signal.h > disklabel.o: ../../machine/trap.h ../../machine/machparam.h ../../h/buf.h > disklabel.o: ../../h/disklabel.h ../../h/inode.h ../../h/fs.h > disklabel.o: ../../tahoevba/vbaparam.h ../../tahoevba/vdreg.h ../../tahoe/cp.h > disklabel.o: cmd.h > exercise.o: exercise.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h > exercise.o: ../../h/param.h /usr/include/sys/types.h ../../h/signal.h > exercise.o: ../../machine/trap.h ../../machine/machparam.h ../../h/buf.h > exercise.o: ../../h/disklabel.h ../../h/inode.h ../../h/fs.h > exercise.o: ../../tahoevba/vbaparam.h ../../tahoevba/vdreg.h ../../tahoe/cp.h > help.o: help.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h ../../h/param.h > help.o: /usr/include/sys/types.h ../../h/signal.h ../../machine/trap.h > help.o: ../../machine/machparam.h ../../h/buf.h ../../h/disklabel.h > help.o: ../../h/inode.h ../../h/fs.h ../../tahoevba/vbaparam.h > help.o: ../../tahoevba/vdreg.h ../../tahoe/cp.h cmd.h > format.o: format.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h > format.o: ../../h/param.h /usr/include/sys/types.h ../../h/signal.h > format.o: ../../machine/trap.h ../../machine/machparam.h ../../h/buf.h > format.o: ../../h/disklabel.h ../../h/inode.h ../../h/fs.h > format.o: ../../tahoevba/vbaparam.h ../../tahoevba/vdreg.h ../../tahoe/cp.h > info.o: info.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h ../../h/param.h > info.o: /usr/include/sys/types.h ../../h/signal.h ../../machine/trap.h > info.o: ../../machine/machparam.h ../../h/buf.h ../../h/disklabel.h > info.o: ../../h/inode.h ../../h/fs.h ../../tahoevba/vbaparam.h > info.o: ../../tahoevba/vdreg.h ../../tahoe/cp.h > io.o: io.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h ../../h/param.h > io.o: /usr/include/sys/types.h ../../h/signal.h ../../machine/trap.h > io.o: ../../machine/machparam.h ../../h/buf.h ../../h/disklabel.h > io.o: ../../h/inode.h ../../h/fs.h ../../tahoevba/vbaparam.h > io.o: ../../tahoevba/vdreg.h ../../tahoe/cp.h cmd.h > list.o: list.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h ../../h/param.h > list.o: /usr/include/sys/types.h ../../h/signal.h ../../machine/trap.h > list.o: ../../machine/machparam.h ../../h/buf.h ../../h/disklabel.h > list.o: ../../h/inode.h ../../h/fs.h ../../tahoevba/vbaparam.h > list.o: ../../tahoevba/vdreg.h ../../tahoe/cp.h > maps.o: maps.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h ../../h/param.h > maps.o: /usr/include/sys/types.h ../../h/signal.h ../../machine/trap.h > maps.o: ../../machine/machparam.h ../../h/buf.h ../../h/disklabel.h > maps.o: ../../h/inode.h ../../h/fs.h ../../tahoevba/vbaparam.h > maps.o: ../../tahoevba/vdreg.h ../../tahoe/cp.h > proc_cmd.o: proc_cmd.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h > proc_cmd.o: ../../h/param.h /usr/include/sys/types.h ../../h/signal.h > proc_cmd.o: ../../machine/trap.h ../../machine/machparam.h ../../h/buf.h > proc_cmd.o: ../../h/disklabel.h ../../h/inode.h ../../h/fs.h > proc_cmd.o: ../../tahoevba/vbaparam.h ../../tahoevba/vdreg.h ../../tahoe/cp.h > proc_cmd.o: cmd.h > profile.o: profile.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h > profile.o: ../../h/param.h /usr/include/sys/types.h ../../h/signal.h > profile.o: ../../machine/trap.h ../../machine/machparam.h ../../h/buf.h > profile.o: ../../h/disklabel.h ../../h/inode.h ../../h/fs.h > profile.o: ../../tahoevba/vbaparam.h ../../tahoevba/vdreg.h ../../tahoe/cp.h > relocate.o: relocate.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h > relocate.o: ../../h/param.h /usr/include/sys/types.h ../../h/signal.h > relocate.o: ../../machine/trap.h ../../machine/machparam.h ../../h/buf.h > relocate.o: ../../h/disklabel.h ../../h/inode.h ../../h/fs.h > relocate.o: ../../tahoevba/vbaparam.h ../../tahoevba/vdreg.h ../../tahoe/cp.h > relocate.o: cmd.h > reset.o: reset.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h > reset.o: ../../h/param.h /usr/include/sys/types.h ../../h/signal.h > reset.o: ../../machine/trap.h ../../machine/machparam.h ../../h/buf.h > reset.o: ../../h/disklabel.h ../../h/inode.h ../../h/fs.h > reset.o: ../../tahoevba/vbaparam.h ../../tahoevba/vdreg.h ../../tahoe/cp.h > smd.o: smd.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h ../../h/param.h > smd.o: /usr/include/sys/types.h ../../h/signal.h ../../machine/trap.h > smd.o: ../../machine/machparam.h ../../h/buf.h ../../h/disklabel.h > smd.o: ../../h/inode.h ../../h/fs.h ../../tahoevba/vbaparam.h > smd.o: ../../tahoevba/vdreg.h ../../tahoe/cp.h > smd_e.o: smd_e.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h > smd_e.o: ../../h/param.h /usr/include/sys/types.h ../../h/signal.h > smd_e.o: ../../machine/trap.h ../../machine/machparam.h ../../h/buf.h > smd_e.o: ../../h/disklabel.h ../../h/inode.h ../../h/fs.h > smd_e.o: ../../tahoevba/vbaparam.h ../../tahoevba/vdreg.h ../../tahoe/cp.h > start.o: start.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h > start.o: ../../h/param.h /usr/include/sys/types.h ../../h/signal.h > start.o: ../../machine/trap.h ../../machine/machparam.h ../../h/buf.h > start.o: ../../h/disklabel.h ../../h/inode.h ../../h/fs.h > start.o: ../../tahoevba/vbaparam.h ../../tahoevba/vdreg.h ../../tahoe/cp.h > status.o: status.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h > status.o: ../../h/param.h /usr/include/sys/types.h ../../h/signal.h > status.o: ../../machine/trap.h ../../machine/machparam.h ../../h/buf.h > status.o: ../../h/disklabel.h ../../h/inode.h ../../h/fs.h > status.o: ../../tahoevba/vbaparam.h ../../tahoevba/vdreg.h ../../tahoe/cp.h > strpbrk.o: strpbrk.c > strspn.o: strspn.c > strtok.o: strtok.c > util.o: util.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h ../../h/param.h > util.o: /usr/include/sys/types.h ../../h/signal.h ../../machine/trap.h > util.o: ../../machine/machparam.h ../../h/buf.h ../../h/disklabel.h > util.o: ../../h/inode.h ../../h/fs.h ../../tahoevba/vbaparam.h > util.o: ../../tahoevba/vdreg.h ../../tahoe/cp.h cmd.h > vdfmt.o: vdfmt.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h > vdfmt.o: ../../h/param.h /usr/include/sys/types.h ../../h/signal.h > vdfmt.o: ../../machine/trap.h ../../machine/machparam.h ../../h/buf.h > vdfmt.o: ../../h/disklabel.h ../../h/inode.h ../../h/fs.h > vdfmt.o: ../../tahoevba/vbaparam.h ../../tahoevba/vdreg.h ../../tahoe/cp.h > verify.o: verify.c vdfmt.h /usr/include/setjmp.h ../../tahoe/mtpr.h > verify.o: ../../h/param.h /usr/include/sys/types.h ../../h/signal.h > verify.o: ../../machine/trap.h ../../machine/machparam.h ../../h/buf.h > verify.o: ../../h/disklabel.h ../../h/inode.h ../../h/fs.h > verify.o: ../../tahoevba/vbaparam.h ../../tahoevba/vdreg.h ../../tahoe/cp.h > > # IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff -r src/sys/tahoestand/vdformat/cons.c ../src/sys/tahoestand/vdformat/cons.c 1c1 < /* cons.c 1.2 89/04/25 */ --- > /* cons.c 1.1 88/06/02 */ 7c7 < #include "machine/mtpr.h" --- > #include "../machine/mtpr.h" diff -r src/sys/tahoestand/vdformat/disklabel.c ../src/sys/tahoestand/vdformat/disklabel.c 2c2 < static char sccsid[] = "%W% (Berkeley/CCI) %G%"; --- > static char sccsid[] = "@(#)disklabel.c 1.2 (Berkeley/CCI) 6/7/88"; 69c69 < while (lp->d_traksize == 0) { --- > while (op_mask & FORMAT_OP && lp->d_traksize == 0) { diff -r src/sys/tahoestand/vdformat/format.c ../src/sys/tahoestand/vdformat/format.c 37d36 < #ifdef notdef 47d45 < #endif 51d48 < #ifdef notdef 56d52 < #endif 94d89 < /* 96,97c91 < */ < dskaddr.cylinder = 84; --- > dskaddr.cylinder = cyl; 101d94 < /* 103d95 < */ 164c156 < dcb.devselect = (char)cur.drive | lab->d_devflags; --- > dcb.devselect = (char)cur.drive; 167d158 < printf("format %d @ %d/%d/%d\n", count, dskaddr->cylinder, dskaddr->track, dskaddr->sector); Only in src/sys/tahoestand/vdformat: format.c.save diff -r src/sys/tahoestand/vdformat/info.c ../src/sys/tahoestand/vdformat/info.c 2c2 < static char sccsid[] = "%W% (Berkeley/CCI) %G%"; --- > static char sccsid[] = "@(#)info.c 1.2 (Berkeley/CCI) 11/23/87"; 21,22c21,23 < if(has_map == true) { < print("Module serial number is %d.\n", bad_map->bs_id); --- > print("Module serial number is %d.\n", bad_map->bs_id); > print("Drive type is %s.\n", lab->d_typename); > if(has_map == true) 24c25 < } else --- > else diff -r src/sys/tahoestand/vdformat/maps.c ../src/sys/tahoestand/vdformat/maps.c 2c2 < static char sccsid[] = "%W% (Berkeley/CCI) %G%"; --- > static char sccsid[] = "@(#)maps.c 1.7 (Berkeley/CCI) 6/7/88"; 42d41 < bs_map *map; 45d43 < bs_map_space.bs_magic = BSMAGIC; 46a45,46 > for(i=0; i < 100; i++) > scratch[i] = -1; 50,51c50,51 < if(access_dsk((char *)bs_map_space.space, < &dskaddr, VDOP_RD, lab->d_nsectors, 1) & VDERR_HARD) --- > if(access_dsk((char *)save,&dskaddr, VDOP_RD, > lab->d_nsectors,1)& VDERR_HARD) 53,65c53,54 < bad_map = (bs_map *)bs_map_space.space; < /* < * If this doesn't look like a new-style map, < * but (as an old-style map) bs_count and bs_max are sensible, < * munge pointer to prepend fields missing in old map. < */ < if (bad_map->bs_magic != BSMAGIC && < bad_map->bs_cksum <= MAX_FLAWMAP(bytes_trk) /* bs_count */ < && bad_map->bs_id <= MAX_FLAWMAP(bytes_trk)) /* bs_max */ < bad_map = (bs_map *)&bs_map_space; < if (trk > 0 && < bcmp((char *)bs_map_space.space, < (char *)save, bytes_trk) == 0) { --- > if(bcmp((char *)scratch, (char *)save, bytes_trk) == true) { > bcopy((char *)save, (char *)bad_map, bytes_trk); 82a72,74 > bzero(bad_map, bytes_trk); > bad_map->bs_id = 0; > bad_map->bs_max = MAX_FLAWS; 84c76 < bcopy((char *)bs_map_space.space, (char *)save, bytes_trk); --- > bcopy((char *)save, (char *)scratch, bytes_trk); 86,90d77 < bad_map = (bs_map *)bs_map_space.space; < bzero(bad_map, bytes_trk); < bad_map->bs_magic = BSMAGIC; < bad_map->bs_id = 0; < bad_map->bs_max = MAX_FLAWS; 108d94 < bad_map->bs_magic = BSMAGIC; 292c278 < bcopy((char *)bad_map + (sec * lab->d_secsize), --- > bcopy((char *)bs_map_space + (sec * lab->d_secsize), 524,526d509 < if(bad_map->bs_magic != BSMAGIC) < print("Bad-sector map magic number wrong! (%x != %x)\n", < bad_map->bs_magic, BSMAGIC); 531,533c514,516 < print("The following %d sector%s known to be bad:\n", < bad_map->bs_count, (bad_map->bs_count == 1) ? " is" : "s are"); < exdent(0); --- > print("The following sector%s known to be bad:\n", > (bad_map->bs_count == 1) ? " is" : "s are"); > indent(); 536,537c519,520 < print("%c %d cn %d tn %d sn %d pos %d len %d ", < errloc.err_stat & HEADER_ERROR ? 'T' : 'S', --- > print("%s %d cn %d tn %d sn %d pos %d len %d ", > errloc.err_stat & HEADER_ERROR ? "Track@" : "Sector", 557a541 > exdent(1); Only in src/sys/tahoestand/vdformat: old Only in src/sys/tahoestand/vdformat: online diff -r src/sys/tahoestand/vdformat/relocate.c ../src/sys/tahoestand/vdformat/relocate.c 2c2 < static char sccsid[] = "%W% (Berkeley/CCI) %G%"; --- > static char sccsid[] = "@(#)relocate.c 1.6 (Berkeley/CCI) 6/7/88"; 73c73 < dskaddr.track = lab->d_ntracks - 1; --- > dskaddr.cylinder = lab->d_ntracks - 1; diff -r src/sys/tahoestand/vdformat/vdfmt.c ../src/sys/tahoestand/vdformat/vdfmt.c 2c2 < static char sccsid[] = "%W% (Berkeley/CCI) %G%"; --- > static char sccsid[] = "@(#)vdfmt.c 1.6 (Berkeley/CCI) 6/7/88"; 14c14 < print("VDFORMAT Berkeley Version %I% \n\n"); --- > print("VDFORMAT Berkeley Version 1.6 \n\n"); 172c172 < bad_map = (bs_map *)bs_map_space.space; --- > bad_map = (bs_map *)bs_map_space; diff -r src/sys/tahoestand/vdformat/vdfmt.h ../src/sys/tahoestand/vdformat/vdfmt.h 1c1 < /* %M% %I% %E% */ --- > /* vdfmt.h 1.7 88/06/07 */ 219,220d218 < unsigned int bs_magic; /* magic (0x12344321) */ < unsigned int bs_cksum; /* checksum (0) */ 227,229c225 < #define MAX_FLAWMAP(x) (((x) - sizeof(bs_map)) / sizeof(bs_entry)) < #define MAX_FLAWS MAX_FLAWMAP(MAXTRKSIZ*sizeof(long)) < #define BSMAGIC 0x12344321 --- > #define MAX_FLAWS (((MAXTRKSIZ*sizeof(long))-sizeof(bs_map))/sizeof(bs_entry)) 231,235c227 < struct { < unsigned int bs_magic; /* magic (0x12344321) */ < unsigned int bs_cksum; /* checksum (0) */ < long space[MAXTRKSIZ]; < } bs_map_space; --- > long bs_map_space[MAXTRKSIZ]; Only in src/sys/tahoestand/vdformat: vdformat.8 Only in src/sys/tahoevba: hd.c Only in src/sys/tahoevba: hdreg.h diff -r src/sys/tahoevba/vba.c ../src/sys/tahoevba/vba.c 17c17 < * @(#)vba.c 7.4 (Berkeley) 5/5/89 --- > * @(#)vba.c 7.2 (Berkeley) 6/29/88 27a28 > #include "dir.h" 31d31 < #include "dir.h" 233c233 < * This code belongs half-way between {hd,vd}.c and this file. --- > * This code belongs half-way between vd.c and this file. 235,237d234 < < #include "dk.h" < #if NVD > 0 240c237 < vd_sgsetup(bp, vb, sg) --- > vba_sgsetup(bp, vb, sg) 249a247 > o = (int)bp->b_un.b_addr & PGOFSET; 261d258 < o = (int)bp->b_un.b_addr & PGOFSET; 263c260 < sg->start_addr.wcount = i >> 1; --- > sg->start_addr.wcount = (i + 1) >> 1; 268c265 < i = i >> 1; --- > i = (i + 1) >> 1; 277,324d273 < #endif < < #include "hd.h" < #if NHD > 0 < #include "hdreg.h" < < hd_sgsetup(bp, vb, sg) < register struct buf *bp; < struct vb_buf *vb; < struct chain *sg; < { < register struct pte *spte; < register struct addr_chain *adr; < register int i, cnt; < int o; < < if (bp->b_bcount > HDC_MAXBC || < bp->b_bcount % sizeof(long) - 1 || < (u_int)bp->b_un.b_addr % sizeof(long) - 1) < return(0); < < vb->vb_iskernel = (((int)bp->b_un.b_addr & KERNBASE) == KERNBASE); < vb->vb_copy = 0; < if (vb->vb_iskernel) { < spte = kvtopte(bp->b_un.b_addr); < vbastat.k_sg++; < } else { < spte = vtopte((bp->b_flags&B_DIRTY) ? &proc[2] : bp->b_proc, < btop(bp->b_un.b_addr)); < vbastat.u_sg++; < } < < o = (int)bp->b_un.b_addr & PGOFSET; < i = min(NBPG - o, bp->b_bcount); < sg->wcount = i >> 2; < sg->memadr = ((spte++)->pg_pfnum << PGSHIFT) + o; < cnt = 0; < for (i = (bp->b_bcount - i) >> 2; i > 0; i -= NBPG / sizeof(long)) { < if (++cnt == HDC_MAXCHAIN) < return(0); < sg->wcount |= LWC_DATA_CHAIN; < ++sg; < sg->wcount = imin(i, NBPG / sizeof(long)); < sg->memadr = (spte++)->pg_pfnum << PGSHIFT; < } < return(1); < } < #endif diff -r src/sys/tahoevba/vx.c ../src/sys/tahoevba/vx.c 50d49 < #include "../tahoevba/vbaparam.h" 120c119 < register struct vxdevice *vp; --- > register struct vxdevice *vp = (struct vxdevice *)reg; 122d120 < struct pte *dummypte; 128,132d125 < if (!VBIOMAPPED(reg) && !vbmemalloc(16, reg, &dummypte, ®)) { < printf("vx%d: vbmemalloc failed.\n", vi->ui_unit); < return(0); < } < vp = (struct vxdevice *)reg; 135,136d127 < printf("vx%d: %x\n", vi->ui_unit, reg); < vi->ui_addr = reg; Only in src/sys/tahoevba: vx.c.1 Only in src/sys/tahoevba: vx.c.okeeffe