mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-30 12:25:10 +01:00
Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
324ec40db3 | ||
|
|
17b0776217 | ||
|
|
8d77b4e304 | ||
|
|
157002a7fa | ||
|
|
4c731d7856 | ||
|
|
1afa50deb4 |
No files matched your search
@@ -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 \
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
@@ -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
@@ -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();
|
||||
|
||||
|
||||
@@ -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
@@ -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} ; \
|
||||
|
||||
@@ -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
@@ -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()
|
||||
|
||||
@@ -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 },
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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,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.
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 \
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user