Compare commits

...
26 changed files with 448 additions and 250 deletions

No files matched your search

+1 -1
View File
@@ -45,7 +45,7 @@ fi
cd /tmp
# This is not safe, you need to decide what is appropriate for your
# system. Leave a warning note for now.
echo "You did not enable the cleaning of /tmp in /etc/daily!"
echo "You did not enable the cleaning of / in /etc/daily!"
#
#find / ! -fstype local -a -prune -o \
# \( -name '[#,]*' -o -name '.#*' -o -name a.out -o -name *.core \
+50 -38
View File
@@ -78,8 +78,10 @@ int line_edit(WINDOW* dialog, int box_y, int box_x, int flen, int box_width, cht
key = '\n';
goto ret;
case '\025':
case '\030':
kill_it:
memset(instr, 0, sizeof(instr));
case '\001':
case KEY_HOME:
input_x = scroll = 0;
wmove(dialog, box_y, box_x);
@@ -89,9 +91,10 @@ int line_edit(WINDOW* dialog, int box_y, int box_x, int flen, int box_width, cht
wattrset(dialog, old_attr);
max_len = MIN(len,box_width);
for ( ; i < max_len; i++)
waddch(dialog, instr[i]);
waddch(dialog, instr[i] ? instr[i] : ' ');
wmove(dialog, box_y, box_x);
continue;
case '\005':
case KEY_END:
for (i = strlen(instr) - 1; i >= scroll + input_x && instr[i] == ' '; i--)
instr[i] = '\0';
@@ -105,9 +108,10 @@ int line_edit(WINDOW* dialog, int box_y, int box_x, int flen, int box_width, cht
wattrset(dialog, old_attr);
max_len = MIN(len-scroll,box_width);
for ( ; i < max_len; i++)
waddch(dialog, instr[scroll+i]);
waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' ');
wmove(dialog, box_y, input_x + box_x);
continue;
case '\002':
case KEY_LEFT:
if (input_x || scroll) {
if (!input_x) {
@@ -120,14 +124,16 @@ int line_edit(WINDOW* dialog, int box_y, int box_x, int flen, int box_width, cht
wattrset(dialog, old_attr);
max_len = MIN(len-scroll,box_width);
for ( ; i < max_len; i++)
waddch(dialog, instr[scroll+i]);
waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' ');
input_x = oldscroll - 1 - scroll;
}
else
input_x--;
wmove(dialog, box_y, input_x + box_x);
}
} else
beep();
continue;
case '\006':
case KEY_RIGHT:
if ( scroll+input_x < MAX_LEN
&& (flen < 0 || scroll+input_x < flen)
@@ -143,7 +149,7 @@ int line_edit(WINDOW* dialog, int box_y, int box_x, int flen, int box_width, cht
wattrset(dialog, old_attr);
max_len = MIN(len-scroll,box_width);
for ( ; i < max_len; i++)
waddch(dialog, instr[scroll+i]);
waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' ');
wmove(dialog, box_y, box_x + box_width - 1);
}
else {
@@ -157,32 +163,48 @@ int line_edit(WINDOW* dialog, int box_y, int box_x, int flen, int box_width, cht
case '\b':
case '\177':
case KEY_BACKSPACE:
case KEY_DC:
erase_it:
if (input_x || scroll) {
i = strlen(instr);
memmove(instr+scroll+input_x-1, instr+scroll+input_x, i-scroll+input_x+1);
memmove(instr+scroll+input_x-1, instr+scroll+input_x, i-(scroll+input_x)+1);
if (!input_x) {
int oldscroll = scroll;
scroll = scroll < box_width-1 ? 0 : scroll-(box_width-1);
wmove(dialog, box_y, box_x);
fix_len = flen >= 0 ? MIN(flen-scroll,box_width) : box_width;
for (i = 0; i < fix_len; i++)
waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' ');
input_x = oldscroll - 1 - scroll;
}
else
input_x--;
wmove(dialog, box_y, input_x + box_x);
wmove(dialog, box_y, box_x);
fix_len = flen >= 0 ? MIN(flen-scroll,box_width) : box_width;
for (i = input_x; i < fix_len; i++)
for (i = 0; i < fix_len; i++)
waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' ');
wattrset(dialog, old_attr);
max_len = MIN(len-scroll,box_width);
for ( ; i < max_len; i++)
waddch(dialog, instr[scroll+i]);
waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' ');
wmove(dialog, box_y, input_x + box_x);
} else
beep();
continue;
case '\004':
case KEY_DC:
for (i = strlen(instr) - 1; i >= scroll + input_x && instr[i] == ' '; i--)
instr[i] = '\0';
i++;
if (i == 0) {
beep();
continue;
}
memmove(instr+scroll+input_x, instr+scroll+input_x+1, i-(scroll+input_x));
wmove(dialog, box_y, box_x);
fix_len = flen >= 0 ? MIN(flen-scroll,box_width) : box_width;
for (i = 0; i < fix_len; i++)
waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' ');
wattrset(dialog, old_attr);
max_len = MIN(len-scroll,box_width);
for ( ; i < max_len; i++)
waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' ');
wmove(dialog, box_y, input_x + box_x);
continue;
default:
if (CCEQ(key, erase_char))
@@ -195,31 +217,21 @@ int line_edit(WINDOW* dialog, int box_y, int box_x, int flen, int box_width, cht
i++;
if (i < MAX_LEN && (flen < 0 || scroll+input_x < flen)) {
if (flen < 0 || i < flen)
memmove(instr+scroll+input_x+1, instr+scroll+input_x, i-scroll+input_x);
memmove(instr+scroll+input_x+1, instr+scroll+input_x, i-(scroll+input_x));
instr[scroll+input_x] = key;
if (input_x == box_width-1 && (flen < 0 || i < flen)) {
if (input_x == box_width-1 && (flen < 0 || i < flen))
scroll++;
wmove(dialog, box_y, box_x);
fix_len = flen >= 0 ? MIN(flen-scroll,box_width) : box_width;
for (i = 0; i < fix_len; i++)
waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' ');
wattrset(dialog, old_attr);
max_len = MIN(len-scroll,box_width);
for ( ; i < max_len; i++)
waddch(dialog, instr[scroll+i]);
wmove(dialog, box_y, input_x + box_x);
}
else {
wmove(dialog, box_y, input_x + box_x);
fix_len = flen >= 0 ? MIN(flen-scroll,box_width) : box_width;
for (i = input_x; i < fix_len; i++)
waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' ');
wattrset(dialog, old_attr);
max_len = MIN(len-scroll,box_width);
for ( ; i < max_len; i++)
waddch(dialog, instr[scroll+i]);
wmove(dialog, box_y, ++input_x + box_x);
}
else
input_x++;
wmove(dialog, box_y, box_x);
fix_len = flen >= 0 ? MIN(flen-scroll,box_width) : box_width;
for (i = 0; i < fix_len; i++)
waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' ');
wattrset(dialog, old_attr);
max_len = MIN(len-scroll,box_width);
for ( ; i < max_len; i++)
waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' ');
wmove(dialog, box_y, input_x + box_x);
} else
beep(); /* Alarm user about overflow */
continue;
@@ -231,7 +243,7 @@ ret:
wmove(dialog, box_y, box_x);
max_len = MIN(len-scroll,box_width);
for (i = 0; i < max_len; i++)
waddch(dialog, instr[scroll+i]);
waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' ');
wmove(dialog, box_y, input_x + box_x);
wrefresh(dialog);
strcpy(result, instr);
-2
View File
@@ -18,7 +18,6 @@ MANDATORY_MANPATH /usr/share/man
MANDATORY_MANPATH /usr/local/man
MANDATORY_MANPATH /usr/X386/man
MANDATORY_MANPATH /usr/X11R6/man
MANDATORY_MANPATH /usr/gnu/man
#
# set up PATH to MANPATH mapping
#
@@ -27,6 +26,5 @@ MANPATH_MAP /usr/bin /usr/share/man
MANPATH_MAP /usr/ucb /usr/share/man
MANPATH_MAP /usr/local/mh /usr/local/mh/man
MANPATH_MAP /usr/local/bin /usr/local/man
MANPATH_MAP /usr/gnu /usr/gnu/man
MANPATH_MAP /usr/X386/bin /usr/X386/man
MANPATH_MAP /usr/X11R6/bin /usr/X11R6/man
+10
View File
@@ -122,6 +122,16 @@ int setenv __P((const char *, const char *, int));
#endif
#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
double drand48 __P((void));
double erand48 __P((unsigned short[3]));
long lrand48 __P((void));
long nrand48 __P((unsigned short[3]));
long mrand48 __P((void));
long jrand48 __P((unsigned short[3]));
void srand48 __P((long));
unsigned short *seed48 __P((unsigned short[3]));
void lcong48 __P((unsigned short[7]));
void *alloca __P((size_t)); /* built-in for gcc */
/* getcap(3) functions */
char *getbsize __P((int *, long *));
+14 -13
View File
@@ -750,7 +750,8 @@ scrolln(starts, startw, curs, bot, top)
if (n == 1)
goto f_nl1;
tputs(__tscroll(SF, n, 0), n, __cputchar);
__mvcur(curscr->maxy - 1, 0, bot - n + 1, 0, 1);
__mvcur(curscr->maxy - 1, 0, oy, ox, 1);
return;
}
else if (DL != NULL && top != 0) {
__mvcur(oy, ox, top, 0, 1);
@@ -775,6 +776,10 @@ scrolln(starts, startw, curs, bot, top)
tputs(NL, 1, __cputchar);
else
putchar('\n');
if (bot == curscr->maxy - 1) {
__mvcur(curscr->maxy - 1, 0, oy, ox, 1);
return;
}
__mvcur(curscr->maxy - 1, 0, bot - n + 1, 0, 1);
}
else
@@ -800,12 +805,15 @@ scrolln(starts, startw, curs, bot, top)
* n < 0
*/
/* Scroll down the screen. */
if (!DA && SR != NULL && bot == curscr->maxy - 1 && top == 0) {
if (!DA && (SR != NULL || sr != NULL) && bot == curscr->maxy - 1 && top == 0) {
__mvcur(oy, ox, 0, 0, 1);
if (sr != NULL && -n == 1)
goto b_sr1;
tputs(__tscroll(SR, -n, 0), -n, __cputchar);
__mvcur(0, 0, top, 0, 1);
if (SR == NULL || sr != NULL && -n == 1) {
for (i = n; i < 0; i++)
tputs(sr, 1, __cputchar);
} else
tputs(__tscroll(SR, -n, 0), -n, __cputchar);
__mvcur(0, 0, oy, ox, 1);
return;
}
else if (DL != NULL) {
__mvcur(oy, ox, bot + n + 1, 0, 1);
@@ -821,13 +829,6 @@ scrolln(starts, startw, curs, bot, top)
tputs(dl, 1, __cputchar);
__mvcur(bot + n + 1, 0, top, 0, 1);
}
else if (sr != NULL && bot == curscr->maxy - 1) {
__mvcur(oy, ox, 0, 0, 1);
b_sr1:
for (i = n; i < 0; i++)
tputs(sr, 1, __cputchar);
__mvcur(0, 0, top, 0, 1);
}
else
abort();
+3 -10
View File
@@ -1,15 +1,10 @@
#ifndef _TERMCAP_H
#define _TERMCAP_H 1
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
#include <sys/cdefs.h>
__BEGIN_DECLS
extern char PC;
extern char *UP;
extern char *BC;
@@ -25,8 +20,6 @@ extern int tputs __P((const char *, int, int (*)(int)));
extern char *tgoto __P((const char *, int, int));
extern char *tparam __P((const char *, char *, int, ...));
#ifdef __cplusplus
}
#endif
__END_DECLS
#endif /* _TERMCAP_H */
+10 -3
View File
@@ -1,10 +1,11 @@
# $Id: Makefile,v 1.56 1994/11/21 04:14:30 phk Exp $
# $Id: Makefile,v 1.57 1994/11/21 08:15:25 phk Exp $
#
# Evil floppies are, of course, 1.2MB floppies.
FLOPPY= fd0
#EVIL_FLOPPY= yes
.if defined(EVIL_FLOPPY)
FDLABEL= fd1200
DDBS= 15k
@@ -155,9 +156,10 @@ bar:
DESTDIR=${RELEASEDIR}/filesys \
SHARED=copies )
EXTRADISTRIBUTIONS= des games manpages proflibs dict krb
EXTRADISTRIBUTIONS= secrdist games manpages proflibs dict krb srcdist
DISTRIBUTIONS= bindist ${EXTRADISTRIBUTIONS}
MTREEFILES= ${.CURDIR}/../etc/mtree
SECRSRC= src/secure src/eBones
distribute:
-mkdir ${RELEASEDIR}
@@ -175,7 +177,7 @@ distribute:
install ${COPY} -m 644 ${.CURDIR}/../sys/compile/GENERIC/kernel \
${RELEASEDIR}/bindist/kernel
tarballs:
beforetarballs:
rm -rf ${RELEASEDIR}/manpages/usr/share/man
mv ${RELEASEDIR}/bindist/usr/share/man \
${RELEASEDIR}/manpages/usr/share/man
@@ -192,6 +194,11 @@ tarballs:
${RELEASEDIR}/proflibs/usr/lib
-cd ${RELEASEDIR} ; \
find ${EXTRADISTRIBUTIONS} -depth -type d -print | xargs rmdir
cd ${RELEASEDIR}/secrdist/usr ; cvs export -r ${RELEASETAG} ${SECRSRC}
cd ${RELEASEDIR}/srcdist/usr ; cvs export -r ${RELEASETAG} src
cd ${RELEASEDIR}/srcdist/usr/src ; rm -rf secure kerberosIV eBones
tarballs:
rm -rf ${RELEASEDIR}/tarballs
mkdir ${RELEASEDIR}/tarballs
for i in ${DISTRIBUTIONS} ; \
+2 -2
View File
@@ -10,7 +10,7 @@
# putting your name on top after doing something trivial like reindenting
# it, just to make it look like you wrote it!).
#
# $Id: miscfuncs.sh,v 1.8 1994/11/21 06:45:01 jkh Exp $
# $Id: miscfuncs.sh,v 1.9 1994/11/21 07:33:21 jkh Exp $
if [ "$_MISCFUNCS_SH_LOADED_" = "yes" ]; then
return 0
@@ -22,7 +22,7 @@ PATH=/usr/bin:/usr/sbin:/bin:/sbin:/stand
export PATH
# Keep this current with the distribution!
DISTNAME=2.0-BETA
DISTNAME=2.0-RELEASE
# Flagrant guesses for now. These need to be hand-edited or, much better yet,
# automatically done as part of the release process. When that's the case,
+2 -1
View File
@@ -10,7 +10,7 @@
# putting your name on top after doing something trivial like reindenting
# it, just to make it look like you wrote it!).
#
# $Id: netinst.sh,v 1.9 1994/11/21 05:36:01 jkh Exp $
# $Id: netinst.sh,v 1.10 1994/11/21 08:33:56 jkh Exp $
if [ "$_NETINST_SH_LOADED_" = "yes" ]; then
return 0
@@ -31,6 +31,7 @@ network_set_defaults()
hostname=""
domain=""
ipaddr="127.0.0.1"
serial_interface="/dev/tty00"
}
network_basic_setup()
+3
View File
@@ -125,6 +125,9 @@ struct cmd {
{ "-link1", -IFF_LINK1, setifflags },
{ "link2", IFF_LINK2, setifflags },
{ "-link2", -IFF_LINK2, setifflags },
{ "normal", -IFF_LINK0, setifflags },
{ "compress", IFF_LINK0, setifflags },
{ "noicmp", IFF_LINK1, setifflags },
{ "mtu", NEXTARG, setifmtu },
{ 0, 0, setifaddr },
{ 0, 0, setifdstaddr },
+2 -2
View File
@@ -3,8 +3,8 @@
.Os
.Sh NAME
ipfirewall,ipfw - IP packets filter.
ipaccounting,ipacct - IP packets/traffic accounting.
ipfirewall,ipfw - IP packets filter.
ipaccounting,ipacct - IP packets/traffic accounting.
.Sh SYNOPSIS
#include <netinet/ip_fw.h>
+3
View File
@@ -78,9 +78,12 @@ evil_goto:
break;
case 6: /* Proceed (do nothing special, really) */
fixit = 0;
break;
case 7:
dialog_clear();
dialog_update();
dialog_msgbox("WARNING!",
"The usual install procedure will be invoked, but with most of the
sanity checks disabled. The suggested course of action is to:
+18 -19
View File
@@ -100,30 +100,29 @@ stage1()
mvprintw(j++, 50, "|Load cpio floppy");
mvprintw(j++, 50, "|Choose stand-alone shell");
mvprintw(j++, 50, "|");
mvprintw(j++, 50, "|Your kernel and /etc/fstab");
mvprintw(j++, 50, "|are backed up and /sbin/init");
mvprintw(j++, 50, "|is renamed");
mvprintw(j++, 50, "|Your old kernel, /etc/fstab");
mvprintw(j++, 50, "|and /sbin/init files are");
mvprintw(j++, 50, "|renamed since they will be");
mvprintw(j++, 50, "|replaced from this floppy.");
} else {
mvprintw(j++, 50, "|You must assign some space");
mvprintw(j++, 50, "|to a root (/), swap, and");
mvprintw(j++, 50, "|optionally a /usr partition");
mvprintw(j++, 50, "|");
mvprintw(j++, 50, "|Root should be a minimum of");
mvprintw(j++, 50, "|18MB with a 30MB /usr, or");
mvprintw(j++, 50, "|50MB without a /usr.");
mvprintw(j++, 50, "|");
mvprintw(j++, 50, "|You should now assign some");
mvprintw(j++, 50, "|space to root, swap, and");
mvprintw(j++, 50, "|(optionally) /usr partitions");
mvprintw(j++, 50, "|Root (/) should be a minimum");
mvprintw(j++, 50, "|of 18MB with a 30MB /usr");
mvprintw(j++, 50, "|or 50MB without a /usr.");
mvprintw(j++, 50, "|Swap space should be a");
mvprintw(j++, 50, "|minimum of 12MB or MEM * 2");
mvprintw(j++, 50, "|Also be sure to Assign");
mvprintw(j++, 50, "|mount points to each or");
mvprintw(j++, 50, "|they will NOT be enabled.");
mvprintw(j++, 50, "|minimum of 12MB or RAM * 2");
mvprintw(j++, 50, "|Be sure to also (A)ssign a");
mvprintw(j++, 50, "|mount point to each one or");
mvprintw(j++, 50, "|it will NOT be enabled.");
mvprintw(j++, 50, "|");
mvprintw(j++, 50, "|We suggest that you invoke");
mvprintw(j++, 50, "|(F)disk, then (D)isklabel");
mvprintw(j++, 50, "|in setting up your disk.");
mvprintw(j++, 50, "|(F)disk, (W)rite the bootcode");
mvprintw(j++, 50, "|then (D)isklabel your disk.");
mvprintw(j++, 50, "|If installing on a drive");
mvprintw(j++, 50, "|other than 0, read the");
mvprintw(j++, 50, "|troubleshooting doc first");
mvprintw(j++, 50, "|other than 0, also read the");
mvprintw(j++, 50, "|TROUBLESHOOTING doc first");
}
j = 0;
+17 -8
View File
@@ -15,17 +15,22 @@ contributors.
There are also portions of NetBSD that have been integrated into FreeBSD
as well, and we would therefore like to thank all the contributors
to NetBSD for their work. Despite some occasionally rocky moments in
the relations between the two groups, we both want essentially the same
relations between the two groups, we both want essentially the same
thing: More BSD based operating systems on people's computers! We
wish the NetBSD group every success in their endevors.
Hardware Contributors:
A special thank-you to Walnut Creek CDROM for providing the 486/DX2-66 EISA/VL
system that is being used for our development work, to say nothing of
the network access and other donations of hardware resources. It would have
been impossible to do this release without their support.
A special thank-you to Walnut Creek CDROM for providing two
486/DX2-66 EISA/VL systems that are being used for our development work,
to say nothing of the network access and other donations of hardware
resources. It would have been impossible to do this release without
their support.
TRW Financial Systems, Inc. provided 130 PCs, three 68 GB fileservers,
twelve ethernets, two routers and an ATM switch for debugging the diskless
code. They also keep a couple of FreeBSD hackers alive and busy. Thanks!
Thanks also to Dermot McDonnell for his donation of a Toshiba XM3401B CDROM
drive. It's been most useful!
@@ -50,7 +55,7 @@ The FreeBSD Core Team (in alphabetical order):
Soren Schmidt <[email protected]>
Additional FreeBSD Contributors (no particular order):
Additional FreeBSD Contributors (in alphabetical order):
Adam Glass <[email protected]>
Andrew Herbert <[email protected]>
@@ -101,7 +106,7 @@ Ugen J.S.Antsilevich <[email protected]>
Yuval Yarom <[email protected]>
386BSD Patch kit patch contributors (no particular order):
386BSD Patch kit patch contributors (in alphabetical order):
Adam Glass <[email protected]>
Adrian Hall <[email protected]>
@@ -192,4 +197,8 @@ Wolfgang Solfrank <[email protected]>
Wolfgang Stanglmeier <[email protected]>
Yuval Yarom <[email protected]>
$Id: CONTRIB.FreeBSD,v 1.36 1994/06/28 08:09:27 jkh Exp $
Last, but not least, the release engineer would like to thank:
His Wife, for chocolate chip cookies, and some other things.
The DGB project @ TFS, for patience and tolerance.
$Id: CONTRIB.FreeBSD,v 1.2 1994/11/22 09:16:46 phk Exp $
+76 -25
View File
@@ -6,7 +6,7 @@
Please mail all suggestions and additions to <[email protected]>
Revision: $Id: FreeBSD.FAQ,v 1.6 1994/10/10 10:39:09 gclarkii Exp $
Revision: $Id: FreeBSD.FAQ,v 1.8 1994/11/22 06:48:38 jkh Exp $
All entries are assumed to be relevant to FreeBSD 2.0.
Any entries with a <XXX> are under construction.
@@ -36,7 +36,7 @@ the most frequently asked questions about FreeBSD 2.0.
If there's something you're having trouble with and you do not see it
here, please send email to:
<FreeBSD-[email protected]>
<[email protected]>
Some of the instructions here will also refer to auxiliary utilities
@@ -45,12 +45,12 @@ who've grabbed the FreeBSD 2.0 `srcdist' will have these files. If
you don't have the source distribution, then you can either grab the
whole thing from:
ftp.FreeBSD.ORG:pub/FreeBSD/FreeBSD-current
ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current
Or you can grab only those files you're interested in straight out of
the FreeBSD-current distribution in:
ftp.FreeBSD.ORG:pub/FreeBSD/FreeBSD-current/src
ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current/src
0.1: What is FreeBSD?
@@ -79,25 +79,24 @@ developers. For more information, send to
<[email protected]> and include a single line saying
``help'' in the body of your message.
freebsd-announce: For announcements about or on FreeBSD.
freebsd-hackers: Useful for persons wishing to work on the internals.
freebsd-questions: General questions on FreeBSD.
freebsd-bugs: Where bugs should be sent.
freebsd-SCSI: Mailing list for SCSI developers.
freebsd-current: This list is for persons wishing to run FreeBSD-current
and carries announcements and discussions on current.
freebsd-security: For issues dealing with system security.
freebsd-platforms: Deals with ports to non-intel platforms
freebsd-ports: Discussion of /usr/ports/???
freebsd-fs: Discussion of FreeBSD Filesystems
announce: For announcements about or on FreeBSD.
hackers: Useful for persons wishing to work on the internals.
questions: General questions on FreeBSD.
bugs: Where bugs should be sent.
SCSI: Mailing list for SCSI developers.
current: This list is for persons wishing to run FreeBSD-current
and carries announcements and discussions on current.
security: For issues dealing with system security.
platforms: Deals with ports to non-Intel platforms
ports: Discussion of /usr/ports/???
fs: Discussion of FreeBSD Filesystems
hardware: Discussion on hardware requirements for FreeBSD.
The FreeBSD-commit list has been broken up into groups dealing with different
areas of intrest.
areas of interest. Please see the FreeBSD mailing list FAQ in:
Please see also the FreeBSD mailing list FAQ in:
/usr/src/share/FAQ/mailing-list.FAQ
/usr/src/share/FAQ/FreeBSD.mailing-list.FAQ
0.3: What are the various FreeBSD news groups?
@@ -341,6 +340,9 @@ There is support for the following cards:
3Com 3c503
And clones of the above
`de' driver:
DEC and compatible PCI controllers.
`ie' driver:
AT&T EN100/StarLAN 10
3Com 3c507
@@ -358,9 +360,6 @@ There is support for the following cards:
`ze' driver:
IBM PCMCIA credit card adapter
(*)The `ep' and `el' driver is known to have some problems; see the
/usr/src/KNOWNBUGS file for more details.
2.11: I have a 386/486sx/486SLC machine without a math co-processor.
Will this cause me any problems?
@@ -378,7 +377,7 @@ clones.
want an idea of what other people are running. Is there list
of other systems anywhere?
Yes. Please look at the file FAQ/OTHER-FAQS/Systems.FAQ. This file
Yes. Please look at the file Systems.FAQ. This file
is a listing of hardware that people are running in their machines.
Please note, this is a raw listing of equipment that other users
have sent in.
@@ -397,8 +396,58 @@ viability). We encourage commercial software vendors to send their
entries here for inclusion.
<XXX> 3.1: Where can I get Motif for FreeBSD?
3.1: Where can I get Motif for FreeBSD?
You can purchase Motif 1.2.3 for FreeBSD (SWiM) from the ACC Bookstore,
P.O. Box 3364, Westport CT. 06880. 1-800-546-7274 or FAX: 1-203-454-2582
This software works flawlessly for for FreeBSD 1.1.5 but has shown
one problem with 2.0 in that the "uil" program core dumps. This is
apparently because of the way uil is installed, and it's quite possible
that ACC will have a fixed version by the time you read this. No
other compatibility problems with the programs or libraries have been
found, and ACC can hardly be blamed for failing to work perfectly with
a brand-new release they haven't even seen yet! :)
3.2: Are there any commercial X servers for some of the high-end
graphics cards like the Matrox or #9 I-128, or offering 8/16/24
bit deep pallettes?
Yes, X Inside Incorporated sells their Accelerated-X product for
FreeBSD and other Intel based systems.
This high performance X Server offers easy configuration, support
for multiple concurrent video boards and is distributed in binary
form only.
Price is $99.50 (promotional price for Linux/FreeBSD version) for
the 1.1 version, which is available now.
This product is for FreeBSD 1.1 and runs under 2.0 with the FreeBSD 1.1
compatibility libs (`compat1xdist').
More info: URL http://www.xinside.com/
or URL ftp://ftp.xinside.com/accelx/1.1/prodinfo.txt
or email [email protected]
or phone +1(303)384-9999
3.3: Any other applications I might be interested in?
Rendermorphics, Inc. sells a high-speed 3D rendering package for
FreeBSD called "Reality Lab" (tm). Send email to [email protected]
or call: +44(0)71-251-4411 / FAX: +44(0)71-251-0939
This package is also for FreeBSD 1.1.5 but has been tested and shown
to run under FreeBSD 2.0 with the compat1xdist installed.
Thanks must be extended to all of these companies for showing enough faith
in FreeBSD to port their products to it. While we get no direct benefit
from the sales of these products, the indirect benefits of FreeBSD
proving itself to be a successful platform for such commercial interests
will be immense! We wish these companies every measure of success, and
can only hope that others are encouraged to follow suit.
4 User Applications
@@ -412,8 +461,10 @@ the instructions for installation carefully. You may then wish to read
the documentation for the ConfigXF86 tool, which assists you in
configuring XFree86 for your particular graphics card/mouse/etc.
You may also wish to investigate the Xaccel server, which is available
at a very reasonable price. See section 3.2 for more details.
4.1: I've been trying to run ghostscript on a 386 (or 486sx) with no
4.2: I've been trying to run ghostscript on a 386 (or 486sx) with no
math co-processor and I keep getting errors. What's up?
You will need to add the alternate math emulator to your kernel, you do this
+24 -19
View File
@@ -1,28 +1,29 @@
Use PageUp, PageDown or Arrow keys to navigate this screen.
-----------------------------------------
FreeBSD 2.0 --- BETA Release , ,
FreeBSD 2.0 --- RELEASE Version , ,
----------------------------------------- /( )`
\ \___ / |
Welcome to the BETA release of FreeBSD 2.0 - the /- _ `-/ '
Welcome to the first public release of FreeBSD 2.0 /- _ `-/ '
first public snapshot of our new 4.4BSD Lite based (/\/ \ \ /\
operating system environment. This install proce- / / | ` \
dure is also at the BETA stage, and contains only O O ) / |
the minimum functionality required by an `-^--'`< '
*EXPERIENCED* person to install the system. (_.) _ ) /
It is our hope, of course, that the feedback `.___/` /
provided from this snapshot will `-----' /
greatly assist us in making the release <----. __ / __ \
of 2.0 much more user friendly. Your <----|====O)))==) \) /====
comments and criticisms are very <----' `--' `.__,' \
valuable to us, so please don't hesitate | |
in contacting us! Full details on where and \ / /\
how to provide feedback are given below. ______( (_ / \______/
,' ,-----' |
This install procedure is BETA code, and `--{__________)
may very possibly *DESTROY* the contents of your
ENTIRE DISK! Please do not proceed with this installation
unless you've adequately backed up your data first!
operating system environment. Our installation / / | ` \
procedure has been completely revamped, and should O O ) / |
now be much easier for both the novice and `-^--'`< '
experienced user alike. We've also gone to some (_.) _ ) /
care to make the process of installing the `.___/` /
subsequent bindist and other miscellaneous `-----' /
distributions considerably more seamless <----. __ / __ \
as well as offering a greater variety <----|====O)))==) \) /====
of installation methods and options. <----' `--' `.__,' \
| |
We hope you'll find this new process as enjoyable \ / /\
to use as it was to write! (No, really, it ______( (_ / \______/
was! :-) ,' ,-----' |
`--{__________)
Disclaimer: Please note that despite numerous
safeguards, it's still more than possible to WIPE OUT YOUR ENTIRE DISK
with this installation! Please do not proceed unless you've
adequately backed up any important data first! We really mean it!
If any errors occur during this installation, you can see them
by toggling over to the alternate screen. Type ALT-F2 to switch
@@ -31,6 +32,10 @@ The debugging output on the second screen may be very valuable to us in
understanding your bug report, so please be sure to take note of it when
reporting any failures in the installation! Thanks!
You may also wish to read the TROUBLESHOOTING document in _advance_
and perhaps save yourself from making those sorts of errors in
the first place! :-)
Menus and scrolling output windows may be traversed with the arrow,
PageUp/PageDown and TAB keys. To suspend the installation at any point,
hit ESC twice. If you've ever dealt with a DOS installation before, then
+59
View File
@@ -54,6 +54,65 @@ Solution: There are several possible solutions. The first,
---
Summary: When I boot for the first time, it still looks for /386bsd!
Cause: You still have the old FreeBSD 1.x boot blocks on your
boot partition.
Solution: You should re-enter the installation process, invoke
the (F)disk editor and chose the (W)rite option. This
won't hurt an existing installation and will make sure
that the new boot blocks get written to the drive.
If you're installing for the first time, don't forget
to (W)rite out your new boot blocks! :-)
---
Summary: I want to boot FreeBSD off the second drive. It doesn't!
Cause: FreeBSD will actually install just fine on a drive other
than 0 (the first drive), and the boot manager will even
allow you to select it, but the boot blocks rather
pathologically assume 0. This should be fixed in 2.1.
Solution: Easy - follow these steps:
1. Select the first (0) drive from the (F)disk editor
and write out the boot manager with the (B) option.
This will enable the boot manager that allows you to
actually boot off the other drive.
2. Exit the fdisk editor for the first drive and and
re-enter it again for the drive you wish to install
on. Set up a partition on this drive, or select
(A)ll for the entire drive.
3. Enter the disklabel editor and allocate space on
your second drive as normal. Proceed with the
installation.
4. Once you've installed on the disk and are going to
reboot from the hard disk, enter the following at
the boot prompt:
hd(1,a)/kernel
This will ensure that you really boot from the second
drive. If you've actually installed on a drive other
than 1 (the 3rd or 4th drive?), substitute that number
in for the above. You will need to enter this EVERY
time you reboot from the hard disk. If you're feeling
brave and have a srcdist + the requisite experience,
you can hack the boot blocks in:
/usr/src/sys/i386/boot/biosboot
So that this drive you're booting from is hard-coded.
Recompile the boot blocks and reinstall them on your
drive with `disklabel -B ...' You can then have the
default Do The Right Thing.
---
Summary: Newfs crashes, requesting that blocksize be 32K
Cause: You have your SCSI controller configured to translate
+3 -1
View File
@@ -3,7 +3,7 @@
# bsd.port.mk - 940820 Jordan K. Hubbard.
# This file is in the public domain.
#
# $Id: bsd.port.mk,v 1.71 1994/11/17 10:07:45 jkh Exp $
# $Id: bsd.port.mk,v 1.72 1994/11/17 15:46:27 jkh Exp $
#
# Please view me with 4 column tabs!
@@ -473,8 +473,10 @@ clean: pre-clean
@echo "===> Cleaning for ${DISTNAME}"
@rm -f ${EXTRACT_COOKIE} ${CONFIGURE_COOKIE} ${INSTALL_COOKIE} \
${BUILD_COOKIE} ${PATCH_COOKIE}
.if !defined(NO_WRKDIR)
@rm -rf ${WRKDIR}
.endif
.endif
# No pre-targets for depend or tags. It would be silly.
+1 -1
View File
@@ -15,7 +15,7 @@
010 '9' ')' gs gs ']' ']' gs gs O
011 '0' '=' nop nop '}' '}' nop nop O
012 225 '?' fs fs '\' '\' fs fs O
013 179 180 nop nop 179 180 nop nop O
013 ''' '`' nop nop 179 180 nop nop O
014 bs bs del del bs bs del del O
015 ht btab nop nop ht btab nop nop O
016 'q' 'Q' dc1 dc1 '@' '@' nul nul C
+3 -3
View File
@@ -32,7 +32,7 @@
# SUCH DAMAGE.
#
# @(#)newvers.sh 8.1 (Berkeley) 4/20/94
# $Id: newvers.sh,v 1.6.2.1 1994/11/08 21:24:57 phk Exp $
# $Id: newvers.sh,v 1.6.2.2 1994/11/16 06:33:27 phk Exp $
if [ ! -r version ]
then
@@ -42,9 +42,9 @@ fi
touch version
v=`cat version` u=${USER-root} d=`pwd` h=`hostname` t=`date`
echo "char ostype[] = \"FreeBSD\";" > vers.c
echo "char osrelease[] = \"2.0-BETA\";" >> vers.c
echo "char osrelease[] = \"2.0-RELEASE\";" >> vers.c
echo "int osreldate = 199411;" >> vers.c
echo "char sccs[4] = { '@', '(', '#', ')' };" >>vers.c
echo "char version[] = \"FreeBSD 2.0-BETA #${v}: ${t}\\n ${u}@${h}:${d}\\n\";" >>vers.c
echo "char version[] = \"FreeBSD 2.0-RELEASE #${v}: ${t}\\n ${u}@${h}:${d}\\n\";" >>vers.c
echo `expr ${v} + 1` > version
+8 -8
View File
@@ -35,7 +35,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: syscons.c,v 1.77 1994/11/17 22:03:16 sos Exp $
* $Id: syscons.c,v 1.79 1994/11/21 14:36:02 ache Exp $
*/
#include "sc.h"
@@ -1782,28 +1782,28 @@ scan_esc(scr_stat *scp, u_char c)
case 'S': /* scroll up n lines */
n = scp->term.param[0]; if (n < 1) n = 1;
if (n > scp->ypos)
n = scp->ypos;
if (n > scp->ysize)
n = scp->ysize;
bcopy(scp->crt_base + (scp->xsize * n),
scp->crt_base,
scp->xsize * (scp->ysize - n) *
sizeof(u_short));
fillw(scp->term.cur_attr | scr_map[0x20],
scp->crt_base + scp->xsize *
(scp->ysize - 1),
scp->xsize);
(scp->ysize - n),
scp->xsize * n);
break;
case 'T': /* scroll down n lines */
n = scp->term.param[0]; if (n < 1) n = 1;
if (n > scp->ysize - scp->ypos)
n = scp->ysize - scp->ypos;
if (n > scp->ysize)
n = scp->ysize;
bcopy(scp->crt_base,
scp->crt_base + (scp->xsize * n),
scp->xsize * (scp->ysize - n) *
sizeof(u_short));
fillw(scp->term.cur_attr | scr_map[0x20],
scp->crt_base, scp->xsize);
scp->crt_base, scp->xsize * n);
break;
case 'X': /* delete n characters in line */
+61 -43
View File
@@ -21,7 +21,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: if_de.c,v 1.5 1994/11/10 02:56:48 davidg Exp $
* $Id: if_de.c,v 1.6 1994/11/13 12:39:38 davidg Exp $
*
*/
@@ -35,31 +35,29 @@
* board which support DC21040.
*/
#include <de.h>
#include "de.h"
#if NDE > 0
#include <param.h>
#include <systm.h>
#include <mbuf.h>
#include <protosw.h>
#include <socket.h>
#include <ioctl.h>
#include <errno.h>
#include <malloc.h>
#include <syslog.h>
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/mbuf.h>
#include <sys/protosw.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <sys/errno.h>
#include <sys/malloc.h>
#include <net/if.h>
#include <net/if_types.h>
#include <net/if_dl.h>
#include <net/route.h>
#include <bpfilter.h>
#include "bpfilter.h"
#if NBPFILTER > 0
#include <net/bpf.h>
#include <net/bpfdesc.h>
#endif
#ifdef INET
#include <netinet/in.h>
#include <netinet/in_systm.h>
@@ -127,18 +125,18 @@ typedef struct {
* buffers must be longword aligned. But since Ethernet
* headers are not a multiple of longwords in size this forces
* the data to non-longword aligned. Since IP requires the
* data to be longword aligned, we can to copy it after it has
* data to be longword aligned, we need to copy it after it has
* been DMA'ed in our memory.
*
* Since we have to copy it anyways, we might as well as allocate
* dedicated receive space for the input. This allows to use a
* small receive buffer size and more ring entries to be able to
* better keep with a foold of tiny Ethernet packets.
* better keep with a flood of tiny Ethernet packets.
*
* The receive space MUST ALWAYS be a multiple of the page size.
* And the number of receive descriptors multiplied by the size
* of the receive buffers must equal the recevive space. This
* is that we can manipulate the page tables so that even if a
* is so that we can manipulate the page tables so that even if a
* packet wraps around the end of the receive space, we can
* treat it as virtually contiguous.
*/
@@ -189,16 +187,16 @@ tulip_chipid_t tulip_chipids[NDE];
#define TULIP_CRC32_POLY 0xEDB88320UL /* CRC-32 Poly -- Little Endian */
#define TULIP_CHECK_RXCRC 0
#define TULIP_MAX_TXSEG 32
#define TULIP_MAX_TXSEG 30
#define TULIP_ADDREQUAL(a1, a2) \
(((u_short *)a1)[0] == ((u_short *)a2)[0] \
|| ((u_short *)a1)[1] == ((u_short *)a2)[1] \
|| ((u_short *)a1)[2] == ((u_short *)a2)[2])
&& ((u_short *)a1)[1] == ((u_short *)a2)[1] \
&& ((u_short *)a1)[2] == ((u_short *)a2)[2])
#define TULIP_ADDRBRDCST(a1) \
(((u_short *)a1)[0] == 0xFFFFU \
|| ((u_short *)a1)[1] == 0xFFFFU \
|| ((u_short *)a1)[2] == 0xFFFFU)
&& ((u_short *)a1)[1] == 0xFFFFU \
&& ((u_short *)a1)[2] == 0xFFFFU)
static void tulip_start(struct ifnet *ifp);
static void tulip_addr_filter(tulip_softc_t *sc);
@@ -459,11 +457,14 @@ tulip_tx_intr(
* We've just finished processing a setup packet.
* Mark that we can finished it. If there's not
* another pending, startup the TULIP receiver.
* Make sure we ack the RXSTOPPED so we won't get
* an abormal interrupt indication.
*/
sc->tulip_flags &= ~TULIP_DOINGSETUP;
if ((sc->tulip_flags & TULIP_WANTSETUP) == 0) {
sc->tulip_cmdmode |= TULIP_CMD_RXRUN;
sc->tulip_intrmask |= TULIP_STS_RXSTOPPED;
*sc->tulip_csrs.csr_status = TULIP_STS_RXSTOPPED;
*sc->tulip_csrs.csr_command = sc->tulip_cmdmode;
*sc->tulip_csrs.csr_intr = sc->tulip_intrmask;
}
@@ -516,7 +517,7 @@ tulip_txsegment(
}
}
if (segcnt >= maxseg) {
printf("%s%d: tulip_txsegment: extremely fragmented packet dropped (%d segments)\n",
printf("%s%d: tulip_txsegment: extremely fragmented packet encountered (%d segments)\n",
sc->tulip_name, sc->tulip_unit, segcnt);
return -1;
}
@@ -583,7 +584,6 @@ tulip_start(
segcnt = tulip_txsegment(sc, m, addrvec,
min(ri->ri_max - 1, TULIP_MAX_TXSEG));
if (segcnt < 0) {
#if 0
struct mbuf *m0;
MGETHDR(m0, M_DONTWAIT, MT_DATA);
if (m0 != NULL) {
@@ -594,18 +594,15 @@ tulip_start(
continue;
}
}
m_copydata(m, 0, mtod(m0, caddr_t), m->m_pkthdr.len);
m_copydata(m, 0, m0->m_pkthdr.len, mtod(m0, caddr_t));
m0->m_pkthdr.len = m0->m_len = m->m_pkthdr.len;
m_freem(m);
IF_PREPEND(ifq, m0);
continue;
} else {
#endif
m_freem(m);
continue;
#if 0
}
#endif
}
if (ri->ri_free - 2 <= (segcnt + 1) >> 1)
break;
@@ -635,18 +632,18 @@ tulip_start(
if (++ri->ri_nextout == ri->ri_last)
ri->ri_nextout = ri->ri_first;
} while ((segcnt -= 2) > 0);
#if NBPFILTER > 0
if (sc->tulip_bpf != NULL)
bpf_mtap(sc->tulip_bpf, m);
#endif
/*
* The descriptors have been filled in. Mark the first
* and last segments, indicate we want a transmit complete
* interrupt, give the descriptors to the TULIP, and tell
* it to transmit!
*/
IF_ENQUEUE(&sc->tulip_txq, m);
#if NBPFILTER > 0
if (sc->tulip_bpf)
bpf_mtap(sc->tulip_bpf, m);
#endif
eop->d_flag |= TULIP_DFLAG_TxLASTSEG|TULIP_DFLAG_TxWANTINTR;
sop->d_flag |= TULIP_DFLAG_TxFIRSTSEG;
sop->d_status = TULIP_DSTS_OWNER;
@@ -675,17 +672,17 @@ tulip_intr(
return 1;
}
}
if (csr & TULIP_STS_ABNRMLINTR) {
printf("%s%d: abnormal interrupt: 0x%05x [0x%05x]\n",
sc->tulip_name, sc->tulip_unit, csr, csr & sc->tulip_intrmask);
*sc->tulip_csrs.csr_command = sc->tulip_cmdmode;
}
if (csr & TULIP_STS_RXINTR)
tulip_rx_intr(sc);
if (sc->tulip_txinfo.ri_free < sc->tulip_txinfo.ri_max) {
tulip_tx_intr(sc);
tulip_start(&sc->tulip_if);
}
if (csr & TULIP_STS_ABNRMLINTR) {
printf("%s%d: abnormal interrupt: 0x%05x [0x%05x]\n",
sc->tulip_name, sc->tulip_unit, csr, csr & sc->tulip_intrmask);
*sc->tulip_csrs.csr_command = sc->tulip_cmdmode;
}
}
return 1;
}
@@ -710,8 +707,29 @@ tulip_read_macaddr(
sc->tulip_rombuf[idx] = csr & 0xFF;
}
if (bcmp(&sc->tulip_rombuf[0], &sc->tulip_rombuf[16], 8) != 0)
return -4;
if (bcmp(&sc->tulip_rombuf[0], &sc->tulip_rombuf[16], 8) != 0) {
/*
* Some folks don't use the standard ethernet rom format
* but instead just put the address in the first 6 bytes
* of the rom and let the rest be all 0xffs. (Can we say
* ZNYX???)
*/
for (idx = 6; idx < 32; idx++) {
if (sc->tulip_rombuf[idx] != 0xFF)
return -4;
}
/*
* Make sure the address is not multicast or locally assigned
* that the OUI is not 00-00-00.
*/
if ((sc->tulip_rombuf[0] & 3) != 0)
return -4;
if (sc->tulip_rombuf[0] == 0 && sc->tulip_rombuf[1] == 0
&& sc->tulip_rombuf[2] == 0)
return -4;
bcopy(sc->tulip_rombuf, sc->tulip_hwaddr, 6);
return 0;
}
if (bcmp(&sc->tulip_rombuf[24], testpat, 8) != 0)
return -3;
@@ -846,6 +864,7 @@ tulip_ioctl(
#ifdef INET
case AF_INET: {
((struct arpcom *)ifp)->ac_ipaddr = IA_SIN(ifa)->sin_addr;
tulip_addr_filter(sc); /* reset multicast filtering */
(*ifp->if_init)(ifp->if_unit);
arpwhohas((struct arpcom *)ifp, &IA_SIN(ifa)->sin_addr);
break;
@@ -939,7 +958,6 @@ tulip_attach(
tulip_softc_t *sc)
{
struct ifnet *ifp = &sc->tulip_if;
struct ifaddr *ifa = ifp->if_addrlist;
int cnt;
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_NOTRAILERS | IFF_MULTICAST;
@@ -1052,11 +1070,11 @@ tulip_pci_probe(
if (tulips[idx] == NULL) {
if (device_id == 0x00021011ul) {
tulip_chipids[idx] = TULIP_DC21040;
return "digital dc21040 ethernet";
return "Digital DC21040 Ethernet";
}
if (device_id == 0x00091011ul) {
tulip_chipids[idx] = TULIP_DC21140;
return "digital dc21140 fast ethernet";
return "Digital DC21140 Fast Ethernet";
}
return NULL;
}
@@ -1125,7 +1143,7 @@ tulip_pci_attach(
for (idx = 0; idx < 32; idx++)
printf("%02x", sc->tulip_rombuf[idx]);
printf("\n");
printf("%s%d: %s %d.%d ethernet address %s\n",
printf("%s%d: %s pass %d.%d ethernet address %s\n",
sc->tulip_name, sc->tulip_unit,
tulip_chipdescs[tulip_chipids[sc->tulip_unit]],
(sc->tulip_revinfo & 0xF0) >> 4, sc->tulip_revinfo & 0x0F,
+61 -43
View File
@@ -21,7 +21,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: if_de.c,v 1.5 1994/11/10 02:56:48 davidg Exp $
* $Id: if_de.c,v 1.6 1994/11/13 12:39:38 davidg Exp $
*
*/
@@ -35,31 +35,29 @@
* board which support DC21040.
*/
#include <de.h>
#include "de.h"
#if NDE > 0
#include <param.h>
#include <systm.h>
#include <mbuf.h>
#include <protosw.h>
#include <socket.h>
#include <ioctl.h>
#include <errno.h>
#include <malloc.h>
#include <syslog.h>
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/mbuf.h>
#include <sys/protosw.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <sys/errno.h>
#include <sys/malloc.h>
#include <net/if.h>
#include <net/if_types.h>
#include <net/if_dl.h>
#include <net/route.h>
#include <bpfilter.h>
#include "bpfilter.h"
#if NBPFILTER > 0
#include <net/bpf.h>
#include <net/bpfdesc.h>
#endif
#ifdef INET
#include <netinet/in.h>
#include <netinet/in_systm.h>
@@ -127,18 +125,18 @@ typedef struct {
* buffers must be longword aligned. But since Ethernet
* headers are not a multiple of longwords in size this forces
* the data to non-longword aligned. Since IP requires the
* data to be longword aligned, we can to copy it after it has
* data to be longword aligned, we need to copy it after it has
* been DMA'ed in our memory.
*
* Since we have to copy it anyways, we might as well as allocate
* dedicated receive space for the input. This allows to use a
* small receive buffer size and more ring entries to be able to
* better keep with a foold of tiny Ethernet packets.
* better keep with a flood of tiny Ethernet packets.
*
* The receive space MUST ALWAYS be a multiple of the page size.
* And the number of receive descriptors multiplied by the size
* of the receive buffers must equal the recevive space. This
* is that we can manipulate the page tables so that even if a
* is so that we can manipulate the page tables so that even if a
* packet wraps around the end of the receive space, we can
* treat it as virtually contiguous.
*/
@@ -189,16 +187,16 @@ tulip_chipid_t tulip_chipids[NDE];
#define TULIP_CRC32_POLY 0xEDB88320UL /* CRC-32 Poly -- Little Endian */
#define TULIP_CHECK_RXCRC 0
#define TULIP_MAX_TXSEG 32
#define TULIP_MAX_TXSEG 30
#define TULIP_ADDREQUAL(a1, a2) \
(((u_short *)a1)[0] == ((u_short *)a2)[0] \
|| ((u_short *)a1)[1] == ((u_short *)a2)[1] \
|| ((u_short *)a1)[2] == ((u_short *)a2)[2])
&& ((u_short *)a1)[1] == ((u_short *)a2)[1] \
&& ((u_short *)a1)[2] == ((u_short *)a2)[2])
#define TULIP_ADDRBRDCST(a1) \
(((u_short *)a1)[0] == 0xFFFFU \
|| ((u_short *)a1)[1] == 0xFFFFU \
|| ((u_short *)a1)[2] == 0xFFFFU)
&& ((u_short *)a1)[1] == 0xFFFFU \
&& ((u_short *)a1)[2] == 0xFFFFU)
static void tulip_start(struct ifnet *ifp);
static void tulip_addr_filter(tulip_softc_t *sc);
@@ -459,11 +457,14 @@ tulip_tx_intr(
* We've just finished processing a setup packet.
* Mark that we can finished it. If there's not
* another pending, startup the TULIP receiver.
* Make sure we ack the RXSTOPPED so we won't get
* an abormal interrupt indication.
*/
sc->tulip_flags &= ~TULIP_DOINGSETUP;
if ((sc->tulip_flags & TULIP_WANTSETUP) == 0) {
sc->tulip_cmdmode |= TULIP_CMD_RXRUN;
sc->tulip_intrmask |= TULIP_STS_RXSTOPPED;
*sc->tulip_csrs.csr_status = TULIP_STS_RXSTOPPED;
*sc->tulip_csrs.csr_command = sc->tulip_cmdmode;
*sc->tulip_csrs.csr_intr = sc->tulip_intrmask;
}
@@ -516,7 +517,7 @@ tulip_txsegment(
}
}
if (segcnt >= maxseg) {
printf("%s%d: tulip_txsegment: extremely fragmented packet dropped (%d segments)\n",
printf("%s%d: tulip_txsegment: extremely fragmented packet encountered (%d segments)\n",
sc->tulip_name, sc->tulip_unit, segcnt);
return -1;
}
@@ -583,7 +584,6 @@ tulip_start(
segcnt = tulip_txsegment(sc, m, addrvec,
min(ri->ri_max - 1, TULIP_MAX_TXSEG));
if (segcnt < 0) {
#if 0
struct mbuf *m0;
MGETHDR(m0, M_DONTWAIT, MT_DATA);
if (m0 != NULL) {
@@ -594,18 +594,15 @@ tulip_start(
continue;
}
}
m_copydata(m, 0, mtod(m0, caddr_t), m->m_pkthdr.len);
m_copydata(m, 0, m0->m_pkthdr.len, mtod(m0, caddr_t));
m0->m_pkthdr.len = m0->m_len = m->m_pkthdr.len;
m_freem(m);
IF_PREPEND(ifq, m0);
continue;
} else {
#endif
m_freem(m);
continue;
#if 0
}
#endif
}
if (ri->ri_free - 2 <= (segcnt + 1) >> 1)
break;
@@ -635,18 +632,18 @@ tulip_start(
if (++ri->ri_nextout == ri->ri_last)
ri->ri_nextout = ri->ri_first;
} while ((segcnt -= 2) > 0);
#if NBPFILTER > 0
if (sc->tulip_bpf != NULL)
bpf_mtap(sc->tulip_bpf, m);
#endif
/*
* The descriptors have been filled in. Mark the first
* and last segments, indicate we want a transmit complete
* interrupt, give the descriptors to the TULIP, and tell
* it to transmit!
*/
IF_ENQUEUE(&sc->tulip_txq, m);
#if NBPFILTER > 0
if (sc->tulip_bpf)
bpf_mtap(sc->tulip_bpf, m);
#endif
eop->d_flag |= TULIP_DFLAG_TxLASTSEG|TULIP_DFLAG_TxWANTINTR;
sop->d_flag |= TULIP_DFLAG_TxFIRSTSEG;
sop->d_status = TULIP_DSTS_OWNER;
@@ -675,17 +672,17 @@ tulip_intr(
return 1;
}
}
if (csr & TULIP_STS_ABNRMLINTR) {
printf("%s%d: abnormal interrupt: 0x%05x [0x%05x]\n",
sc->tulip_name, sc->tulip_unit, csr, csr & sc->tulip_intrmask);
*sc->tulip_csrs.csr_command = sc->tulip_cmdmode;
}
if (csr & TULIP_STS_RXINTR)
tulip_rx_intr(sc);
if (sc->tulip_txinfo.ri_free < sc->tulip_txinfo.ri_max) {
tulip_tx_intr(sc);
tulip_start(&sc->tulip_if);
}
if (csr & TULIP_STS_ABNRMLINTR) {
printf("%s%d: abnormal interrupt: 0x%05x [0x%05x]\n",
sc->tulip_name, sc->tulip_unit, csr, csr & sc->tulip_intrmask);
*sc->tulip_csrs.csr_command = sc->tulip_cmdmode;
}
}
return 1;
}
@@ -710,8 +707,29 @@ tulip_read_macaddr(
sc->tulip_rombuf[idx] = csr & 0xFF;
}
if (bcmp(&sc->tulip_rombuf[0], &sc->tulip_rombuf[16], 8) != 0)
return -4;
if (bcmp(&sc->tulip_rombuf[0], &sc->tulip_rombuf[16], 8) != 0) {
/*
* Some folks don't use the standard ethernet rom format
* but instead just put the address in the first 6 bytes
* of the rom and let the rest be all 0xffs. (Can we say
* ZNYX???)
*/
for (idx = 6; idx < 32; idx++) {
if (sc->tulip_rombuf[idx] != 0xFF)
return -4;
}
/*
* Make sure the address is not multicast or locally assigned
* that the OUI is not 00-00-00.
*/
if ((sc->tulip_rombuf[0] & 3) != 0)
return -4;
if (sc->tulip_rombuf[0] == 0 && sc->tulip_rombuf[1] == 0
&& sc->tulip_rombuf[2] == 0)
return -4;
bcopy(sc->tulip_rombuf, sc->tulip_hwaddr, 6);
return 0;
}
if (bcmp(&sc->tulip_rombuf[24], testpat, 8) != 0)
return -3;
@@ -846,6 +864,7 @@ tulip_ioctl(
#ifdef INET
case AF_INET: {
((struct arpcom *)ifp)->ac_ipaddr = IA_SIN(ifa)->sin_addr;
tulip_addr_filter(sc); /* reset multicast filtering */
(*ifp->if_init)(ifp->if_unit);
arpwhohas((struct arpcom *)ifp, &IA_SIN(ifa)->sin_addr);
break;
@@ -939,7 +958,6 @@ tulip_attach(
tulip_softc_t *sc)
{
struct ifnet *ifp = &sc->tulip_if;
struct ifaddr *ifa = ifp->if_addrlist;
int cnt;
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_NOTRAILERS | IFF_MULTICAST;
@@ -1052,11 +1070,11 @@ tulip_pci_probe(
if (tulips[idx] == NULL) {
if (device_id == 0x00021011ul) {
tulip_chipids[idx] = TULIP_DC21040;
return "digital dc21040 ethernet";
return "Digital DC21040 Ethernet";
}
if (device_id == 0x00091011ul) {
tulip_chipids[idx] = TULIP_DC21140;
return "digital dc21140 fast ethernet";
return "Digital DC21140 Fast Ethernet";
}
return NULL;
}
@@ -1125,7 +1143,7 @@ tulip_pci_attach(
for (idx = 0; idx < 32; idx++)
printf("%02x", sc->tulip_rombuf[idx]);
printf("\n");
printf("%s%d: %s %d.%d ethernet address %s\n",
printf("%s%d: %s pass %d.%d ethernet address %s\n",
sc->tulip_name, sc->tulip_unit,
tulip_chipdescs[tulip_chipids[sc->tulip_unit]],
(sc->tulip_revinfo & 0xF0) >> 4, sc->tulip_revinfo & 0x0F,
+2 -2
View File
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)vm_swap.c 8.5 (Berkeley) 2/17/94
* $Id: vm_swap.c,v 1.10 1994/10/22 02:41:19 davidg Exp $
* $Id: vm_swap.c,v 1.11 1994/10/22 17:53:35 phk Exp $
*/
#include <sys/param.h>
@@ -404,7 +404,7 @@ swfree(p, index)
return (0);
}
#endif
for (dvbase = 0; dvbase < nblks; dvbase += dmmax) {
for (dvbase = dmmax; dvbase < nblks; dvbase += dmmax) {
blk = nblks - dvbase;
#ifdef SEQSWAP
+2 -2
View File
@@ -1,5 +1,5 @@
# From: @(#)Makefile 8.3 (Berkeley) 1/7/94
# $Id: Makefile,v 1.28 1994/11/12 05:32:46 lars Exp $
# $Id: Makefile,v 1.29 1994/11/20 14:21:25 jkh Exp $
# XXX MISSING: deroff diction graph learn plot
# ptx spell spline struct units xsend
@@ -18,7 +18,7 @@ SUBDIR= apply ar at banner basename biff cal calendar \
nm nohup pagesize passwd paste pr printenv printf quota ranlib rdist \
renice rev rlogin rpcgen rpcinfo rs rsh rup ruptime rusers rwall \
rwho script sed shar showmount size soelim split \
strings strip su symorder talk tcopy tee telnet tftp time tip \
strings strip su symorder talk tconv tcopy tee telnet tftp time tip \
tn3270 touch tput tr true tset tsort tty ul uname unexpand \
unifdef uniq unvis users uudecode uuencode vacation \
vgrind vi vis w wall wc what whereis who whois window write \
+13 -4
View File
@@ -605,6 +605,8 @@ i386_ioconf()
register int uba_n, slave;
int dev_id;
FILE *fp;
static struct device olddev;
struct device *old = &olddev;
fp = fopen(path("ioconf.c"), "w");
if (fp == 0) {
@@ -638,8 +640,9 @@ i386_ioconf()
if (mp == 0 || mp == TO_NEXUS ||
!eq(mp->d_name, "isa"))
continue;
fprintf(fp, "extern struct isa_driver %3.3sdriver;",
dp->d_name);
if(!old->d_name || strcmp(old->d_name, dp->d_name))
fprintf(fp, "extern struct isa_driver %3.3sdriver;",
dp->d_name);
if(eq(dp->d_name, "wdc")) seen_wdc++;
if(eq(dp->d_name, "fdc")) seen_fdc++;
if (dp->d_irq == 2)
@@ -647,9 +650,15 @@ i386_ioconf()
fprintf(stderr, "remapped irq 2 to irq 9, please update your config file\n");
dp->d_irq = 9;
}
if (dp->d_vec != NULL && dp->d_vec->id != NULL)
fprintf(fp, " inthand2_t %s;", shandler(dp));
if (dp->d_vec != NULL && dp->d_vec->id != NULL) {
char buf[32];
strcpy(buf, shandler(old));
if(!old->d_name || strcmp(buf, shandler(dp)))
fprintf(fp, " inthand2_t %s;", shandler(dp));
}
fprintf(fp, "\n");
old = dp;
}
#ifdef STATCLOCK
dev_id = 2;