mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-28 11:25:21 +01:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
172a0f0d16 |
No files matched your search
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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
@@ -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 };
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
@@ -49,4 +49,6 @@ __pause()
|
||||
return sigpause(sigblock(0L));
|
||||
}
|
||||
|
||||
#ifndef _THREAD_SAFE
|
||||
__weak_reference(__pause, pause);
|
||||
#endif
|
||||
@@ -68,4 +68,6 @@ __sleep(seconds)
|
||||
(time_remaining.tv_nsec != 0)); /* round up */
|
||||
}
|
||||
|
||||
#ifndef _THREAD_SAFE
|
||||
__weak_reference(__sleep, sleep);
|
||||
#endif
|
||||
@@ -195,7 +195,9 @@ __tcdrain(fd)
|
||||
return (ioctl(fd, TIOCDRAIN, 0));
|
||||
}
|
||||
|
||||
#ifndef _THREAD_SAFE
|
||||
__weak_reference(__tcdrain, tcdrain);
|
||||
#endif
|
||||
|
||||
int
|
||||
tcflush(fd, which)
|
||||
|
||||
@@ -49,4 +49,6 @@ __wait(istat)
|
||||
return (wait4(WAIT_ANY, istat, 0, (struct rusage *)0));
|
||||
}
|
||||
|
||||
#ifndef _THREAD_SAFE
|
||||
__weak_reference(__wait, wait);
|
||||
#endif
|
||||
@@ -55,4 +55,6 @@ __waitpid(pid, istat, options)
|
||||
return (wait4(pid, istat, options, (struct rusage *)0));
|
||||
}
|
||||
|
||||
#ifndef _THREAD_SAFE
|
||||
__weak_reference(__waitpid, waitpid);
|
||||
#endif
|
||||
@@ -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)); \
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -94,4 +94,6 @@ __system(command)
|
||||
return(pid == -1 ? -1 : pstat);
|
||||
}
|
||||
|
||||
#ifndef _THREAD_SAFE
|
||||
__weak_reference(__system, system);
|
||||
#endif
|
||||
@@ -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);
|
||||
|
||||
@@ -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?"))
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 ) / |
|
||||
`-^--'`< '
|
||||
(_.) _ ) /
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
# ASCII
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
order \
|
||||
\x00;...;\xff
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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 .
|
||||
@@ -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 .
|
||||
@@ -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
|
||||
@@ -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 .
|
||||
@@ -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 :
|
||||
|
||||
@@ -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.
|
||||
@@ -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 .
|
||||
@@ -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 .
|
||||
@@ -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 .
|
||||
@@ -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] .
|
||||
@@ -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"
|
||||
@@ -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
@@ -36,7 +36,7 @@
|
||||
|
||||
TYPE="FreeBSD"
|
||||
REVISION="4.0"
|
||||
BRANCH="STABLE"
|
||||
BRANCH="RELEASE"
|
||||
RELEASE="${REVISION}-${BRANCH}"
|
||||
SNAPDATE=""
|
||||
if [ "X${SNAPDATE}" != "X" ]; then
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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) &&
|
||||
|
||||
@@ -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
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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_ */
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -85,6 +85,7 @@
|
||||
* ways.
|
||||
*/
|
||||
/* #define _POSIX_THREAD_SAFE_FUNCTIONS */
|
||||
#define _POSIX_SEMAPHORES
|
||||
|
||||
/* access function */
|
||||
#define F_OK 0 /* test for existence of 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
|
||||
@@ -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"))
|
||||
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
Reference in new issue
Block a user