Compare commits

...
Author SHA1 Message Date
cvs2svn 172a0f0d16 This commit was manufactured by cvs2svn to create tag
'RELENG_4_0_0_RELEASE'.
2000-03-20 08:47:53 +00:00
65 changed files with 375 additions and 7830 deletions

No files matched your search

-62
View File
@@ -1,62 +0,0 @@
// -*- C++ -*-
/* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
Written by James Clark ([email protected])
This file is part of groff.
groff is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later
version.
groff is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License along
with groff; see the file COPYING. If not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include <ctype.h>
#ifdef __FreeBSD__
#include <locale.h>
#endif
#include "cmap.h"
cmap cmlower(CMAP_BUILTIN);
cmap cmupper(CMAP_BUILTIN);
#if defined(isascii) && !defined(__FreeBSD__)
#define ISASCII(c) isascii(c)
#else
#define ISASCII(c) (1)
#endif
cmap::cmap()
{
unsigned char *p = v;
for (int i = 0; i <= UCHAR_MAX; i++)
p[i] = i;
}
cmap::cmap(cmap_builtin)
{
// these are initialised by cmap_init::cmap_init()
}
int cmap_init::initialised = 0;
cmap_init::cmap_init()
{
if (initialised)
return;
initialised = 1;
#ifdef __FreeBSD__
(void) setlocale(LC_CTYPE, "");
#endif
for (int i = 0; i <= UCHAR_MAX; i++) {
cmupper.v[i] = ISASCII(i) && islower(i) ? toupper(i) : i;
cmlower.v[i] = ISASCII(i) && isupper(i) ? tolower(i) : i;
}
}
-108
View File
@@ -1,108 +0,0 @@
// -*- C++ -*-
/* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
Written by James Clark ([email protected])
This file is part of groff.
groff is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later
version.
groff is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License along
with groff; see the file COPYING. If not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include <ctype.h>
#ifdef __FreeBSD__
#include <locale.h>
#endif
#include "cset.h"
cset csalpha(CSET_BUILTIN);
cset csupper(CSET_BUILTIN);
cset cslower(CSET_BUILTIN);
cset csdigit(CSET_BUILTIN);
cset csxdigit(CSET_BUILTIN);
cset csspace(CSET_BUILTIN);
cset cspunct(CSET_BUILTIN);
cset csalnum(CSET_BUILTIN);
cset csprint(CSET_BUILTIN);
cset csgraph(CSET_BUILTIN);
cset cscntrl(CSET_BUILTIN);
#if defined(isascii) && !defined(__FreeBSD__)
#define ISASCII(c) isascii(c)
#else
#define ISASCII(c) (1)
#endif
void cset::clear()
{
char *p = v;
for (int i = 0; i <= UCHAR_MAX; i++)
p[i] = 0;
}
cset::cset()
{
clear();
}
cset::cset(const char *s)
{
clear();
while (*s)
v[(unsigned char)*s++] = 1;
}
cset::cset(const unsigned char *s)
{
clear();
while (*s)
v[*s++] = 1;
}
cset::cset(cset_builtin)
{
// these are initialised by cset_init::cset_init()
}
cset &cset::operator|=(const cset &cs)
{
for (int i = 0; i <= UCHAR_MAX; i++)
if (cs.v[i])
v[i] = 1;
return *this;
}
int cset_init::initialised = 0;
cset_init::cset_init()
{
if (initialised)
return;
initialised = 1;
#ifdef __FreeBSD__
(void) setlocale(LC_CTYPE, "");
#endif
for (int i = 0; i <= UCHAR_MAX; i++) {
csalpha.v[i] = ISASCII(i) && isalpha(i);
csupper.v[i] = ISASCII(i) && isupper(i);
cslower.v[i] = ISASCII(i) && islower(i);
csdigit.v[i] = ISASCII(i) && isdigit(i);
csxdigit.v[i] = ISASCII(i) && isxdigit(i);
csspace.v[i] = ISASCII(i) && isspace(i);
cspunct.v[i] = ISASCII(i) && ispunct(i);
csalnum.v[i] = ISASCII(i) && isalnum(i);
csprint.v[i] = ISASCII(i) && isprint(i);
csgraph.v[i] = ISASCII(i) && isgraph(i);
cscntrl.v[i] = ISASCII(i) && iscntrl(i);
}
}
-64
View File
@@ -1,64 +0,0 @@
# $FreeBSD$
# @(#)aliases 5.3 (Berkeley) 5/24/90
#
# Aliases in this file will NOT be expanded in the header from
# Mail, but WILL be visible over networks.
#
# >>>>>>>>>> The program "newaliases" must be run after
# >> NOTE >> this file is updated for any changes to
# >>>>>>>>>> show through to sendmail.
#
#
# See also RFC 2142, `MAILBOX NAMES FOR COMMON SERVICES, ROLES
# AND FUNCTIONS', May 1997
# Pretty much everything else in this file points to "root", so
# you would do well in either reading roots mailbox or forwarding
# roots email from here.
# root: [email protected]
# Basic system aliases -- these MUST be present
MAILER-DAEMON: postmaster
postmaster: root
# General redirections for pseudo accounts
bin: root
daemon: root
games: root
man: root
news: root
nobody: root
operator: root
pop: root
system: root
toor: root
usenet: news
uucp: root
xten: root
# Well-known aliases -- these should be filled in!
# manager:
# dumper:
# BUSINESS-RELATED MAILBOX NAMES
# info:
# marketing:
# sales:
# support:
# NETWORK OPERATIONS MAILBOX NAMES
abuse: root
# noc: root
security: root
# SUPPORT MAILBOX NAMES FOR SPECIFIC INTERNET SERVICES
ftp: root
ftp-bugs: ftp
# hostmaster: root
# webmaster: root
# www: webmaster
# msgs: "| /usr/bin/msgs -s"
# bit-bucket: /dev/null
# dev-null: bit-bucket
@@ -1,8 +0,0 @@
res 240
hor 24
vert 40
unitwidth 10
sizes 10 0
fonts 6 R I B BI S L
tcommand
postpro grotty
@@ -1,2 +0,0 @@
#! /bin/sh -
exec groff -Tps -l -C ${1+"$@"}
File diff suppressed because it is too large. Load diff
-33
View File
@@ -1,33 +0,0 @@
/*-
* Copyright 1996-1998 John D. Polstra.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $FreeBSD$
*/
#include <sys/cdefs.h>
typedef void (*fptr)(void);
static fptr ctor_end[1] __attribute__((section(".ctors"))) __unused = { 0 };
static fptr dtor_end[1] __attribute__((section(".dtors"))) __unused = { 0 };
-4
View File
@@ -104,14 +104,10 @@ END(___CONCAT(_thread_sys_,name))
#define PSYSCALL(name) \
PLEAF(name,0); /* XXX # of args? */ \
WEAK_ALIAS(__CONCAT(_,name), __CONCAT(_thread_sys_,name)); \
WEAK_ALIAS(name, __CONCAT(_,name)); \
CALLSYS_ERROR(name)
#define PRSYSCALL(name) \
PLEAF(name,0); /* XXX # of args? */ \
WEAK_ALIAS(__CONCAT(_,name), __CONCAT(_thread_sys_,name)); \
WEAK_ALIAS(name, __CONCAT(_,name)); \
CALLSYS_ERROR(name) \
RET; \
PEND(name)
+2
View File
@@ -51,4 +51,6 @@ __creat(path, mode)
return(_open(path, O_WRONLY|O_CREAT|O_TRUNC, mode));
}
#ifndef _THREAD_SAFE
__weak_reference(__creat, creat);
#endif
+2
View File
@@ -49,4 +49,6 @@ __pause()
return sigpause(sigblock(0L));
}
#ifndef _THREAD_SAFE
__weak_reference(__pause, pause);
#endif
+2
View File
@@ -68,4 +68,6 @@ __sleep(seconds)
(time_remaining.tv_nsec != 0)); /* round up */
}
#ifndef _THREAD_SAFE
__weak_reference(__sleep, sleep);
#endif
+2
View File
@@ -195,7 +195,9 @@ __tcdrain(fd)
return (ioctl(fd, TIOCDRAIN, 0));
}
#ifndef _THREAD_SAFE
__weak_reference(__tcdrain, tcdrain);
#endif
int
tcflush(fd, which)
+2
View File
@@ -49,4 +49,6 @@ __wait(istat)
return (wait4(WAIT_ANY, istat, 0, (struct rusage *)0));
}
#ifndef _THREAD_SAFE
__weak_reference(__wait, wait);
#endif
+2
View File
@@ -55,4 +55,6 @@ __waitpid(pid, istat, options)
return (wait4(pid, istat, options, (struct rusage *)0));
}
#ifndef _THREAD_SAFE
__weak_reference(__waitpid, waitpid);
#endif
-4
View File
@@ -73,10 +73,6 @@
*/
#define PSYSCALL(x) 2: PIC_PROLOGUE; jmp PIC_PLT(HIDENAME(cerror)); \
ENTRY(__CONCAT(_thread_sys_,x)); \
.weak CNAME(__CONCAT(_,x)); \
.set CNAME(__CONCAT(_,x)),CNAME(__CONCAT(_thread_sys_,x));\
.weak CNAME(x); \
.set CNAME(x),CNAME(__CONCAT(_,x)); \
lea __CONCAT(SYS_,x),%eax; KERNCALL; jb 2b
#define PRSYSCALL(x) PSYSCALL(x); ret
#define PPSEUDO(x,y) ENTRY(__CONCAT(_thread_sys_,x)); \
+1 -1
View File
@@ -840,7 +840,7 @@ _files_ghbyaddr(const void *addr, int addrlen, int af, int *errp)
static struct hostent *
_nis_ghbyname(const char *name, int af, int *errp)
{
struct hostent *hp;
struct hostent *hp = NULL;
if (af == AF_INET) {
hp = _gethostbynisname(name, af);
+2
View File
@@ -94,4 +94,6 @@ __system(command)
return(pid == -1 ? -1 : pstat);
}
#ifndef _THREAD_SAFE
__weak_reference(__system, system);
#endif
+1 -1
View File
@@ -828,7 +828,7 @@ distExtract(char *parent, Distribution *me)
msgConfirm("Unable to transfer all components of the %s distribution.\n"
"You may wish to switch media types and try again.\n", me[i].my_name);
}
else {
else if (me[i].my_bit != DIST_LOCAL) {
status = msgYesNo("Unable to transfer the %s distribution from\n%s.\n\n"
"Do you want to try to retrieve it again?",
me[i].my_name, mediaDevice->name);
+19 -4
View File
@@ -52,6 +52,11 @@
#include <unistd.h>
#include <termios.h>
/* Hack for rsaref package add, which displays interactive license.
* Used by package.c
*/
int _interactiveHack;
static void create_termcap(void);
static void fixit_common(void);
@@ -565,6 +570,7 @@ nodisks:
(void)configLinux(self);
#endif
#ifdef notyet
dialog_clear();
if (USAResident) {
if (!msgYesNo("I see that you are \"USA_RESIDENT\" according to your earlier\n"
@@ -572,12 +578,17 @@ nodisks:
"load the rsaref package from the current media? Some restrictions on\n"
"usage may apply, so be sure to read the package installation output!")) {
dialog_clear();
_interactiveHack = 1;
if (DITEM_STATUS(package_add("rsaref")) != DITEM_SUCCESS) {
msgConfirm("Unable to find an rsaref package on the current intallation media.\n"
"You may wish to switch media types and try again, perhaps\n"
"from an FTP server which carries this package.");
"This is probably because you are installing from a CDROM which\n"
"was produced for world-wide use, in which case the RSA patent\n"
"prevents distribution of RSA code on CD. Please change your\n"
"media device to point to an International FTP server and install\n"
"the rsaref package manually through the Packages menu.");
}
dialog_clear();
_interactiveHack = 0;
}
}
else {
@@ -586,11 +597,15 @@ nodisks:
"load the rsaintl package from the current media?")) {
if (DITEM_STATUS(package_add("rsaintl")) != DITEM_SUCCESS) {
msgConfirm("Unable to find an rsaintl package on the current intallation media.\n"
"You may wish to switch media types and try again, perhaps\n"
"from an FTP server which carries this package.");
"This is probably because you are installing from a CDROM which\n"
"was produced for use in the USA, in which case the RSA patent\n"
"prevents distribution of RSA code on CD. Please change your\n"
"media device to point to an International FTP server and install\n"
"the rsaintl package manually through the Packages menu.");
}
}
}
#endif /* notyet */
dialog_clear_norefresh();
if (!msgYesNo("Does this system have a mouse attached to it?"))
+6 -2
View File
@@ -166,9 +166,13 @@ package_extract(Device *dev, char *name, Boolean depended)
pipe(pfd);
pid = fork();
if (!pid) {
extern int _interactiveHack;
dup2(pfd[0], 0); close(pfd[0]);
dup2(DebugFD, 1);
close(2);
if (!_interactiveHack) {
dup2(DebugFD, 1);
close(2);
}
close(pfd[1]);
if (isDebug())
i = execl("/usr/sbin/pkg_add", "/usr/sbin/pkg_add", "-v", "-", 0);
+4 -4
View File
@@ -1,10 +1,10 @@
-----------------------------------------
FreeBSD 4.0 --- SNAPSHOT Version , ,
FreeBSD 4.0 --- RELEASE Version , ,
----------------------------------------- /( )`
\ \___ / |
This is a binary snapshot of 4.0-current, the /- _ `-/ '
(HEAD) branch which is currently moving towards (/\/ \ \ /\
the release of 4.0. / / | ` \
This is a full release of the new 4.0-stable /- _ `-/ '
(RELENG_4) branch which is currently moving (/\/ \ \ /\
towards the release of 4.1. / / | ` \
O O ) / |
`-^--'`< '
(_.) _ ) /
+4 -10
View File
@@ -1,11 +1,5 @@
RELEASE NOTES
FreeBSD Release 4.0-SNAP
This is a 4.0-CURRENT release SNAPshot of FreeBSD, an active
development branch which will produce its first release in early
March 2000. Those features which have also been back-ported to
the 3.x-stable branch (the next release for which will be 3.5)
are marked [MERGED].
FreeBSD 4.0-RELEASE
Any installation failures or crashes should be reported by using the
send-pr command (those preferring a Web-based interface can also see
@@ -16,7 +10,7 @@ directory (especially if you're installing from floppies!), see
ABOUT.TXT. For installation instructions, see the INSTALL.TXT and
HARDWARE.TXT files.
For the latest of these 4.0-current snapshots, you should always see:
For the latest of these 4.0-stable snapshots, you should always see:
ftp://current.freebsd.org/pub/FreeBSD
@@ -648,7 +642,7 @@ LAST resort!
3.2. CDROM
----------
FreeBSD 3.0-RELEASE and 2.2.x-RELEASE CDs may be ordered on CDROM from:
FreeBSD 4.0-RELEASE and 3.x-RELEASE CDs may be ordered on CDROM from:
Walnut Creek CDROM
4041 Pike Lane, Suite D
@@ -688,7 +682,7 @@ ways of upgrading FreeBSD distributions:
o Using sources, via /usr/src
o Using sysinstall's (binary) upgrade option.
[insert other notes here]
Please read the UPGRADE.TXT file for more information.
5. Reporting problems, making suggestions, submitting code.
+4 -10
View File
@@ -1,11 +1,5 @@
RELEASE NOTES
FreeBSD Release 4.0-SNAP
This is a 4.0-CURRENT release SNAPshot of FreeBSD, an active
development branch which will produce its first release in early
March 2000. Those features which have also been back-ported to
the 3.x-stable branch (the next release for which will be 3.5)
are marked [MERGED].
FreeBSD 4.0-RELEASE
Any installation failures or crashes should be reported by using the
send-pr command (those preferring a Web-based interface can also see
@@ -16,7 +10,7 @@ directory (especially if you're installing from floppies!), see
ABOUT.TXT. For installation instructions, see the INSTALL.TXT and
HARDWARE.TXT files.
For the latest of these 4.0-current snapshots, you should always see:
For the latest of these 4.0-stable snapshots, you should always see:
ftp://current.freebsd.org/pub/FreeBSD
@@ -731,7 +725,7 @@ LAST resort!
3.2. CDROM
----------
FreeBSD 3.0-RELEASE and 2.2.x-RELEASE CDs may be ordered on CDROM from:
FreeBSD 4.0-RELEASE and 3.x-RELEASE CDs may be ordered on CDROM from:
Walnut Creek CDROM
4041 Pike Lane, Suite D
@@ -771,7 +765,7 @@ ways of upgrading FreeBSD distributions:
o Using sources, via /usr/src
o Using sysinstall's (binary) upgrade option.
[insert other notes here]
Please read the UPGRADE.TXT file for more information.
5. Reporting problems, making suggestions, submitting code.
-6
View File
@@ -1,6 +0,0 @@
# ASCII
#
# $FreeBSD$
#
order \
\x00;...;\xff
-174
View File
@@ -1,174 +0,0 @@
NU \x00
SH \x01
SX \x02
EX \x03
ET \x04
EQ \x05
AK \x06
BL \x07
BS \x08
HT \x09
LF \x0a
VT \x0b
FF \x0c
CR \x0d
SO \x0e
SI \x0f
DL \x10
D1 \x11
D2 \x12
D3 \x13
D4 \x14
NK \x15
SY \x16
EB \x17
CN \x18
EM \x19
SB \x1a
EC \x1b
FS \x1c
GS \x1d
RS \x1e
US \x1f
SP \x20
Nb \x23
DO \x24
At \x40
<( \x5b
// \x5c
)> \x5d
'> \x5e
'! \x60
(! \x7b
!! \x7c
!) \x7d
'? \x7e
DT \x7f
PA \x80
HO \x81
BH \x82
NH \x83
IN \x84
NL \x85
SA \x86
ES \x87
HS \x88
HJ \x89
VS \x8a
PD \x8b
PU \x8c
RI \x8d
S2 \x8e
S3 \x8f
DC \x90
P1 \x91
P2 \x92
TS \x93
CC \x94
MW \x95
SG \x96
EG \x97
SS \x98
GC \x99
SC \x9a
CI \x9b
ST \x9c
OC \x9d
PM \x9e
AC \x9f
NS \xa0
!I \xa1
Ct \xa2
Pd \xa3
Cu \xa4
Ye \xa5
BB \xa6
SE \xa7
': \xa8
Co \xa9
-a \xaa
<< \xab
NO \xac
-- \xad
Rg \xae
'm \xaf
DG \xb0
+- \xb1
2S \xb2
3S \xb3
'' \xb4
My \xb5
PI \xb6
.M \xb7
', \xb8
1S \xb9
-o \xba
>> \xbb
14 \xbc
12 \xbd
34 \xbe
?I \xbf
A! \xc0
A' \xc1
A> \xc2
A? \xc3
A: \xc4
AA \xc5
AE \xc6
C, \xc7
E! \xc8
E' \xc9
E> \xca
E: \xcb
I! \xcc
I' \xcd
I> \xce
I: \xcf
D- \xd0
N? \xd1
O! \xd2
O' \xd3
O> \xd4
O? \xd5
O: \xd6
*X \xd7
O/ \xd8
U! \xd9
U' \xda
U> \xdb
U: \xdc
Y' \xdd
TH \xde
ss \xdf
a! \xe0
a' \xe1
a> \xe2
a? \xe3
a: \xe4
aa \xe5
ae \xe6
c, \xe7
e! \xe8
e' \xe9
e> \xea
e: \xeb
i! \xec
i' \xed
i> \xee
i: \xef
d- \xf0
n? \xf1
o! \xf2
o' \xf3
o> \xf4
o? \xf5
o: \xf6
-: \xf7
o/ \xf8
u! \xf9
u' \xfa
u> \xfb
u: \xfc
y' \xfd
th \xfe
y: \xff
-174
View File
@@ -1,174 +0,0 @@
NU \x00
SH \x01
SX \x02
EX \x03
ET \x04
EQ \x05
AK \x06
BL \x07
BS \x08
HT \x09
LF \x0a
VT \x0b
FF \x0c
CR \x0d
SO \x0e
SI \x0f
DL \x10
D1 \x11
D2 \x12
D3 \x13
D4 \x14
NK \x15
SY \x16
EB \x17
CN \x18
EM \x19
SB \x1a
EC \x1b
FS \x1c
GS \x1d
RS \x1e
US \x1f
SP \x20
Nb \x23
DO \x24
At \x40
<( \x5b
// \x5c
)> \x5d
'> \x5e
'! \x60
(! \x7b
!! \x7c
!) \x7d
'? \x7e
DT \x7f
PA \x80
HO \x81
BH \x82
NH \x83
IN \x84
NL \x85
SA \x86
ES \x87
HS \x88
HJ \x89
VS \x8a
PD \x8b
PU \x8c
RI \x8d
S2 \x8e
S3 \x8f
DC \x90
P1 \x91
P2 \x92
TS \x93
CC \x94
MW \x95
SG \x96
EG \x97
SS \x98
GC \x99
SC \x9a
CI \x9b
ST \x9c
OC \x9d
PM \x9e
AC \x9f
NS \xa0
!I \xa1
Ct \xa2
Pd \xa3
Eu \xa4
Ye \xa5
S< \xa6
SE \xa7
s< \xa8
Co \xa9
-a \xaa
<< \xab
NO \xac
-- \xad
Rg \xae
'm \xaf
DG \xb0
+- \xb1
2S \xb2
3S \xb3
Z< \xb4
My \xb5
PI \xb6
.M \xb7
z< \xb8
1S \xb9
-o \xba
>> \xbb
OE \xbc
oe \xbd
Y: \xbe
?I \xbf
A! \xc0
A' \xc1
A> \xc2
A? \xc3
A: \xc4
AA \xc5
AE \xc6
C, \xc7
E! \xc8
E' \xc9
E> \xca
E: \xcb
I! \xcc
I' \xcd
I> \xce
I: \xcf
D- \xd0
N? \xd1
O! \xd2
O' \xd3
O> \xd4
O? \xd5
O: \xd6
*X \xd7
O/ \xd8
U! \xd9
U' \xda
U> \xdb
U: \xdc
Y' \xdd
TH \xde
ss \xdf
a! \xe0
a' \xe1
a> \xe2
a? \xe3
a: \xe4
aa \xe5
ae \xe6
c, \xe7
e! \xe8
e' \xe9
e> \xea
e: \xeb
i! \xec
i' \xed
i> \xee
i: \xef
d- \xf0
n? \xf1
o! \xf2
o' \xf3
o> \xf4
o? \xf5
o: \xf6
-: \xf7
o/ \xf8
u! \xf9
u' \xfa
u> \xfb
u: \xfc
y' \xfd
th \xfe
y: \xff
-174
View File
@@ -1,174 +0,0 @@
NU \x00
SH \x01
SX \x02
EX \x03
ET \x04
EQ \x05
AK \x06
BL \x07
BS \x08
HT \x09
LF \x0a
VT \x0b
FF \x0c
CR \x0d
SO \x0e
SI \x0f
DL \x10
D1 \x11
D2 \x12
D3 \x13
D4 \x14
NK \x15
SY \x16
EB \x17
CN \x18
EM \x19
SB \x1a
EC \x1b
FS \x1c
GS \x1d
RS \x1e
US \x1f
SP \x20
Nb \x23
DO \x24
At \x40
<( \x5b
// \x5c
)> \x5d
'> \x5e
'! \x60
(! \x7b
!! \x7c
!) \x7d
'? \x7e
DT \x7f
PA \x80
HO \x81
BH \x82
NH \x83
IN \x84
NL \x85
SA \x86
ES \x87
HS \x88
HJ \x89
VS \x8a
PD \x8b
PU \x8c
RI \x8d
S2 \x8e
S3 \x8f
DC \x90
P1 \x91
P2 \x92
TS \x93
CC \x94
MW \x95
SG \x96
EG \x97
SS \x98
GC \x99
SC \x9a
CI \x9b
ST \x9c
OC \x9d
PM \x9e
AC \x9f
NS \xa0
A; \xa1
'( \xa2
L/ \xa3
Cu \xa4
L< \xa5
S' \xa6
SE \xa7
': \xa8
S< \xa9
S, \xaa
T< \xab
Z' \xac
-- \xad
Z< \xae
Z. \xaf
DG \xb0
a; \xb1
'; \xb2
l/ \xb3
'' \xb4
l< \xb5
s' \xb6
'< \xb7
', \xb8
s< \xb9
s, \xba
t< \xbb
z' \xbc
'" \xbd
z< \xbe
z. \xbf
R' \xc0
A' \xc1
A> \xc2
A( \xc3
A: \xc4
L' \xc5
C' \xc6
C, \xc7
C< \xc8
E' \xc9
E; \xca
E: \xcb
E< \xcc
I' \xcd
I> \xce
D< \xcf
D/ \xd0
N' \xd1
N< \xd2
O' \xd3
O> \xd4
O" \xd5
O: \xd6
*X \xd7
R< \xd8
U0 \xd9
U' \xda
U" \xdb
U: \xdc
Y' \xdd
T, \xde
ss \xdf
r' \xe0
a' \xe1
a> \xe2
a( \xe3
a: \xe4
l' \xe5
c' \xe6
c, \xe7
c< \xe8
e' \xe9
e; \xea
e: \xeb
e< \xec
i' \xed
i> \xee
d< \xef
d/ \xf0
n' \xf1
n< \xf2
o' \xf3
o> \xf4
o" \xf5
o: \xf6
-: \xf7
r< \xf8
u0 \xf9
u' \xfa
u" \xfb
u: \xfc
y' \xfd
t, \xfe
'. \xff
-175
View File
@@ -1,175 +0,0 @@
# $FreeBSD$
NU \x00
SH \x01
SX \x02
EX \x03
ET \x04
EQ \x05
AK \x06
BL \x07
BS \x08
HT \x09
LF \x0a
VT \x0b
FF \x0c
CR \x0d
SO \x0e
SI \x0f
DL \x10
D1 \x11
D2 \x12
D3 \x13
D4 \x14
NK \x15
SY \x16
EB \x17
CN \x18
EM \x19
SB \x1a
EC \x1b
FS \x1c
GS \x1d
RS \x1e
US \x1f
SP \x20
Nb \x23
DO \x24
At \x40
<( \x5b
// \x5c
)> \x5d
'> \x5e
'! \x60
(! \x7b
!! \x7c
!) \x7d
'? \x7e
DT \x7f
PA \x80
HO \x81
BH \x82
NH \x83
IN \x84
NL \x85
SA \x86
ES \x87
HS \x88
HJ \x89
VS \x8a
PD \x8b
PU \x8c
RI \x8d
S2 \x8e
S3 \x8f
DC \x90
P1 \x91
P2 \x92
TS \x93
CC \x94
MW \x95
SG \x96
EG \x97
SS \x98
GC \x99
SC \x9a
CI \x9b
ST \x9c
OC \x9d
PM \x9e
AC \x9f
NS \xa0
A; \xa1
kk \xa2
R, \xa3
Cu \xa4
I? \xa5
L, \xa6
SE \xa7
': \xa8
S< \xa9
E- \xaa
G, \xab
T/ \xac
-- \xad
Z< \xae
'm \xaf
DG \xb0
a; \xb1
'; \xb2
r, \xb3
'' \xb4
i? \xb5
l, \xb6
'< \xb7
', \xb8
s< \xb9
e- \xba
g, \xbb
t/ \xbc
NG \xbd
z< \xbe
ng \xbf
A- \xc0
A' \xc1
A> \xc2
A? \xc3
A: \xc4
AA \xc5
AE \xc6
I; \xc7
C< \xc8
E' \xc9
E; \xca
E: \xcb
E. \xcc
I' \xcd
I> \xce
I- \xcf
D/ \xd0
N, \xd1
O- \xd2
K, \xd3
O> \xd4
O? \xd5
O: \xd6
*X \xd7
O/ \xd8
U; \xd9
U' \xda
U> \xdb
U: \xdc
U? \xdd
U- \xde
ss \xdf
a- \xe0
a' \xe1
a> \xe2
a? \xe3
a: \xe4
aa \xe5
ae \xe6
i; \xe7
c< \xe8
e' \xe9
e; \xea
e: \xeb
e. \xec
i' \xed
i> \xee
i- \xef
d/ \xf0
n, \xf1
o- \xf2
k, \xf3
o> \xf4
o? \xf5
o: \xf6
-: \xf7
o/ \xf8
u; \xf9
u' \xfa
u> \xfb
u: \xfc
u? \xfd
u- \xfe
'. \xff
-175
View File
@@ -1,175 +0,0 @@
# $FreeBSD$
NU \x00
SH \x01
SX \x02
EX \x03
ET \x04
EQ \x05
AK \x06
BL \x07
BS \x08
HT \x09
LF \x0a
VT \x0b
FF \x0c
CR \x0d
SO \x0e
SI \x0f
DL \x10
D1 \x11
D2 \x12
D3 \x13
D4 \x14
NK \x15
SY \x16
EB \x17
CN \x18
EM \x19
SB \x1a
EC \x1b
FS \x1c
GS \x1d
RS \x1e
US \x1f
SP \x20
Nb \x23
DO \x24
At \x40
<( \x5b
// \x5c
)> \x5d
'> \x5e
'! \x60
(! \x7b
!! \x7c
!) \x7d
'? \x7e
DT \x7f
PA \x80
HO \x81
BH \x82
NH \x83
IN \x84
NL \x85
SA \x86
ES \x87
HS \x88
HJ \x89
VS \x8a
PD \x8b
PU \x8c
RI \x8d
S2 \x8e
S3 \x8f
DC \x90
P1 \x91
P2 \x92
TS \x93
CC \x94
MW \x95
SG \x96
EG \x97
SS \x98
GC \x99
SC \x9a
CI \x9b
ST \x9c
OC \x9d
PM \x9e
AC \x9f
NS \xa0
IO \xa1
D% \xa2
G% \xa3
IE \xa4
DS \xa5
II \xa6
YI \xa7
J% \xa8
LJ \xa9
NJ \xaa
Ts \xab
KJ \xac
-- \xad
V% \xae
DZ \xaf
A= \xb0
B= \xb1
V= \xb2
G= \xb3
D= \xb4
E= \xb5
Z% \xb6
Z= \xb7
I= \xb8
J= \xb9
K= \xba
L= \xbb
M= \xbc
N= \xbd
O= \xbe
P= \xbf
R= \xc0
S= \xc1
T= \xc2
U= \xc3
F= \xc4
H= \xc5
C= \xc6
C% \xc7
S% \xc8
Sc \xc9
=" \xca
Y= \xcb
%" \xcc
JE \xcd
JU \xce
JA \xcf
a= \xd0
b= \xd1
v= \xd2
g= \xd3
d= \xd4
e= \xd5
z% \xd6
z= \xd7
i= \xd8
j= \xd9
k= \xda
l= \xdb
m= \xdc
n= \xdd
o= \xde
p= \xdf
r= \xe0
s= \xe1
t= \xe2
u= \xe3
f= \xe4
h= \xe5
c= \xe6
c% \xe7
s% \xe8
sc \xe9
=' \xea
y= \xeb
%' \xec
je \xed
ju \xee
ja \xef
N0 \xf0
io \xf1
d% \xf2
g% \xf3
ie \xf4
ds \xf5
ii \xf6
yi \xf7
j% \xf8
lj \xf9
nj \xfa
ts \xfb
kj \xfc
SE \xfd
v% \xfe
dz \xff
-39
View File
@@ -1,39 +0,0 @@
# CP866 (backward compatible with ASCII)
#
# $FreeBSD$
#
charmap map.CP866
order \
# controls
<NU>;...;<US>;\
#
<NS>;<SP>;!;\";<Nb>;<DO>;\
%;&;';\(;\);*;+;<-:>;\,;-;.;/;\
# digits
0;1;(2,<2S>);3;...;9;\
#
:;\;;\<;<=<>;=;</>=>;>;?;<Co>;<At>;\
# capital
A;...;Z;\
<A=>;<B=>;<V=>;<G=>;<D=>;<E=>;<IO>;<Z%>;<Z=>;\
<I=>;<J=>;<K=>;<L=>;<M=>;<N=>;<O=>;<P=>;<R=>;\
<S=>;<T=>;<U=>;<F=>;<H=>;<C=>;<C%>;<S%>;<Sc>;\
<=">;<Y=>;<%">;<JE>;<JU>;<JA>;\
#
[;\\;];^;_;`;\
# small
a;...;z;\
<a=>;<b=>;<v=>;<g=>;<d=>;<e=>;<io>;<z%>;<z=>;\
<i=>;<j=>;<k=>;<l=>;<m=>;<n=>;<o=>;<p=>;<r=>;\
<s=>;<t=>;<u=>;<f=>;<h=>;<c=>;<c%>;<s%>;<sc>;\
<='>;<y=>;<%'>;<je>;<ju>;<ja>;\
#
\{;|;\};~;<.M>;<DG>;<DT>;\
#
<sb>;<RT>;<?2>;<Iu>;<Il>;\
<hh>;<HH>;<vv>;<VV>;<dr>;<dR>;<Dr>;<DR>;\
<dl>;<dL>;<Dl>;<LD>;<ur>;<uR>;<Ur>;<UR>;\
<ul>;<uL>;<Ul>;<UL>;<vr>;<vR>;<Vr>;<VR>;\
<vl>;<vL>;<Vl>;<VL>;<dh>;<dH>;<Dh>;<DH>;\
<uh>;<uH>;<Uh>;<UH>;<vh>;<vH>;<Vh>;<VH>;\
<TB>;<LB>;<FB>;<lB>;<RB>;<.S>;<:S>;<?S>;<fS>
-39
View File
@@ -1,39 +0,0 @@
# koi8-r (backward compatible with ASCII)
#
# $FreeBSD$
#
charmap map.KOI8-R
order \
# controls
<NU>;...;<US>;\
#
<NS>;<SP>;!;\";<Nb>;<DO>;\
%;&;';\(;\);*;+;<-:>;\,;-;.;/;\
# digits
0;1;(2,<2S>);3;...;9;\
#
:;\;;\<;<=<>;=;</>=>;>;?;<Co>;<At>;\
# capital
A;...;Z;\
<A=>;<B=>;<V=>;<G=>;<D=>;<E=>;<IO>;<Z%>;<Z=>;\
<I=>;<J=>;<K=>;<L=>;<M=>;<N=>;<O=>;<P=>;<R=>;\
<S=>;<T=>;<U=>;<F=>;<H=>;<C=>;<C%>;<S%>;<Sc>;\
<=">;<Y=>;<%">;<JE>;<JU>;<JA>;\
#
[;\\;];^;_;`;\
# small
a;...;z;\
<a=>;<b=>;<v=>;<g=>;<d=>;<e=>;<io>;<z%>;<z=>;\
<i=>;<j=>;<k=>;<l=>;<m=>;<n=>;<o=>;<p=>;<r=>;\
<s=>;<t=>;<u=>;<f=>;<h=>;<c=>;<c%>;<s%>;<sc>;\
<='>;<y=>;<%'>;<je>;<ju>;<ja>;\
#
\{;|;\};~;<.M>;<DG>;<DT>;\
#
<sb>;<RT>;<?2>;<Iu>;<Il>;\
<hh>;<HH>;<vv>;<VV>;<dr>;<dR>;<Dr>;<DR>;\
<dl>;<dL>;<Dl>;<LD>;<ur>;<uR>;<Ur>;<UR>;\
<ul>;<uL>;<Ul>;<UL>;<vr>;<vR>;<Vr>;<VR>;\
<vl>;<vL>;<Vl>;<VL>;<dh>;<dH>;<Dh>;<DH>;\
<uh>;<uH>;<Uh>;<UH>;<vh>;<vH>;<Vh>;<VH>;\
<TB>;<LB>;<FB>;<lB>;<RB>;<.S>;<:S>;<?S>;<fS>
-177
View File
@@ -1,177 +0,0 @@
.\"
.\" Copyright (c) 1998, 2000
.\" Justin T. Gibbs. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. The name of the author may not be used to endorse or promote products
.\" derived from this software withough specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" $FreeBSD$
.\"
.Dd February 13, 2000
.Dt ADV 4 i386
.Os FreeBSD
.Sh NAME
.Nm adv
.Nd Advansys ISA/VL/EISA/PCI 8bit SCSI Host adapter driver
.Sh SYNOPSIS
For one or more ISA or VL cards:
.Cd device isa
.Cd device "adv0 at isa? port ? irq ? drq ?"
.Pp
For one or more EISA cards:
.Cd device eisa
.Cd device adv
.Pp
For one or more PCI cards:
.Cd device pci
.Cd device adv
.Pp
For one or more SCSI busses:
.Cd device scbus0 at adv0
.Sh DESCRIPTION
This driver provides access to the 8bit
.Tn SCSI
bus connected to the Advanced Systems Products, Inc.
.Tn ASC900 ,
.Tn ASC1000 ,
.Tn ASC1090 ,
.Tn ASC1200 ,
.Tn ASC3030 ,
.Tn ASC3050 ,
and
.Tn ASC3150
host adapter chips.
The following tables list the AdvanSys products using these chips,
their bus attachment type, maximum sync rate, and the maximum number of
commands that can be handled by the adapter concurrently.
.Pp
.Bd -filled -offset indent
.Bl -column "ABP510/5150 " "ISA PnP " "Yes " "10MHz " "Commands " Footnotes
Connectivity Products:
.Pp
.Em "Adapter Bus Floppy MaxSync Commands Footnotes"
ABP510/5150 ISA No 10MHz 240 1
ABP5140 ISA PnP No 10MHz 16 1, 3
ABP5142 ISA PnP Yes 10MHz 16 4
ABP[3]902 PCI No 10MHz 16
ABP3905 PCI No 10MHz 16
ABP915 PCI No 10MHz 16
ABP920 PCI No 10MHz 16
ABP3922 PCI No 10MHz 16
ABP3925 PCI No 10MHz 16
ABP930 PCI No 10MHz 16 5
ABP930U PCI No 20MHz 16
ABP930UA PCI No 20MHz 16
ABP960 PCI No 10MHz 16
ABP960U PCI No 20MHz 16
.El
.Pp
Footnotes:
.Bl -enum -compact
.It
This board has been shipped by HP with the 4020i CD-R drive.
The board has no BIOS so it cannot control a boot device, but
it can control any secondary SCSI device.
.It
This board has been sold by Iomega as a Jaz Jet PCI adapter.
.It
This board has been sold by SIIG as the i540 SpeedMaster.
.It
This board has been sold by SIIG as the i542 SpeedMaster.
.It
This board has been sold by SIIG as the Fast SCSI Pro PCI.
.El
.Ed
.Pp
.Bd -filled -offset indent
.Bl -column "ABP510/5150 " "ISA PnP " "Yes " "10MHz " Commands
Single Channel Products:
.Pp
.Em "Adapter Bus Floppy MaxSync Commands"
ABP542 ISA Yes 10MHz 240
ABP742 EISA Yes 10MHz 240
ABP842 VL Yes 10MHz 240
ABP940 PCI No 10MHz 240
ABP[3]940UA PCI No 20MHz 240
ABP940U PCI No 20MHz 240
ABP3960UA PCI No 20MHz 240
ABP970 PCI No 10MHz 240
ABP970U PCI No 20MHz 240
.El
.Ed
.Pp
.Bd -filled -offset indent
.Bl -column "ABP510/5150 " "ISA PnP " "Yes " "10MHz " "Commands " "Channels "
Multi Channel Products (Commands are per-channel):
.Pp
.Em "Adapter Bus Floppy MaxSync Commands Channels"
ABP752 EISA Yes 10MHz 240 2
ABP852 VL Yes 10MHz 240 2
ABP950 PCI No 10MHz 240 2
ABP980 PCI No 10MHz 240 4
ABP980U PCI No 20MHz 240 4
ABP[3]980UA PCI No 20MHz 16 4
.El
.Ed
.Pp
For ISA or Vesa Local Bus adapters, one kernel config entry is required
for every card to be attached by the system. Specific values for the port
address, irq, and drq may be specified. If wildcard values are used, the
driver will query the device for its current settings and use those. If
the port address is a wildcard, the driver consults an internal table of
possible port address locations and attaches to the first unattached card
it finds. The possible port addresses for these card are 0x110, 0x130,
0x150, 0x190, 0x210, 0x230, 0x250, and 0x330.
.Pp
Per target configuration performed in the
.Tn AdvanceWare
menu, which is accessible at boot,
is honored by this driver.
This includes synchronous/asynchronous transfers,
maximum synchronous negotiation rate, disconnection, tagged queueing,
and the host adapter's SCSI ID.
The global setting for the maximum number of tagged transactions allowed
per target is not honored as the CAM SCSI system will automatically determine
the maximum number of tags a device can receive as well as guarantee fair
resource allocation among devices.
.Sh SEE ALSO
.Xr adw 4 ,
.Xr aha 4 ,
.Xr ahb 4 ,
.Xr ahc 4 ,
.Xr cd 4 ,
.Xr da 4 ,
.Xr sa 4 ,
.Xr scsi 4
.Sh AUTHORS
The
.Nm adv
driver was ported by
.An Justin T. Gibbs
from the Linux driver
written by
.An Bob Frey
of Advanced System Products, Inc.
Many thanks to AdvanSys for providing the original driver under a suitable
license for use in FreeBSD.
.Sh HISTORY
The
.Nm
driver appeared in
.Fx 3.0 .
-89
View File
@@ -1,89 +0,0 @@
.\"
.\" Copyright (c) 1998, 2000
.\" Justin T. Gibbs. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. The name of the author may not be used to endorse or promote products
.\" derived from this software withough specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" $FreeBSD$
.\"
.Dd February 13, 2000
.Dt ADW 4 i386
.Os FreeBSD
.Sh NAME
.Nm adw
.Nd Advansys PCI 16bit SCSI Host adapter driver
.Sh SYNOPSIS
.Cd controller pci
.Cd controller adw
.Pp
For one or more SCSI busses:
.Cd controller scbus0 at adw0
.Sh DESCRIPTION
This driver provides access to the 16bit
.Tn SCSI
bus connected to the Advanced Systems Products, Inc.
.Tn ASC3550 Ultra,
and
.Tn ASC38C0800 Ultra2,
SCSI Host Adapter chips.
AdvanSys products incorporating these chips include the
.Tn ABP[3]940UW,
.Tn ABP950UW,
.Tn ABP970UW,
.Tn ABP3940U2W,
and
.Tn ABP3950U2W.
Both chips support, synchronous transfers
.Pq 20MHz and 40MHz max respectively ,
16bit transfers, tagged queueing,
and up to 253 concurrent SCSI transactions.
.Pp
Per target configuration performed in the
.Tn AdvanceWare
menu, which is accessible at boot,
is honored by this driver.
This includes synchronous/asynchronous transfers,
maximum synchronous negotiation rate, wide transfers, disconnection,
tagged queueing, and the host adapter's SCSI ID.
The global setting for the maximum number of tagged transactions allowed
per target is not honored as the CAM SCSI system will automatically determine
the maximum number of tags a device can receive as well as guarantee fair
resource allocation among devices.
.Sh SEE ALSO
.Xr adv 4 ,
.Xr cd 4 ,
.Xr da 4 ,
.Xr sa 4 ,
.Xr scsi 4
.Sh AUTHORS
The
.Nm
driver was ported by
.An Justin T. Gibbs
from the Linux driver written by
.An Bob Frey
of Advanced System Products, Inc.
Many thanks to AdvanSys for providing the original driver
under a suitable license for use in FreeBSD.
.Sh HISTORY
The
.Nm
driver appeared in
.Fx 3.0 .
-76
View File
@@ -1,76 +0,0 @@
.\"
.\" Copyright (c) 1994 Wilko Bulte
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. The name of the author may not be used to endorse or promote products
.\" derived from this software withough specific prior written permission
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" $FreeBSD$
.\"
.Dd October 15, 1998
.Dt AHA 4 i386
.Os FreeBSD
.Sh NAME
.Nm aha
.Nd Adaptec SCSI host adapter driver
.Sh SYNOPSIS
.Cd device "aha0 at isa? port ? irq ? drq 5"
.Cd device scbus0 at aha0
.Sh DESCRIPTION
This driver provides access to the
.Tn SCSI
bus connected to an Adaptec 154xA, 154xB, 154xC, 154xCF, or 154xCP
host adapter. Host adapters supporting a 154X compatible interface,
such as some Tekram controllers and the Adaptec 174x in 154x
emulation mode can, also be attached with this driver. For optimum
performance, Adaptec 174x controllers should be configured in
enhanced mode and attached via the
.Xr ahb 4
driver.
.Pp
One kernel config entry for every card to be attached by the system is
required. Specific values for the port address, irq, and drq may be
specified. If wildcard values are used, the driver will query the
device for its current settings and use those. If the port address
is a wildcard, the driver consults an internal table of possible port address
locations and attaches to the first unattached card it finds. The possible
port addresses for this card are 0x330, 0x334, 0x230, 0x234, 0x130, and
0x134.
.Sh SEE ALSO
.Xr ahb 4 ,
.Xr ahc 4 ,
.Xr cd 4 ,
.Xr da 4 ,
.Xr sa 4 ,
.Xr scsi 4
.\"
.\" .Sh DIAGNOSTICS
.\"
.Sh AUTHORS
The
.Nm
driver was ported by
.An M. Warner Losh
from the
.Nm bt
driver written by
.An Justin T. Gibbs
-63
View File
@@ -1,63 +0,0 @@
.\"
.\" Copyright (c) 1994 Wilko Bulte
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. The name of the author may not be used to endorse or promote products
.\" derived from this software withough specific prior written permission
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" $FreeBSD$
.\"
.Dd October 15, 1998
.Dt AHB 4 i386
.Os FreeBSD
.Sh NAME
.Nm ahb
.Nd Adaptec EISA SCSI host adapter driver
.Sh SYNOPSIS
.Cd device ahb
.Cd device scbus0 at ahb0
.Sh DESCRIPTION
This driver provides access to the
.Tn SCSI
bus connected to an Adaptec
174x hostadapter in
.Dq Em enhanced
mode.
Tagged queueing and synchronous SCSI transfers are supported.
.Sh CAVEATS
The Adaptec 174X is very sensitive to SCSI bus termination and cable
length. It may also have difficulties operating with some modern devices
that, due to their speed, expose timing problems in the controller. There
are no known mechanisms for working around device incompatibilities of
this nature.
.Sh SEE ALSO
.Xr aha 4 ,
.Xr ahc 4 ,
.Xr cd 4 ,
.Xr da 4 ,
.Xr sa 4 ,
.Xr scsi 4
.Sh AUTHORS
The
.Nm
driver was written by
.An Justin T. Gibbs .
+8
View File
@@ -290,6 +290,14 @@ Set to zero if the link level source address should be filled in automatically
by the the interface output routine. Set to one if the link level source
address will be written, as provided, to the wire. This flag is initialized
to zero by default.
.It Dv BIOCSSEESENT
.It Dv BIOCGSEESENT
.Pq Li u_int
Set or get the flag determining whether locally generated packets on the
interface should be returned by BPF. Set to zero to see only incoming
packets on the interface. Set to one to see packets originating
locally and remotely on the interface. This flag is initialized to one by
default.
.Sh BPF HEADER
The following structure is prepended to each packet returned by
.Xr read 2 :
-135
View File
@@ -1,135 +0,0 @@
.\"
.\" Copyright (c) 1994 Jordan Hubbard
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. The name of the author may not be used to endorse or promote products
.\" derived from this software withough specific prior written permission
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" $FreeBSD$
.\"
.Dd October 16, 1998
.Dt BT 4 i386
.Os FreeBSD
.Sh NAME
.Nm bt
.Nd Buslogic/Mylex MultiMaster SCSI host adapter driver
.Sh SYNOPSIS
.Cd "device bt0 at isa? port ? irq ?"
.Cd device scbus0 at bt0
.Sh DESCRIPTION
This driver provides access to the
.Tn SCSI
bus connected to a Buslogic/Mylex MultiMaster or compatible controller:
.Pp
.Bd -filled -offset indent
.Bl -column "BT-956CD " "ISA " "Commands " Description
MultiMaster "W" Series Host Adapters:
.Pp
.Em "Adapter Bus Commands Description"
BT-948 PCI 192 ULtra SCSI-3
BT-958 PCI 192 Wide ULtra SCSI-3
BT-958D PCI 192 Wide Differential ULtra SCSI-3
.El
.Bl -column "BT-956CD " "ISA " "Commands " Description
MultiMaster "C" Series Host Adapters:
.Pp
.Em "Adapter Bus Commands Description"
BT-946C PCI 100 Fast SCSI-2
BT-956C PCI 100 Wide Fast SCSI-2
BT-956CD PCI 100 Wide Differential Fast SCSI-2
BT-445C VLB 100 Fast SCSI-2
BT-747C EISA 100 Fast SCSI-2
BT-757C EISA 100 Wide Fast SCSI-2
BT-757CD EISA 100 Wide Differential Fast SCSI-2
BT-545C ISA 50 Fast SCSI-2
BT-540CF ISA 50 Fast SCSI-2
.El
.Bl -column "BT-956CD " "ISA " "Commands " Description
MultiMaster "S" Series Host Adapters:
.Pp
.Em "Adapter Bus Commands Description"
BT-445S VLB 30 Fast SCSI-2
BT-747S EISA 30 Fast SCSI-2
BT-747D EISA 30 Differential Fast SCSI-2
BT-757S EISA 30 Wide Fast SCSI-2
BT-757D EISA 30 Wide Differential Fast SCSI-2
BT-545S ISA 30 Fast SCSI-2
BT-542D ISA 30 Differential Fast SCSI-2
BT-742A EISA 30 SCSI-2 (742A revision H)
BT-542B ISA 30 SCSI-2 (542B revision H)
.El
.Bl -column "BT-956CD " "ISA " "Commands " Description
MultiMaster "A" Series Host Adapters:
.Pp
.Em "Adapter Bus Commands Description"
BT-742A EISA 30 SCSI-2 (742A revisions A - G)
BT-542B ISA 30 SCSI-2 (542B revisions A - G)
.El
.Ed
.Pp
AMI FastDisk Host Adapters that are true BusLogic MultiMaster clones are also
supported by this driver.
.Pp
Tagged queueing is supported on 'W' series adapters, 'C' series adapters
with firmware of rev 4.42 and higher, and 'S' series adapters with firmware
of rev 3.35 and higher.
.Pp
Boards with certain firmware revisions may lock up under heavy load to
certain devices, especially if tagged queueing is used. Should you encounter
a problem with your adapter, contact Mylex technical support and ensure you
have the latest firmware for your controller.
.Sh SEE ALSO
.Xr cd 4 ,
.Xr da 4 ,
.Xr sa 4 ,
.Xr scsi 4
.Sh AUTHORS
.An Julian Elischer
wrote a driver for the Multimaster cards that appeared in the 386BSD
patch kit. The driver was rewritten by
.An Justin T. Gibbs
to take advantage of new board features and work with the CAM SCSI framework in
.Fx 3.0 .
.Pp
Special thanks to
.An Leonard N. Zubkoff
for writing such a complete and well documented Mylex/BusLogic MultiMaster
driver for Linux. Support in this driver for the wide range of MultiMaster
controllers and firmware revisions, with their otherwise undocumented quirks,
would not have been possible without his efforts.
.Sh FILES
.Bl -tag -width /usr/share/man0/template.doc -compact
.It Pa sys/dev/buslogic/bt.c
Core Driver Implementation
.It Pa sys/dev/buslogic/btreg.h
MultiMaster Register Set and Core Driver Data Structures
.It Pa sys/pci/bt_pci.c
PCI Bus Driver Attachment
.It Pa sys/i386/eisa/bt_eisa.c
EISA Bus Driver Attachment
.It Pa sys/i386/isa/bt_isa.c
ISA/VL Bus Driver Attachment
.El
.Sh HISTORY
The
.Nm
driver first appeared in the 386BSD patch kit.
-77
View File
@@ -1,77 +0,0 @@
.\"
.\" Copyright (c) 1998 Justin T. Gibbs
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. The name of the author may not be used to endorse or promote products
.\" derived from this software without specific prior written permission
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" $FreeBSD$
.\"
.Dd October 16, 1998
.Dt DPT 4 i386
.Os FreeBSD 3.0
.Sh NAME
.Nm dpt
.Nd DPT RAID Controller SCSI driver
.Sh SYNOPSIS
For one or more EISA Controllers
.Cd "device eisa"
.Cd "device dpt"
.Pp
For one or more PCI Controllers
.Cd "device pci"
.Cd "device dpt"
.Pp
To allow PCI adapters to use memory mapped I/O if enabled:
.Cd options DPT_ALLOW_MEMIO
.Pp
.Sh DESCRIPTION
The
.Nm
driver provides support for the DPT Smart Cache Plus, Smart Cache III,
Smart Raid III, Smart Cache IV, and Smart RAID IV families of procucts.
.Sh FILES
.Bl -tag -width /usr/share/man0/template.doc -compact
.It Pa sys/dev/dpt/dpt_scsi.c
Core Driver Implementation
.It Pa sys/dev/dpt/dpt.h
Register Set and Core Driver Data Structures
.It Pa sys/pci/dpt_pci.c
PCI Bus Driver Attachment
.It Pa sys/i386/eisa/dpt_eisa.c
EISA Bus Driver Attachment
.El
.Sh SEE ALSO
.Xr cd 4 ,
.Xr ch 4 ,
.Xr da 4 ,
.Xr sa 4 ,
.Xr scsi 4
.Sh AUTHORS
The
.Nm
driver was written by
.An Simon Shapiro
and ported to the CAM SCSI system by
.An Justin T. Gibbs .
.Sh HISTORY
The
.Nm
driver first appeared in
.Fx 2.2.6 .
-96
View File
@@ -1,96 +0,0 @@
.\"
.\" $FreeBSD$
.\"
.Dd January 23, 1995
.Dt JOY 4 i386
.Sh NAME
.Nm joy
.Nd joystick device driver
.Sh SYNOPSIS
.Cd device joy0 at isa? port "IO_GAME"
.Fd #include <machine/joystick.h>
.Sh DESCRIPTION
The joystick device driver allows applications to read the status of
the PC joystick.
.Pp
This device may be opened by only one process at a time.
.Pp
The joystick status is read from a structure via a read()
call.
The structure is defined in the header file as follows:
.Pp
.Bd -literal -offset indent
struct joystick {
int x; /* x position */
int y; /* y position */
int b1; /* button 1 status */
int b2; /* button 2 status */
};
.Ed
.Pp
Positions are typically in the range 0-2000.
.Ss One line perl example:
perl -e 'open(JOY,"/dev/joy0")||die;while(1)
.br
{sysread(JOY,$x,16);@j=unpack("iiii",$x);print "@j\\n";sleep(1);}'
.Ss ioctl calls
Several ioctl() calls are also available.
They take an argument of
type int *
.Bl -tag -width JOY_SET_X_OFFSET
.It Dv JOY_SETTIMEOUT Fa int *limit
Set the time limit (in microseconds) for reading the joystick
status.
Setting a value
too small may prevent to get correct values for the positions (which
are then set to -2147483648), however this can be useful if one is
only interested by the buttons status.
.It Dv JOY_GETTIMEOUT Fa int *limit
Get the time limit (in microseconds) used for reading the joystick
status.
.It Dv JOY_SET_X_OFFSET Fa int *offset
Set the value to be added to the X position when reading the joystick
status.
.It Dv JOY_SET_Y_OFFSET Fa int *offset
Set the value to be added to the Y position when reading the joystick
status.
.It Dv JOY_GET_X_OFFSET Fa int *offset
Get the value which is added to the X position when reading the joystick
status.
.It Dv JOY_GET_Y_OFFSET Fa int *offset
Get the value which is added to the Y position when reading the joystick
status.
.Sh TECHNICAL SPECIFICATIONS
The pinout of the DB-15 connector is as follow:
.Pp
1 XY1 (+5v)
2 Switch 1
3 X1 (potentiometer #1)
4 Switch 1 (GND)
5 Switch 2 (GND)
6 Y1 (potentiometer #2)
7 Switch 2
8 N.C.
9 XY2 (+5v)
10 Switch 4
11 X2 (potentiometer #3)
12 Switch 3&4 (GND)
13 Y2 (potentiometer #4)
14 Switch 3
15 N.C.
.Pp
Pots are normally 0-150k variable resistors (0-100k sometimes), and
according to the IBM techref, the time is given by
Time = 24.2e-6s + 0.011e-6s * R/Ohms
.Sh FILES
.Bl -tag -width /dev/joy?
.It Pa /dev/joy?
joystick device files
.Sh AUTHORS
.An Jean-Marc Zucconi Aq [email protected]
.Sh HISTORY
The joystick driver appeared in
.Fx 2.0.5 .
-131
View File
@@ -1,131 +0,0 @@
.\" Copyright (c) 1998, 1999, Nicolas Souchu
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $FreeBSD$
.\"
.Dd March 5, 1998
.Dt PPC 4 i386
.Os FreeBSD
.Sh NAME
.Nm ppc
.Nd
Parallel port chipset driver
.Sh SYNOPSIS
.Cd "device ppc0 at isa? port? flags 0xXX irq 7"
.Pp
For one or more PPBUS busses:
.Cd "device ppbus at ppc0"
.Sh DESCRIPTION
The
.Nm
driver provides low level support to various parallel port chipsets for the
.Xr ppbus 4
system.
.Pp
During the probe phase,
.Nm
detects parallel port chipsets and initializes
private data according to their operating mode: COMPATIBLE,
NIBBLE, PS/2, EPP, ECP and other mixed modes.
If a mode is provided at startup through the
.Va flags
variable of the boot
interface, the operating mode of the chipset is forced according to
.Va flags
and the hardware supported modes.
.Pp
During the attach phase,
.Nm
allocates a ppbus structure, initializes it and calls the ppbus
attach function.
.Ss Supported flags
.Bl -item -offset indent
.It
bits 0-3: chipset forced mode(s)
.Bd -literal
PPB_COMPATIBLE 0x0 /* Centronics compatible mode */
PPB_NIBBLE 0x1 /* reverse 4 bit mode */
PPB_PS2 0x2 /* PS/2 byte mode */
PPB_EPP 0x4 /* EPP mode, 32 bit */
PPB_ECP 0x8 /* ECP mode */
.Ed
.Pp
And any mixed values.
.It
bit 4: EPP protocol (0 EPP 1.9, 1 EPP 1.7)
.It
bit 5: activate IRQ (1 IRQ disabled, 0 IRQ enabled)
.It
bit 6: disable chipset specific detection
.It
bit 7: disable FIFO detection
.El
.Ss Supported chipsets
Some parallel port chipsets are explicitly supported:
detection and initialisation code has been written according to
their datasheets.
.Bl -bullet -offset indent
.It
SMC FDC37C665GT and FDC37C666GT chipsets
.It
Natsemi PC873xx-family (PC87332 and PC87306)
.It
Winbond W83877xx-family (W83877F and W83877AF)
.It
SMC-like chipsets with mixed modes (see
.Xr ppbus 4 )
.El
.Ss Adding support to a new chipset
You may want to add support for the newest chipset your motherboard was
sold with.
For the ISA bus, just retrieve the specs of the chipset and write the
corresponding
.Fn ppc_mychipset_detect ""
function.
Then add an entry to the general purpose
.Fn ppc_detect ""
function.
.Pp
Your
.Fn ppc_mychipset_detect ""
function should ensure that if the mode field of the
.Va flags
boot variable is not null, then the operating
mode is forced to the given mode and no other mode is available and
ppb->ppb_avm field contains the available modes of the chipset.
.Sh SEE ALSO
.Xr ppbus 4 ,
.Xr ppi 4
.Sh BUGS
The chipset detection process may corrupt your chipset configuration.
You may
disable chipset specific detection by using the above flags.
.Sh HISTORY
The
.Nm
manual page first appeared in
.Fx 3.0 .
.Sh AUTHORS
This manual page was written by
.An Nicolas Souchu .
-113
View File
@@ -1,113 +0,0 @@
.\" Copyright (c) 1997, 1998, 1999
.\" Bill Paul <[email protected]>. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by Bill Paul.
.\" 4. Neither the name of the author nor the names of any co-contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
.\" THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" $FreeBSD$
.\"
.Dd April 21, 1999
.Dt WI 4 i386
.Os FreeBSD
.Sh NAME
.Nm wi
.Nd
Lucent Technologies WaveLAN/IEEE 802.11 PCMCIA driver
.Sh SYNOPSIS
.Cd "device wi"
.Sh DESCRIPTION
The
.Nm
driver provides support for WaveLAN/IEEE PCCARD adapters (also known
as WaveLAN II cards). Note that while Lucent sells both ISA and PCMCIA
WaveLAN/IEEE devices, the ISA product is actually a PCMCIA card in an
ISA to PCMCIA bridge adapter.
Consequently, the
.Nm
driver is required for both the ISA and PCMCIA NICs.
Both the original
2Mbps WaveLAN/IEEE cards and the newer 6Mbps WaveLAN/IEEE Turbo
adapters are supported.
.Pp
The core of the WaveLAN/IEEE is the Lucent Hermes controller.
All
host/device interaction is via programmed I/O with the Hermes.
The
Hermes supports 802.11 and 802.3 frames, power management, BSS, WDS
and ad-hoc operation modes.
The
.Nm
driver encapsulates all IP and ARP traffic as 802.11 frames, however
it can receive either 802.11 or 802.3 frames.
Transmit speed is
selectable between 1Mbps fixed, 2Mbps fixed or 2Mbps with auto fallback.
For WaveLAN/IEEE Turbo adapters, speeds up to 6Mbps are available.
.Pp
By default, the
.Nm
driver configures the WaveLAN card for ad-hoc operation.
In this mode,
stations can communicate among each other without the aid of an access
point.
To join a service set, the driver must be set for BSS mode using
the
.Xr wicontrol 8
utility.
.Pp
For more information on configuring this device, see
.Xr ifconfig 8
.Sh DIAGNOSTICS
.Bl -diag
.It "wi%d: init failed"
The WaveLAN failed to come ready after an initialization command was
issued.
.It "wi%d: failed to allocate %d bytes on NIC"
The driver was unable to allocate memory for transmit frames in the
NIC's on-board RAM.
.It "wi%d: device timeout"
The WaveLAN failed to generate an interrupt to acknowledge a transmit
command.
.El
.Sh SEE ALSO
.Xr arp 4 ,
.Xr netintro 4 ,
.Xr ifconfig 8 ,
.Xr wicontrol 8
.Rs
.%T HCF Light programming specification
.%O http://www.wavelan.com
.Re
.Sh HISTORY
The
.Nm
device driver first appeared in
.Fx 3.0 .
.Sh AUTHORS
The
.Nm
driver was written by
.An Bill Paul Aq [email protected] .
-12
View File
@@ -1,12 +0,0 @@
# $FreeBSD$
sysnames="/dev/null"
sysproto="linux_proto.h"
sysproto_h=_LINUX_SYSPROTO_H_
syshdr="linux_syscall.h"
syssw="linux_sysent.c"
sysmk="/dev/null"
syshide="/dev/null"
syscallprefix="LINUX_SYS_"
switchname="linux_sysent"
namesname="linux_syscallnames"
sysvec="\n"
+9 -6
View File
@@ -329,6 +329,7 @@ targenlun(struct cam_periph *periph)
xpt_setup_ccb(&atio->ccb_h, periph->path, /*priority*/1);
atio->ccb_h.func_code = XPT_ACCEPT_TARGET_IO;
atio->ccb_h.cbfcnp = targdone;
atio->ccb_h.ccb_flags = TARG_CCB_NONE;
xpt_action((union ccb *)atio);
status = atio->ccb_h.status;
if (status != CAM_REQ_INPROG) {
@@ -734,6 +735,7 @@ targfreeinstance(struct ioc_alloc_unit *alloc_unit)
/* Find our instance. */
if ((periph = cam_periph_find(path, "targ")) == NULL) {
xpt_print_path(path);
printf("Invalid path specified for freeing target instance\n");
status = CAM_PATH_INVALID;
goto fail;
}
@@ -984,8 +986,8 @@ targsendccb(struct cam_periph *periph, union ccb *ccb, union ccb *inccb)
&softc->device_stats);
if (ccb->ccb_h.func_code == XPT_CONT_TARGET_IO)
TAILQ_INSERT_TAIL(&softc->pending_queue, &ccb->ccb_h,
periph_links.tqe);
TAILQ_REMOVE(&softc->pending_queue, &ccb->ccb_h,
periph_links.tqe);
} else {
ccb->ccb_h.status = CAM_UNACKED_EVENT;
error = 0;
@@ -1405,6 +1407,7 @@ targdone(struct cam_periph *periph, union ccb *done_ccb)
atio->ccb_h.flags |= CAM_DIR_NONE;
descr->data_resid = 0;
descr->data_increment = 0;
descr->timeout = 5 * 1000;
descr->status = SCSI_STATUS_CHECK_COND;
copy_sense(softc, istate, (u_int8_t *)&atio->sense_data,
atio->sense_len);
@@ -1460,6 +1463,7 @@ targdone(struct cam_periph *periph, union ccb *done_ccb)
inq = (struct scsi_inquiry *)cdb;
sense = &istate->sense_data;
descr->status = SCSI_STATUS_OK;
CAM_DEBUG(periph->path, CAM_DEBUG_PERIPH,
("Saw an inquiry!\n"));
/*
@@ -1473,6 +1477,7 @@ targdone(struct cam_periph *periph, union ccb *done_ccb)
atio->ccb_h.flags |= CAM_DIR_NONE;
descr->data_resid = 0;
descr->data_increment = 0;
descr->timeout = 5 * 1000;
descr->status = SCSI_STATUS_CHECK_COND;
fill_sense(softc, atio->init_id,
SSD_CURRENT_ERROR,
@@ -1517,7 +1522,6 @@ targdone(struct cam_periph *periph, union ccb *done_ccb)
inq->length);
descr->data_increment = descr->data_resid;
descr->timeout = 5 * 1000;
descr->status = SCSI_STATUS_OK;
break;
}
case TEST_UNIT_READY:
@@ -1904,7 +1908,6 @@ targerror(union ccb *ccb, u_int32_t cam_flags, u_int32_t sense_flags)
istate = &softc->istate[csio->init_id];
switch (status) {
case CAM_REQ_ABORTED:
printf("Request Aborted!\n");
if ((ccb->ccb_h.ccb_flags & TARG_CCB_ABORT_TO_HELDQ) != 0) {
/*
@@ -2102,7 +2105,7 @@ set_ca_condition(struct cam_periph *periph, u_int initiator_id, ca_types ca)
softc = (struct targ_softc *)periph->softc;
softc->istate[initiator_id].pending_ca = ca;
abort_pending_transactions(periph, initiator_id, TARG_TAG_WILDCARD,
/* errno */0, /*to_held_queue*/TRUE);
/*errno*/0, /*to_held_queue*/TRUE);
}
static void
@@ -2192,7 +2195,7 @@ abort_pending_transactions(struct cam_periph *periph, u_int initiator_id,
CAM_DEBUG(periph->path, CAM_DEBUG_PERIPH,
("Aborting CTIO\n"));
TAILQ_REMOVE(&softc->work_queue, &csio->ccb_h,
TAILQ_REMOVE(&softc->pending_queue, &csio->ccb_h,
periph_links.tqe);
if (to_held_queue != 0)
+1 -1
View File
@@ -36,7 +36,7 @@
TYPE="FreeBSD"
REVISION="4.0"
BRANCH="STABLE"
BRANCH="RELEASE"
RELEASE="${REVISION}-${BRANCH}"
SNAPDATE=""
if [ "X${SNAPDATE}" != "X" ]; then
+2 -5
View File
@@ -1526,17 +1526,14 @@ acquire_seeprom(struct ahc_softc *ahc, struct seeprom_descriptor *sd)
}
static void
release_seeprom(sd)
struct seeprom_descriptor *sd;
release_seeprom(struct seeprom_descriptor *sd)
{
/* Release access to the memory port and the serial EEPROM. */
SEEPROM_OUTB(sd, 0);
}
static void
write_brdctl(ahc, value)
struct ahc_softc *ahc;
u_int8_t value;
write_brdctl(struct ahc_softc *ahc, u_int8_t value)
{
u_int8_t brdctl;
+153 -91
View File
@@ -259,6 +259,7 @@ static void ahc_free_tstate(struct ahc_softc *ahc,
u_int scsi_id, char channel, int force);
static void ahc_handle_en_lun(struct ahc_softc *ahc, struct cam_sim *sim,
union ccb *ccb);
static void ahc_update_scsiid(struct ahc_softc *ahc, u_int targid_mask);
static int ahc_handle_target_cmd(struct ahc_softc *ahc,
struct target_cmd *cmd);
static void ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat);
@@ -541,12 +542,22 @@ ahc_run_tqinfifo(struct ahc_softc *ahc, int paused)
* Lazily update our position in the target mode incomming
* command queue as seen by the sequencer.
*/
if ((ahc->tqinfifonext & (TQINFIFO_UPDATE_CNT-1)) == 0) {
if (!paused)
pause_sequencer(ahc);
ahc_outb(ahc, KERNEL_TQINPOS, ahc->tqinfifonext - 1);
if (!paused)
if ((ahc->tqinfifonext & (HOST_TQINPOS - 1)) == 1) {
if ((ahc->features & AHC_HS_MAILBOX) != 0) {
u_int hs_mailbox;
hs_mailbox = ahc_inb(ahc, HS_MAILBOX);
hs_mailbox &= ~HOST_TQINPOS;
hs_mailbox |= ahc->tqinfifonext & HOST_TQINPOS;
ahc_outb(ahc, HS_MAILBOX, hs_mailbox);
} else {
if (!paused)
pause_sequencer(ahc);
ahc_outb(ahc, KERNEL_TQINPOS,
ahc->tqinfifonext & HOST_TQINPOS);
if (!paused)
unpause_sequencer(ahc);
}
}
}
}
@@ -655,18 +666,18 @@ ahc_print_scb(struct scb *scb)
{
struct hardware_scb *hscb = scb->hscb;
printf("scb:%p control:0x%x tcl:0x%x cmdlen:%d cmdpointer:0x%lx\n",
printf("scb:%p control:0x%x tcl:0x%x cmdlen:%d cmdpointer:0x%x\n",
scb,
hscb->control,
hscb->tcl,
hscb->cmdlen,
hscb->cmdpointer );
printf(" datlen:%d data:0x%lx segs:0x%x segp:0x%lx\n",
hscb->cmdpointer);
printf(" datlen:%d data:0x%x segs:0x%x segp:0x%x\n",
hscb->datalen,
hscb->data,
hscb->SG_count,
hscb->SG_pointer);
printf(" sg_addr:%lx sg_len:%ld\n",
printf(" sg_addr:%x sg_len:%d\n",
scb->sg_list[0].addr,
scb->sg_list[0].len);
printf(" cdb:%x %x %x %x %x %x %x %x %x %x %x %x\n",
@@ -715,8 +726,8 @@ static const int num_phases = (sizeof(phase_table)/sizeof(phase_table[0])) - 1;
*/
#define AHC_SYNCRATE_DT 0
#define AHC_SYNCRATE_ULTRA2 1
#define AHC_SYNCRATE_ULTRA 2
#define AHC_SYNCRATE_FAST 5
#define AHC_SYNCRATE_ULTRA 3
#define AHC_SYNCRATE_FAST 6
static struct ahc_syncrate ahc_syncrates[] = {
/* ultra2 fast/ultra period rate */
{ 0x42, 0x000, 9, "80.0" },
@@ -1901,7 +1912,7 @@ ahc_handle_en_lun(struct ahc_softc *ahc, struct cam_sim *sim, union ccb *ccb)
ahc->enabled_luns++;
if ((ahc->features & AHC_MULTI_TID) != 0) {
u_int16_t targid_mask;
u_int targid_mask;
targid_mask = ahc_inb(ahc, TARGID)
| (ahc_inb(ahc, TARGID + 1) << 8);
@@ -1909,6 +1920,8 @@ ahc_handle_en_lun(struct ahc_softc *ahc, struct cam_sim *sim, union ccb *ccb)
targid_mask |= target_mask;
ahc_outb(ahc, TARGID, targid_mask);
ahc_outb(ahc, TARGID+1, (targid_mask >> 8));
ahc_update_scsiid(ahc, targid_mask);
} else {
int our_id;
char channel;
@@ -1964,6 +1977,7 @@ ahc_handle_en_lun(struct ahc_softc *ahc, struct cam_sim *sim, union ccb *ccb)
printf("Lun now enabled for target mode\n");
} else {
struct ccb_hdr *elm;
int i, empty;
if (lstate == NULL) {
ccb->ccb_h.status = CAM_LUN_INVALID;
@@ -1992,70 +2006,108 @@ ahc_handle_en_lun(struct ahc_softc *ahc, struct cam_sim *sim, union ccb *ccb)
ccb->ccb_h.status = CAM_REQ_INVALID;
}
if (ccb->ccb_h.status == CAM_REQ_CMP) {
int i, empty;
if (ccb->ccb_h.status != CAM_REQ_CMP) {
splx(s);
return;
}
xpt_print_path(ccb->ccb_h.path);
printf("Target mode disabled\n");
xpt_free_path(lstate->path);
free(lstate, M_DEVBUF);
xpt_print_path(ccb->ccb_h.path);
printf("Target mode disabled\n");
xpt_free_path(lstate->path);
free(lstate, M_DEVBUF);
pause_sequencer(ahc);
/* Can we clean up the target too? */
if (target != CAM_TARGET_WILDCARD) {
tstate->enabled_luns[lun] = NULL;
ahc->enabled_luns--;
for (empty = 1, i = 0; i < 8; i++)
if (tstate->enabled_luns[i] != NULL) {
empty = 0;
break;
}
pause_sequencer(ahc);
/* Can we clean up the target too? */
if (target != CAM_TARGET_WILDCARD) {
tstate->enabled_luns[lun] = NULL;
ahc->enabled_luns--;
for (empty = 1, i = 0; i < 8; i++)
if (tstate->enabled_luns[i] != NULL) {
empty = 0;
break;
}
if (empty) {
ahc_free_tstate(ahc, target, channel,
/*force*/FALSE);
if (ahc->features & AHC_MULTI_TID) {
u_int16_t targid_mask;
if (empty) {
ahc_free_tstate(ahc, target, channel,
/*force*/FALSE);
if (ahc->features & AHC_MULTI_TID) {
u_int targid_mask;
targid_mask =
ahc_inb(ahc, TARGID)
targid_mask = ahc_inb(ahc, TARGID)
| (ahc_inb(ahc, TARGID + 1)
<< 8);
targid_mask &= ~target_mask;
ahc_outb(ahc, TARGID,
targid_mask);
ahc_outb(ahc, TARGID+1,
(targid_mask >> 8));
}
targid_mask &= ~target_mask;
ahc_outb(ahc, TARGID, targid_mask);
ahc_outb(ahc, TARGID+1,
(targid_mask >> 8));
ahc_update_scsiid(ahc, targid_mask);
}
} else {
ahc->black_hole = NULL;
/*
* We can't allow selections without
* our black hole device.
*/
empty = TRUE;
}
if (ahc->enabled_luns == 0) {
/* Disallow select-in */
u_int scsiseq;
} else {
scsiseq = ahc_inb(ahc, SCSISEQ_TEMPLATE);
scsiseq &= ~ENSELI;
ahc_outb(ahc, SCSISEQ_TEMPLATE, scsiseq);
scsiseq = ahc_inb(ahc, SCSISEQ);
scsiseq &= ~ENSELI;
ahc_outb(ahc, SCSISEQ, scsiseq);
}
unpause_sequencer(ahc);
ahc->black_hole = NULL;
/*
* We can't allow selections without
* our black hole device.
*/
empty = TRUE;
}
if (ahc->enabled_luns == 0) {
/* Disallow select-in */
u_int scsiseq;
scsiseq = ahc_inb(ahc, SCSISEQ_TEMPLATE);
scsiseq &= ~ENSELI;
ahc_outb(ahc, SCSISEQ_TEMPLATE, scsiseq);
scsiseq = ahc_inb(ahc, SCSISEQ);
scsiseq &= ~ENSELI;
ahc_outb(ahc, SCSISEQ, scsiseq);
}
unpause_sequencer(ahc);
splx(s);
}
}
static void
ahc_update_scsiid(struct ahc_softc *ahc, u_int targid_mask)
{
u_int scsiid_mask;
u_int scsiid;
if ((ahc->features & AHC_MULTI_TID) == 0)
panic("ahc_update_scsiid called on non-multitid unit\n");
/*
* Since we will rely on the the TARGID mask
* for selection enables, ensure that OID
* in SCSIID is not set to some other ID
* that we don't want to allow selections on.
*/
if ((ahc->features & AHC_ULTRA2) != 0)
scsiid = ahc_inb(ahc, SCSIID_ULTRA2);
else
scsiid = ahc_inb(ahc, SCSIID);
scsiid_mask = 0x1 << (scsiid & OID);
if ((targid_mask & scsiid_mask) == 0) {
u_int our_id;
/* ffs counts from 1 */
our_id = ffs(targid_mask);
if (our_id == 0)
our_id = ahc->our_id;
else
our_id--;
scsiid &= TID;
scsiid |= our_id;
}
if ((ahc->features & AHC_ULTRA2) != 0)
ahc_outb(ahc, SCSIID_ULTRA2, scsiid);
else
ahc_outb(ahc, SCSIID, scsiid);
}
static int
ahc_handle_target_cmd(struct ahc_softc *ahc, struct target_cmd *cmd)
{
@@ -2080,23 +2132,23 @@ ahc_handle_target_cmd(struct ahc_softc *ahc, struct target_cmd *cmd)
/*
* Commands for disabled luns go to the black hole driver.
*/
if (lstate == NULL) {
if (lstate == NULL)
lstate = ahc->black_hole;
atio =
(struct ccb_accept_tio*)SLIST_FIRST(&lstate->accept_tios);
} else {
atio =
(struct ccb_accept_tio*)SLIST_FIRST(&lstate->accept_tios);
}
atio = (struct ccb_accept_tio*)SLIST_FIRST(&lstate->accept_tios);
if (atio == NULL) {
ahc->flags |= AHC_TQINFIFO_BLOCKED;
printf("No ATIOs for incoming command\n");
/*
* Wait for more ATIOs from the peripheral driver for this lun.
*/
return (1);
} else
ahc->flags &= ~AHC_TQINFIFO_BLOCKED;
#if 0
printf("Incoming command from %d for %d:%d%s\n",
initiator, target, lun,
lstate == ahc->black_hole ? "(Black Holed)" : "");
#endif
SLIST_REMOVE_HEAD(&lstate->accept_tios, sim_links.sle);
if (lstate == ahc->black_hole) {
@@ -2109,6 +2161,7 @@ ahc_handle_target_cmd(struct ahc_softc *ahc, struct target_cmd *cmd)
* Package it up and send it off to
* whomever has this lun enabled.
*/
atio->sense_len = 0;
atio->init_id = initiator;
if (byte[0] != 0xFF) {
/* Tag was included */
@@ -4122,6 +4175,11 @@ ahc_init(struct ahc_softc *ahc)
for (i = 0; i < 256; i++)
ahc->qoutfifo[i] = SCB_LIST_NULL;
if ((ahc->features & AHC_MULTI_TID) != 0) {
ahc_outb(ahc, TARGID, 0);
ahc_outb(ahc, TARGID + 1, 0);
}
if ((ahc->flags & AHC_TARGETMODE) != 0) {
ahc->targetcmds = (struct target_cmd *)&ahc->untagged_scbs[256];
@@ -4130,8 +4188,9 @@ ahc_init(struct ahc_softc *ahc)
/* All target command blocks start out invalid. */
for (i = 0; i < AHC_TMODE_CMDS; i++)
ahc->targetcmds[i].cmd_valid = 0;
ahc->tqinfifonext = 1;
ahc_outb(ahc, KERNEL_TQINPOS, ahc->tqinfifonext - 1);
ahc_outb(ahc, TQINPOS, 0);
ahc_outb(ahc, TQINPOS, ahc->tqinfifonext);
}
/*
@@ -4374,14 +4433,6 @@ ahc_init(struct ahc_softc *ahc)
ahc_outb(ahc, QINPOS, 0);
ahc_outb(ahc, QOUTPOS, 0);
#ifdef AHC_DEBUG
if (ahc_debug & AHC_SHOWMISC)
printf("NEEDSDTR == 0x%x\nNEEDWDTR == 0x%x\n"
"DISCENABLE == 0x%x\nULTRAENB == 0x%x\n",
ahc->needsdtr_orig, ahc->needwdtr_orig,
discenable, ultraenb);
#endif
/* Don't have any special messages to send to targets */
ahc_outb(ahc, TARGET_MSG_REQUEST, 0);
ahc_outb(ahc, TARGET_MSG_REQUEST + 1, 0);
@@ -5117,9 +5168,13 @@ ahc_execute_scb(void *arg, bus_dma_segment_t *dm_segs, int nsegments,
scb->flags |= SCB_ACTIVE;
ccb->ccb_h.status |= CAM_SIM_QUEUED;
ccb->ccb_h.timeout_ch =
timeout(ahc_timeout, (caddr_t)scb,
(ccb->ccb_h.timeout * hz) / 1000);
if (ccb->ccb_h.timeout != CAM_TIME_INFINITY) {
if (ccb->ccb_h.timeout == CAM_TIME_DEFAULT)
ccb->ccb_h.timeout = 5 * 1000;
ccb->ccb_h.timeout_ch =
timeout(ahc_timeout, (caddr_t)scb,
(ccb->ccb_h.timeout * hz) / 1000);
}
if ((scb->flags & SCB_TARGET_IMMEDIATE) != 0) {
#if 0
@@ -6328,7 +6383,7 @@ ahc_reset_channel(struct ahc_softc *ahc, char channel, int initiate_reset)
/*
* Since we are going to restart the sequencer, avoid
* a race in the sequencer that could cause corruption
* of our Q pointers by starting over from index 0.
* of our Q pointers by starting over from index 1.
*/
ahc->qoutfifonext = 0;
if ((ahc->features & AHC_QUEUE_REGS) != 0)
@@ -6336,9 +6391,16 @@ ahc_reset_channel(struct ahc_softc *ahc, char channel, int initiate_reset)
else
ahc_outb(ahc, QOUTPOS, 0);
if ((ahc->flags & AHC_TARGETMODE) != 0) {
ahc->tqinfifonext = 0;
ahc->tqinfifonext = 1;
ahc_outb(ahc, KERNEL_TQINPOS, ahc->tqinfifonext - 1);
ahc_outb(ahc, TQINPOS, 0);
ahc_outb(ahc, TQINPOS, ahc->tqinfifonext);
if ((ahc->features & AHC_HS_MAILBOX) != 0) {
u_int hs_mailbox;
hs_mailbox = ahc_inb(ahc, HS_MAILBOX);
hs_mailbox &= ~HOST_TQINPOS;
ahc_outb(ahc, HS_MAILBOX, hs_mailbox);
}
}
restart_needed = TRUE;
}
@@ -6515,6 +6577,13 @@ ahc_calc_residual(struct scb *scb)
scb->ccb->csio.sense_resid = resid;
}
#ifdef AHC_DEBUG
if (ahc_debug & AHC_SHOWMISC) {
xpt_print_path(scb->ccb->ccb_h.path);
printf("Handled Residual of %d bytes\n", resid);
}
#endif
}
/*
@@ -6522,13 +6591,6 @@ ahc_calc_residual(struct scb *scb)
* next consumer.
*/
hscb->residual_SG_count = 0;
#ifdef AHC_DEBUG
if (ahc_debug & AHC_SHOWMISC) {
sc_print_addr(xs->sc_link);
printf("Handled Residual of %ld bytes\n" ,xs->resid);
}
#endif
}
static void
+2 -2
View File
@@ -704,6 +704,8 @@ register HS_MAILBOX {
address 0x086
mask HOST_MAILBOX 0xF0
mask SEQ_MAILBOX 0x0F
mask HOST_REQ_INT 0x10
mask HOST_TQINPOS 0x80 /* Boundary at either 0 or 128 */
}
const HOST_MAILBOX_SHIFT 4
@@ -1465,8 +1467,6 @@ const HOST_MSG 0xff
const CMD_GROUP_CODE_SHIFT 0x05
const TCL_TARGET_SHIFT 4
/* The update interval must be a power of 2 */
const TQINFIFO_UPDATE_CNT 32
const STATUS_BUSY 0x08
const STATUS_QUEUE_FULL 0x28
+7 -3
View File
@@ -75,7 +75,7 @@ poll_for_work_loop:
and SEQCTL, ~PAUSEDIS;
}
test SSTAT0, SELDO|SELDI jnz selection;
test SCSISEQ, ENSELO jnz poll_for_work;
test SCSISEQ, ENSELO jnz poll_for_work_loop;
if ((ahc->features & AHC_TWIN) != 0) {
/*
* Twin channel devices cannot handle things like SELTO
@@ -356,7 +356,11 @@ host_target_message_loop:
ident_messages_done:
/* If ring buffer is full, return busy or queue full */
mov A, KERNEL_TQINPOS;
if ((ahc->features & AHC_HS_MAILBOX) != 0) {
and A, HOST_TQINPOS, HS_MAILBOX;
} else {
mov A, KERNEL_TQINPOS;
}
cmp TQINPOS, A jne tqinfifo_has_space;
mvi P_STATUS|BSYO call change_phase;
cmp INITIATOR_TAG, SCB_LIST_NULL je . + 3;
@@ -424,7 +428,7 @@ initiator_reselect:
*/
select_out:
/* Turn off the selection hardware */
and SCSISEQ, ENSELI|ENRSELI|ENAUTOATNP, SCSISEQ_TEMPLATE;
and SCSISEQ, TEMODE|ENSELI|ENRSELI|ENAUTOATNP, SCSISEQ;
mvi CLRSINT0, CLRSELDO;
mov SCBPTR, WAITING_SCBH;
mov WAITING_SCBH,SCB_NEXT;
+1 -34
View File
@@ -1188,13 +1188,7 @@ ata_start(struct ata_softc *scp)
}
#endif
#if NATAPICD > 0 || NATAPIFD > 0 || NATAPIST > 0
/*
* find & call the responsible driver if anything on the ATAPI queue.
* check for device busy by polling the DSC bit, if busy, check
* for requests to the other device on the channel (if any).
* if the other device is an ATA disk it already had its chance above.
* if no request can be served, timeout a call to ata_start.
*/
/* find & call the responsible driver if anything on the ATAPI queue */
if (TAILQ_EMPTY(&scp->atapi_queue)) {
if (scp->devices & (ATA_ATAPI_MASTER) && scp->dev_softc[0])
atapi_start((struct atapi_softc *)scp->dev_softc[0]);
@@ -1202,33 +1196,6 @@ ata_start(struct ata_softc *scp)
atapi_start((struct atapi_softc *)scp->dev_softc[1]);
}
if ((atapi_request = TAILQ_FIRST(&scp->atapi_queue))) {
struct atapi_softc *atp = atapi_request->device;
static int32_t interval = 1;
if (atp->flags & ATAPI_F_DSC_USED) {
outb(atp->controller->ioaddr + ATA_DRIVE, ATA_D_IBM | atp->unit);
DELAY(1);
if (!(inb(atp->controller->ioaddr + ATA_STATUS) & ATA_S_DSC)) {
while ((atapi_request = TAILQ_NEXT(atapi_request, chain))) {
if (atapi_request->device->unit != atp->unit) {
struct atapi_softc *tmp = atapi_request->device;
outb(tmp->controller->ioaddr + ATA_DRIVE,
ATA_D_IBM | tmp->unit);
DELAY(1);
if (!inb(tmp->controller->ioaddr+ATA_STATUS)&ATA_S_DSC)
atapi_request = NULL;
break;
}
}
}
if (!atapi_request) {
timeout((timeout_t *)ata_start, atp->controller, interval++);
return;
}
else
interval = 1;
}
TAILQ_REMOVE(&scp->atapi_queue, atapi_request, chain);
scp->active = ATA_ACTIVE_ATAPI;
scp->running = atapi_request;
-7
View File
@@ -237,13 +237,6 @@ atapi_transfer(struct atapi_request *request)
if (request->ccb[0] != ATAPI_REQUEST_SENSE)
atp->cmd = request->ccb[0];
/* flag if we can trust the DSC bit */
if (request->ccb[0] == ATAPI_READ || request->ccb[0] == ATAPI_READ_BIG ||
request->ccb[0] == ATAPI_WRITE || request->ccb[0] == ATAPI_WRITE_BIG)
atp->flags |= ATAPI_F_DSC_USED;
else
atp->flags &= ~ATAPI_F_DSC_USED;
/* if DMA enabled setup DMA hardware */
request->flags &= ~ATPR_F_DMA_USED;
if ((atp->controller->mode[ATA_DEV(atp->unit)] >= ATA_DMA) &&
+1 -2
View File
@@ -148,8 +148,7 @@ struct atapi_softc {
int8_t *devname; /* this devices name */
int8_t cmd; /* last cmd executed */
u_int32_t flags; /* drive flags */
#define ATAPI_F_DSC_USED 0x0001
#define ATAPI_F_MEDIA_CHANGED 0x0002
#define ATAPI_F_MEDIA_CHANGED 0x0001
};
+2 -8
View File
@@ -466,16 +466,10 @@ ast_start(struct atapi_softc *atp)
bzero(ccb, sizeof(ccb));
if (bp->b_flags & B_READ) {
if (bp->b_flags & B_READ)
ccb[0] = ATAPI_READ;
if (!(stp->flags & ATAPI_F_DSC_USED))
atapi_queue_cmd(stp->atp, ccb, NULL, 0, 0, 2*60, NULL, NULL);
}
else {
else
ccb[0] = ATAPI_WRITE;
if (!(stp->flags & ATAPI_F_DSC_USED))
atapi_queue_cmd(stp->atp, ccb, NULL, 0, 0, 2*60, NULL, NULL);
}
bufq_remove(&stp->buf_queue, bp);
blkcount = bp->b_bcount / stp->blksize;
-372
View File
@@ -1,372 +0,0 @@
/*
* Copyright (c) 1995 John Hay. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by [your name]
* and [any other names deserving credit ]
* 4. Neither the name of the author nor the names of any co-contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY [your name] AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $FreeBSD$
*/
#ifndef _HD64570_H_
#define _HD64570_H_
typedef struct msci_channel
{
union
{
unsigned short us_trb; /* rw */
struct
{
unsigned char uc_trbl;
unsigned char uc_trbh;
}uc_trb;
}u_trb;
unsigned char st0; /* ro */
unsigned char st1; /* rw */
unsigned char st2; /* rw */
unsigned char st3; /* ro */
unsigned char fst; /* rw */
unsigned char unused0;
unsigned char ie0; /* rw */
unsigned char ie1; /* rw */
unsigned char ie2; /* rw */
unsigned char fie; /* rw */
unsigned char cmd; /* wo */
unsigned char unused1;
unsigned char md0; /* rw */
unsigned char md1; /* rw */
unsigned char md2; /* rw */
unsigned char ctl; /* rw */
unsigned char sa0; /* rw */
unsigned char sa1; /* rw */
unsigned char idl; /* rw */
unsigned char tmc; /* rw */
unsigned char rxs; /* rw */
unsigned char txs; /* rw */
unsigned char trc0; /* rw */
unsigned char trc1; /* rw */
unsigned char rrc; /* rw */
unsigned char unused2;
unsigned char cst0; /* rw */
unsigned char cst1; /* rw */
unsigned char unused3[2];
}msci_channel;
#define trb u_trb.us_trb
#define trbl u_trb.uc_trb.uc_trbl
#define trbh u_trb.uc_trb.uc_trbh
typedef struct timer_channel
{
unsigned short tcnt; /* rw */
unsigned short tconr; /* wo */
unsigned char tcsr; /* rw */
unsigned char tepr; /* rw */
unsigned char unused[2];
}timer_channel;
typedef struct dmac_channel
{
unsigned short dar; /* rw */
unsigned char darb; /* rw */
unsigned char unused0;
unsigned short sar; /* rw On odd numbered dmacs (tx) only */
unsigned char sarb; /* rw */
#define cpb sarb
unsigned char unused1;
unsigned short cda; /* rw */
unsigned short eda; /* rw */
unsigned short bfl; /* rw On even numbered dmacs (rx) only */
unsigned short bcr; /* rw */
unsigned char dsr; /* rw */
unsigned char dmr; /* rw */
unsigned char unused2;
unsigned char fct; /* rw */
unsigned char dir; /* rw */
unsigned char dcr; /* rw */
unsigned char unused3[10];
}dmac_channel;
/* x is the channel number. rx channels are even numbered and tx, odd. */
#define DMAC_RXCH(x) ((x*2) + 0)
#define DMAC_TXCH(x) ((x*2) + 1)
typedef struct sca_regs
{
unsigned char lpr; /* rw */
unsigned char unused0; /* -- */
/* Wait system */
unsigned char pabr0; /* rw */
unsigned char pabr1; /* rw */
unsigned char wcrl; /* rw */
unsigned char wcrm; /* rw */
unsigned char wcrh; /* rw */
unsigned char unused1;
/* DMAC */
unsigned char pcr; /* rw */
unsigned char dmer; /* rw */
unsigned char unused2[6];
/* Interrupt */
unsigned char isr0; /* ro */
unsigned char isr1; /* ro */
unsigned char isr2; /* ro */
unsigned char unused3;
unsigned char ier0; /* rw */
unsigned char ier1; /* rw */
unsigned char ier2; /* rw */
unsigned char unused4;
unsigned char itcr; /* rw */
unsigned char unused5;
unsigned char ivr; /* rw */
unsigned char unused6;
unsigned char imvr; /* rw */
unsigned char unused7[3];
/* MSCI Channel 0 */
msci_channel msci[2];
timer_channel timer[4];
dmac_channel dmac[4];
}sca_regs;
#define SCA_CMD_TXRESET 0x01
#define SCA_CMD_TXENABLE 0x02
#define SCA_CMD_TXDISABLE 0x03
#define SCA_CMD_TXCRCINIT 0x04
#define SCA_CMD_TXCRCEXCL 0x05
#define SCA_CMS_TXEOM 0x06
#define SCA_CMD_TXABORT 0x07
#define SCA_CMD_MPON 0x08
#define SCA_CMD_TXBCLEAR 0x09
#define SCA_CMD_RXRESET 0x11
#define SCA_CMD_RXENABLE 0x12
#define SCA_CMD_RXDISABLE 0x13
#define SCA_CMD_RXCRCINIT 0x14
#define SCA_CMD_RXMSGREJ 0x15
#define SCA_CMD_MPSEARCH 0x16
#define SCA_CMD_RXCRCEXCL 0x17
#define SCA_CMD_RXCRCCALC 0x18
#define SCA_CMD_NOP 0x00
#define SCA_CMD_RESET 0x21
#define SCA_CMD_SEARCH 0x31
#define SCA_MD0_CRC_1 0x01
#define SCA_MD0_CRC_CCITT 0x02
#define SCA_MD0_CRC_ENABLE 0x04
#define SCA_MD0_AUTO_ENABLE 0x10
#define SCA_MD0_MODE_ASYNC 0x00
#define SCA_MD0_MODE_BYTESYNC1 0x20
#define SCA_MD0_MODE_BISYNC 0x40
#define SCA_MD0_MODE_BYTESYNC2 0x60
#define SCA_MD0_MODE_HDLC 0x80
#define SCA_MD1_NOADDRCHK 0x00
#define SCA_MD1_SNGLADDR1 0x40
#define SCA_MD1_SNGLADDR2 0x80
#define SCA_MD1_DUALADDR 0xC0
#define SCA_MD2_DUPLEX 0x00
#define SCA_MD2_ECHO 0x01
#define SCA_MD2_LOOPBACK 0x03
#define SCA_MD2_ADPLLx8 0x00
#define SCA_MD2_ADPLLx16 0x08
#define SCA_MD2_ADPLLx32 0x10
#define SCA_MD2_NRZ 0x00
#define SCA_MD2_NRZI 0x20
#define SCA_MD2_MANCHESTER 0x80
#define SCA_MD2_FM0 0xC0
#define SCA_MD2_FM1 0xA0
#define SCA_CTL_RTS 0x01
#define SCA_CTL_IDLPAT 0x10
#define SCA_CTL_UDRNC 0x20
#define SCA_RXS_DIV_MASK 0x0F
#define SCA_RXS_DIV1 0x00
#define SCA_RXS_DIV2 0x01
#define SCA_RXS_DIV4 0x02
#define SCA_RXS_DIV8 0x03
#define SCA_RXS_DIV16 0x04
#define SCA_RXS_DIV32 0x05
#define SCA_RXS_DIV64 0x06
#define SCA_RXS_DIV128 0x07
#define SCA_RXS_DIV256 0x08
#define SCA_RXS_DIV512 0x09
#define SCA_RXS_CLK_RXC0 0x00
#define SCA_RXS_CLK_RXC1 0x20
#define SCA_RXS_CLK_INT 0x40
#define SCA_RXS_CLK_ADPLL_OUT 0x60
#define SCA_RXS_CLK_ADPLL_IN 0x70
#define SCA_TXS_DIV_MASK 0x0F
#define SCA_TXS_DIV1 0x00
#define SCA_TXS_DIV2 0x01
#define SCA_TXS_DIV4 0x02
#define SCA_TXS_DIV8 0x03
#define SCA_TXS_DIV16 0x04
#define SCA_TXS_DIV32 0x05
#define SCA_TXS_DIV64 0x06
#define SCA_TXS_DIV128 0x07
#define SCA_TXS_DIV256 0x08
#define SCA_TXS_DIV512 0x09
#define SCA_TXS_CLK_TXC 0x00
#define SCA_TXS_CLK_INT 0x40
#define SCA_TXS_CLK_RX 0x60
#define SCA_ST0_RXRDY 0x01
#define SCA_ST0_TXRDY 0x02
#define SCA_ST0_RXINT 0x40
#define SCA_ST0_TXINT 0x80
#define SCA_ST1_IDLST 0x01
#define SCA_ST1_ABTST 0x02
#define SCA_ST1_DCDCHG 0x04
#define SCA_ST1_CTSCHG 0x08
#define SCA_ST1_FLAG 0x10
#define SCA_ST1_TXIDL 0x40
#define SCA_ST1_UDRN 0x80
/* ST2 and FST look the same */
#define SCA_FST_CRCERR 0x04
#define SCA_FST_OVRN 0x08
#define SCA_FST_RESFRM 0x10
#define SCA_FST_ABRT 0x20
#define SCA_FST_SHRT 0x40
#define SCA_FST_EOM 0x80
#define SCA_ST3_RXENA 0x01
#define SCA_ST3_TXENA 0x02
#define SCA_ST3_DCD 0x04
#define SCA_ST3_CTS 0x08
#define SCA_ST3_ADPLLSRCH 0x10
#define SCA_ST3_TXDATA 0x20
#define SCA_FIE_EOMFE 0x80
#define SCA_IE0_RXRDY 0x01
#define SCA_IE0_TXRDY 0x02
#define SCA_IE0_RXINT 0x40
#define SCA_IE0_TXINT 0x80
#define SCA_IE1_IDLDE 0x01
#define SCA_IE1_ABTDE 0x02
#define SCA_IE1_DCD 0x04
#define SCA_IE1_CTS 0x08
#define SCA_IE1_FLAG 0x10
#define SCA_IE1_IDL 0x40
#define SCA_IE1_UDRN 0x80
#define SCA_IE2_CRCERR 0x04
#define SCA_IE2_OVRN 0x08
#define SCA_IE2_RESFRM 0x10
#define SCA_IE2_ABRT 0x20
#define SCA_IE2_SHRT 0x40
#define SCA_IE2_EOM 0x80
/* This is for RRC, TRC0 and TRC1. */
#define SCA_RCR_MASK 0x1F
#define SCA_IE1_
#define SCA_IV_CHAN0 0x00
#define SCA_IV_CHAN1 0x20
#define SCA_IV_RXRDY 0x04
#define SCA_IV_TXRDY 0x06
#define SCA_IV_RXINT 0x08
#define SCA_IV_TXINT 0x0A
#define SCA_IV_DMACH0 0x00
#define SCA_IV_DMACH1 0x08
#define SCA_IV_DMACH2 0x20
#define SCA_IV_DMACH3 0x28
#define SCA_IV_DMIA 0x14
#define SCA_IV_DMIB 0x16
#define SCA_IV_TIMER0 0x1C
#define SCA_IV_TIMER1 0x1E
#define SCA_IV_TIMER2 0x3C
#define SCA_IV_TIMER3 0x3E
/*
* DMA registers
*/
#define SCA_DSR_EOT 0x80
#define SCA_DSR_EOM 0x40
#define SCA_DSR_BOF 0x20
#define SCA_DSR_COF 0x10
#define SCA_DSR_DE 0x02
#define SCA_DSR_DWE 0x01
#define SCA_DMR_TMOD 0x10
#define SCA_DMR_NF 0x04
#define SCA_DMR_CNTE 0x02
#define SCA_DMER_EN 0x80
#define SCA_DCR_ABRT 0x01
#define SCA_DCR_FCCLR 0x02 /* Clear frame end intr counter */
#define SCA_DIR_EOT 0x80
#define SCA_DIR_EOM 0x40
#define SCA_DIR_BOF 0x20
#define SCA_DIR_COF 0x10
#define SCA_PCR_BRC 0x10
#define SCA_PCR_CCC 0x08
#define SCA_PCR_PR2 0x04
#define SCA_PCR_PR1 0x02
#define SCA_PCR_PR0 0x01
typedef struct sca_descriptor
{
unsigned short cp;
unsigned short bp;
unsigned char bpb;
unsigned char unused0;
unsigned short len;
unsigned char stat;
unsigned char unused1;
}sca_descriptor;
#define SCA_DESC_EOT 0x01
#define SCA_DESC_CRC 0x04
#define SCA_DESC_OVRN 0x08
#define SCA_DESC_RESD 0x10
#define SCA_DESC_ABORT 0x20
#define SCA_DESC_SHRTFRM 0x40
#define SCA_DESC_EOM 0x80
#define SCA_DESC_ERRORS 0x7C
/*
***************************************************************************
** END
***************************************************************************
**/
#endif /* _HD64570_H_ */
+4 -1
View File
@@ -1651,7 +1651,10 @@ printf("notify ack\n");
sdparam *sdp = isp->isp_param;
sdp += cam_sim_bus(xpt_path_sim(cpi->ccb_h.path));
cpi->hba_inquiry = PI_SDTR_ABLE|PI_TAG_ABLE|PI_WIDE_16;
cpi->hba_misc = 0;
if (IS_ULTRA2(isp))
cpi->hba_misc = PIM_NOBUSRESET;
else
cpi->hba_misc = 0;
cpi->initiator_id = sdp->isp_initiator_id;
cpi->base_transfer_speed = 3300;
}
+7 -1
View File
@@ -297,8 +297,14 @@ int
soabort(so)
struct socket *so;
{
int error;
return (*so->so_proto->pr_usrreqs->pru_abort)(so);
error = (*so->so_proto->pr_usrreqs->pru_abort)(so);
if (error) {
sofree(so);
return error;
}
return (0);
}
int
+18 -28
View File
@@ -328,40 +328,31 @@ vfs_getvfs(fsid)
}
/*
* Get a new unique fsid. Try to make its val[0] unique mod 2^16, since
* this value may be used to create fake device numbers for stat(), and
* some emulators only support 16-bit device numbers.
* Get a new unique fsid. Try to make its val[0] unique, since this value
* will be used to create fake device numbers for stat(). Also try (but
* not so hard) make its val[0] unique mod 2^16, since some emulators only
* support 16-bit device numbers. We end up with unique val[0]'s for the
* first 2^16 calls and unique val[0]'s mod 2^16 for the first 2^8 calls.
*
* Keep in mind that several mounts may be running in parallel. Starting
* the search one past where the previous search terminated (mod 0x10) is
* both a micro-optimization and (incomplete) defense against returning
* the same fsid to different mounts.
* the search one past where the previous search terminated is both a
* micro-optimization and a defense against returning the same fsid to
* different mounts.
*/
void
vfs_getnewfsid(mp)
struct mount *mp;
{
static u_int mntid_base;
static u_int16_t mntid_base;
fsid_t tfsid;
u_int i;
int mtype, mynor;
int mtype;
simple_lock(&mntid_slock);
mtype = mp->mnt_vfc->vfc_typenum;
tfsid.val[1] = mtype;
for (i = 0; ; i++) {
/*
* mtype needs to be uniquely encoded in the minor number
* so that uniqueness of the full fsid implies uniqueness
* of the device number. We are short of bits and only
* guarantee uniqueness of the device number mod 2^16 if
* mtype is always < 16 and there are never more than
* 16 mounts per vfs type.
*/
mynor = ((mntid_base++ & 0xFFFFF) << 4) | (mtype & 0xF);
if (i < 0x10)
mynor &= 0xFF;
tfsid.val[0] = makeudev(255, mynor);
mtype = (mtype & 0xFF) << 16;
for (;;) {
tfsid.val[0] = makeudev(255, mtype | mntid_base++);
if (vfs_getvfs(&tfsid) == NULL)
break;
}
@@ -1119,7 +1110,6 @@ pbrelvp(bp)
KASSERT(bp->b_vp != NULL, ("pbrelvp: NULL"));
#if !defined(MAX_PERF)
/* XXX REMOVE ME */
if (bp->b_vnbufs.tqe_next != NULL) {
panic(
@@ -1128,7 +1118,6 @@ pbrelvp(bp)
(int)bp->b_flags
);
}
#endif
bp->b_vp = (struct vnode *) 0;
bp->b_flags &= ~B_PAGING;
}
@@ -1138,14 +1127,12 @@ pbreassignbuf(bp, newvp)
struct buf *bp;
struct vnode *newvp;
{
#if !defined(MAX_PERF)
if ((bp->b_flags & B_PAGING) == 0) {
panic(
"pbreassignbuf() on non phys bp %p",
bp
);
}
#endif
bp->b_vp = newvp;
}
@@ -1169,14 +1156,12 @@ reassignbuf(bp, newvp)
}
++reassignbufcalls;
#if !defined(MAX_PERF)
/*
* B_PAGING flagged buffers cannot be reassigned because their vp
* is not fully linked in.
*/
if (bp->b_flags & B_PAGING)
panic("cannot reassign paging buffer");
#endif
s = splbio();
/*
@@ -2924,6 +2909,11 @@ vn_isdisk(vp, errp)
*errp = ENOTBLK;
return (0);
}
if (vp->v_rdev == NULL) {
if (errp != NULL)
*errp = ENXIO;
return (0);
}
if (!devsw(vp->v_rdev)) {
if (errp != NULL)
*errp = ENXIO;
+19
View File
@@ -359,6 +359,7 @@ bpfopen(dev, flags, fmt, p)
dev->si_drv1 = d;
d->bd_bufsize = bpf_bufsize;
d->bd_sig = SIGIO;
d->bd_seesent = 1;
return (0);
}
@@ -633,6 +634,8 @@ reset_d(d)
* BIOCVERSION Get filter language version.
* BIOCGHDRCMPLT Get "header already complete" flag
* BIOCSHDRCMPLT Set "header already complete" flag
* BIOCGSEESENT Get "see packets sent" flag
* BIOCSSEESENT Set "see packets sent" flag
*/
/* ARGSUSED */
static int
@@ -848,6 +851,20 @@ bpfioctl(dev, cmd, addr, flags, p)
d->bd_hdrcmplt = *(u_int *)addr ? 1 : 0;
break;
/*
* Get "see sent packets" flag
*/
case BIOCGSEESENT:
*(u_int *)addr = d->bd_seesent;
break;
/*
* Set "see sent packets" flag
*/
case BIOCSSEESENT:
d->bd_seesent = *(u_int *)addr;
break;
case FIONBIO: /* Non-blocking I/O */
break;
@@ -1103,6 +1120,8 @@ bpf_mtap(ifp, m)
pktlen += m0->m_len;
for (d = bp->bif_dlist; d != 0; d = d->bd_next) {
if (!d->bd_seesent && (m->m_pkthdr.rcvif == NULL))
continue;
++d->bd_rcount;
slen = bpf_filter(d->bd_filter, (u_char *)m, pktlen, 0);
if (slen != 0)
+2
View File
@@ -113,6 +113,8 @@ struct bpf_version {
#define BIOCSRSIG _IOW('B',115, u_int)
#define BIOCGHDRCMPLT _IOR('B',116, u_int)
#define BIOCSHDRCMPLT _IOW('B',117, u_int)
#define BIOCGSEESENT _IOR('B',118, u_int)
#define BIOCSSEESENT _IOW('B',119, u_int)
/*
* Structure prepended to each packet.
+1
View File
@@ -77,6 +77,7 @@ struct bpf_d {
u_char bd_state; /* idle, waiting, or timed out */
u_char bd_immediate; /* true to return on packet arrival */
int bd_hdrcmplt; /* false to fill in src lladdr automatically */
int bd_seesent; /* true if bpf should see sent packets */
int bd_async; /* non-zero if packet reception should generate signal */
int bd_sig; /* signal to send upon packet reception */
struct sigio * bd_sigio; /* information for async I/O */
+1
View File
@@ -85,6 +85,7 @@
* ways.
*/
/* #define _POSIX_THREAD_SAFE_FUNCTIONS */
#define _POSIX_SEMAPHORES
/* access function */
#define F_OK 0 /* test for existence of file */
-58
View File
@@ -1,58 +0,0 @@
#!/bin/sh
#
# Copyright (c) April 1996 Wolfram Schneider <[email protected]>. Berlin.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# makewhatis.local - start makewhatis(1) only for file systems
# physically mounted on the system
#
# Running makewhatis from /etc/periodic/weekly/320.whatis for rw nfs-mounted
# /usr may kill your NFS server -- all clients start makewhatis at the same
# time! So use this wrapper instead calling makewhatis directly.
#
# PS: this wrapper works also for catman(1)
#
# $FreeBSD$
PATH=/bin:/usr/bin:$PATH; export PATH
opt= dirs= localdirs=
for arg
do
case "$arg" in
-*) opt="$opt $arg";;
*) dirs="$dirs $arg";;
esac
done
dirs=`echo $dirs | sed 's/:/ /g'`
case X"$dirs" in X) echo "usage: $0 [options] directories ..."; exit 1;; esac
localdirs=`find -H $dirs -fstype local -type d -prune -print`
case X"$localdirs" in
X) echo "$0: no local-mounted manual directories found: $dirs"
exit 1;;
*) exec `basename $0 .local` $opt $localdirs;;
esac
+1 -16
View File
@@ -135,43 +135,36 @@ load_entry(file, error_func, pw, envp)
* anymore. too much for my overloaded brain. (vix, jan90)
* HINT
*/
Debug(DPARS, ("load_entry()...about to test shortcuts\n"))
ch = get_string(cmd, MAX_COMMAND, file, " \t\n");
if (!strcmp("reboot", cmd)) {
Debug(DPARS, ("load_entry()...reboot shortcut\n"))
e->flags |= WHEN_REBOOT;
} else if (!strcmp("yearly", cmd) || !strcmp("annually", cmd)){
Debug(DPARS, ("load_entry()...yearly shortcut\n"))
bit_set(e->minute, 0);
bit_set(e->hour, 0);
bit_set(e->dom, 0);
bit_set(e->month, 0);
bit_nset(e->dow, 0, (LAST_DOW-FIRST_DOW+1));
} else if (!strcmp("monthly", cmd)) {
Debug(DPARS, ("load_entry()...monthly shortcut\n"))
bit_set(e->minute, 0);
bit_set(e->hour, 0);
bit_set(e->dom, 0);
bit_nset(e->month, 0, (LAST_MONTH-FIRST_MONTH+1));
bit_nset(e->dow, 0, (LAST_DOW-FIRST_DOW+1));
} else if (!strcmp("weekly", cmd)) {
Debug(DPARS, ("load_entry()...weekly shortcut\n"))
bit_set(e->minute, 0);
bit_set(e->hour, 0);
bit_nset(e->dom, 0, (LAST_DOM-FIRST_DOM+1));
bit_nset(e->month, 0, (LAST_MONTH-FIRST_MONTH+1));
bit_set(e->dow, 0);
} else if (!strcmp("daily", cmd) || !strcmp("midnight", cmd)) {
Debug(DPARS, ("load_entry()...daily shortcut\n"))
bit_set(e->minute, 0);
bit_set(e->hour, 0);
bit_nset(e->dom, 0, (LAST_DOM-FIRST_DOM+1));
bit_nset(e->month, 0, (LAST_MONTH-FIRST_MONTH+1));
bit_nset(e->dow, 0, (LAST_DOW-FIRST_DOW+1));
} else if (!strcmp("hourly", cmd)) {
Debug(DPARS, ("load_entry()...hourly shortcut\n"))
bit_set(e->minute, 0);
bit_nset(e->hour, 0, (LAST_HOUR-FIRST_HOUR+1));
bit_set(e->hour, (LAST_HOUR-FIRST_HOUR+1));
bit_nset(e->dom, 0, (LAST_DOM-FIRST_DOM+1));
bit_nset(e->month, 0, (LAST_MONTH-FIRST_MONTH+1));
bit_nset(e->dow, 0, (LAST_DOW-FIRST_DOW+1));
@@ -179,14 +172,6 @@ load_entry(file, error_func, pw, envp)
ecode = e_timespec;
goto eof;
}
/* Advance past whitespace between shortcut and
* username/command.
*/
Skip_Blanks(ch, file);
if (ch == EOF) {
ecode = e_cmd;
goto eof;
}
} else {
Debug(DPARS, ("load_entry()...about to parse numerics\n"))
+1 -1
View File
@@ -85,7 +85,7 @@ sub font_current {
while(<F>) {
/^#/ && next;
if (/^\s*font[0-9]+x[0-9]+\s*=\s*\"?([^\s\"]+)\"?/) {
if (/^\s*font[0-9]+x[0-9]+\s*=\s*(\S+)/) {
$font_current = $1 if $1 ne "NO";
}
}
+3 -1
View File
@@ -21,7 +21,9 @@ SRCS = version.c tcpdump.c \
CLEANFILES+= version.c
DPADD+= ${LIBL} ${LIBPCAP}
LDADD+= -ll -lpcap
.if exists(../../../crypto) && !defined(NOSECURE) && !defined(NO_OPENSSL)
.if exists(../../../secure) && !defined(NOCRYPT) && !defined(NOSECURE) && \
!defined(NO_OPENSSL) && !defined(RELEASE_CRUNCH)
DISTRIBUTION=crypto
DPADD+= ${LIBCRYPTO}
LDADD+= -lcrypto
CFLAGS+= -I${DESTDIR}/usr/include/openssl -DCRYPTO -DHAVE_LIBCRYPTO -DHAVE_RC5_H -DHAVE_CAST_H
+79 -118
View File
@@ -40,21 +40,21 @@
.Nd time server daemon
.Sh SYNOPSIS
.Nm timed
.Op Fl dtM
.Op Fl M
.Op Fl t
.Op Fl d
.Op Fl i Ar network
.Op Fl n Ar network
.Op Fl F Ar host ...
.Op Fl F Ar host1 host2 ...
.Sh DESCRIPTION
The
.Nm
daemon is a time server daemon
which is normally invoked at boot time from the
.Xr rc.network 8
This
is a time server daemon and is normally invoked
at boot time from the
.Xr rc 8
file.
It synchronizes the host's time with the time of other
machines, which are also running
.Nm Ns ,
in a local area network.
machines in a local area network running
.Nm Ns .
These time servers will slow down the clocks of some machines
and speed up the clocks of others to bring them to the average network time.
The average network time is computed from measurements of clock differences
@@ -62,87 +62,9 @@ using the
.Tn ICMP
timestamp request message.
.Pp
The following options are available:
.Bl -tag -width indent
.It Fl d
Enable debugging mode;
do not detach from the terminal.
.It Fl i Ar network
Add
.Ar network
to the list of networks to ignore.
All other networks
to which the machine is directly connected
are used by
.Nm Ns .
This option may be specified multiple times
to add more than one network to the list.
.It Fl F Ar host ...
Create a list of trusted hosts.
The service provided by
.Nm
will only accept trusted hosts as masters.
If it finds an untrusted host claiming to be master,
.Nm
will suppress incoming messages from that host
and call for a new election.
This option implies the
.Fl M
option.
If this option is not specified,
all hosts on the connected networks are treated as trustworthy.
.It Fl M
Allow this host to become a
.Nm
master if necessary.
.It Fl n Ar network
Add
.Ar network
to the list of allowed networks.
All other networks
to which the machine is directly connected
are ignored by
.Nm Ns .
This option may be specified multiple times
to add more than one network to the list.
.It Fl t
Enable tracing of received messages
and log to the file
.It Pa /var/log/timed.log .
Tracing can be turned on or off while
.Nm
is running with the
.Xr timedc 8
utility.
.El
.Pp
The
.Fl n
and
.Fl i
are mutually exclusive
and require as arguments real networks to which
the host is connected
(see
.Xr networks 5 ) .
If neither flag is specified,
.Nm
will listen on all connected networks.
.Pp
A
.Nm
running without the
.Fl M
nor
.Fl F
flags will always remain a slave.
If the
.Fl F
flag is not used,
.Nm
will treat all machines as trustworthy.
.Pp
.Nm
is based on a master-slave
is based on a master-slave
scheme.
When
.Nm
@@ -158,40 +80,80 @@ It also communicates with
in order to set the date globally,
and with
.Xr timedc 8 ,
a
.Nm
control program.
If the machine running the master becomes unreachable,
the slaves will elect a new master
from among those slaves
which are running with at least one of the
a timed control program.
If the machine running the master crashes, then the slaves will elect
a new master from among slaves running with the
.Fl M
and
.Fl F
flags.
.Pp
At startup
flag.
A
.Nm
normally checks for a master time server on each network to which
running without the
.Fl M
or
.Fl F
flags will remain a slave.
The
.Fl t
flag enables
.Nm timed
to trace the messages it receives in the
file
.Pa /var/log/timed.log .
Tracing can be turned on or off by the program
.Xr timedc 8 .
The
.Fl d
flag is for debugging the daemon.
It causes the program to not put itself into the background.
.Pp
Normally
.Nm
checks for a master time server on each network to which
it is connected, except as modified by the options described below.
It will request synchronization service from the first master server
located.
If permitted by the
.Fl M
flag, it will provide synchronization service on any attached networks
on which no current master server was detected.
Such a server propagates the time computed by the top-level master.
The
.Fl n
flag, followed by the name of a network which the host is connected to
(see
.Xr networks 5 ) ,
overrides the default choice of the
network addresses made by the program.
Each time the
.Fl n
flag appears, that network name is added to a list of valid networks.
All other networks are ignored.
The
.Fl i
flag, followed by the name of a network to which the host is connected
(see
.Xr networks 5 ) ,
overrides the default choice of the network addresses made by the program.
Each time the
.Fl i
flag appears, that network name is added to a list of networks to ignore.
All other networks are used by the time daemon.
The
.Fl n
and
.Fl i
flags are meaningless if used together.
.Pp
.Nm Timed
checks for a master time server on each network to which
it is connected, except as modified by the
.Fl n
and
.Fl i
options described above.
It will request synchronization service from the first master server
located.
If permitted by the
.Fl M
or
.Fl F
flags, it will provide synchronization service on any attached networks
on which no trusted master server was detected.
Such a server propagates the time computed by the top-level master.
.Nm
will periodically check for the presence of a master
on those networks for which it is operating as a slave.
If it finds that there are no trusted masters on a network,
it will begin the election process on that network.
If it finds masters on more than one network, it chooses one network
on which to be a "slave," and then periodically checks the other
networks to see if the masters there have disappeared.
.Pp
One way to synchronize a group of machines is to use an
.Tn NTP
@@ -252,7 +214,6 @@ log file for master timed
.Xr adjtime 2 ,
.Xr gettimeofday 2 ,
.Xr icmp 4 ,
.Xr networks 5 ,
.Xr timedc 8
.Rs
.%T "TSP: The Time Synchronization Protocol for UNIX 4.3BSD"