PERFORCE change 75260 for review
Peter Wemm
peter at FreeBSD.org
Fri Apr 15 10:59:24 PDT 2005
http://perforce.freebsd.org/chv.cgi?CH=75260
Change 75260 by peter at peter_overcee on 2005/04/15 17:59:11
IFC @75254
Affected files ...
.. //depot/projects/hammer/bin/sh/sh.1#15 integrate
.. //depot/projects/hammer/lib/libc/net/getaddrinfo.c#20 integrate
.. //depot/projects/hammer/lib/libc/net/gethostbydns.c#10 integrate
.. //depot/projects/hammer/lib/libc/net/res_query.c#5 integrate
.. //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#91 integrate
.. //depot/projects/hammer/release/doc/ru_RU.KOI8-R/relnotes/common/new.sgml#12 integrate
.. //depot/projects/hammer/sbin/idmapd/idmapd.c#6 integrate
.. //depot/projects/hammer/share/man/man9/Makefile#51 integrate
.. //depot/projects/hammer/share/man/man9/taskqueue.9#9 integrate
.. //depot/projects/hammer/sys/conf/options.i386#32 integrate
.. //depot/projects/hammer/sys/conf/options.pc98#29 integrate
.. //depot/projects/hammer/sys/dev/ata/ata-all.c#46 integrate
.. //depot/projects/hammer/sys/dev/ata/ata-all.h#27 integrate
.. //depot/projects/hammer/sys/dev/ata/ata-disk.c#30 integrate
.. //depot/projects/hammer/sys/dev/ata/atapi-cam.c#19 integrate
.. //depot/projects/hammer/sys/dev/ata/atapi-cd.c#26 integrate
.. //depot/projects/hammer/sys/dev/ata/atapi-fd.c#13 integrate
.. //depot/projects/hammer/sys/dev/ata/atapi-tape.c#16 integrate
.. //depot/projects/hammer/sys/dev/pci/pci.c#39 integrate
.. //depot/projects/hammer/sys/i386/acpica/madt.c#14 integrate
.. //depot/projects/hammer/sys/i386/conf/NOTES#66 integrate
.. //depot/projects/hammer/sys/i386/i386/io_apic.c#15 integrate
.. //depot/projects/hammer/sys/i386/i386/machdep.c#50 integrate
.. //depot/projects/hammer/sys/i386/i386/mptable.c#19 integrate
.. //depot/projects/hammer/sys/i386/include/apicvar.h#12 integrate
.. //depot/projects/hammer/sys/i386/pci/pci_pir.c#8 integrate
.. //depot/projects/hammer/sys/ia64/ia64/mp_machdep.c#11 integrate
.. //depot/projects/hammer/sys/kern/sched_4bsd.c#36 integrate
.. //depot/projects/hammer/sys/net/if.c#44 integrate
.. //depot/projects/hammer/sys/netgraph/ng_echo.c#4 integrate
.. //depot/projects/hammer/sys/netinet/ip_fw2.c#52 integrate
.. //depot/projects/hammer/sys/netinet/tcp_input.c#47 integrate
.. //depot/projects/hammer/sys/netinet/tcp_sack.c#12 integrate
.. //depot/projects/hammer/sys/netinet/tcp_var.h#26 integrate
.. //depot/projects/hammer/sys/pc98/conf/NOTES#40 integrate
.. //depot/projects/hammer/sys/sparc64/sparc64/machdep.c#40 integrate
.. //depot/projects/hammer/sys/sys/ata.h#10 integrate
.. //depot/projects/hammer/tools/regression/usr.bin/printf/regress.m1.out#2 integrate
.. //depot/projects/hammer/tools/regression/usr.bin/printf/regress.sh#2 integrate
.. //depot/projects/hammer/usr.bin/printf/printf.1#6 integrate
Differences ...
==== //depot/projects/hammer/bin/sh/sh.1#15 (text+ko) ====
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95
-.\" $FreeBSD: src/bin/sh/sh.1,v 1.99 2005/03/04 13:16:50 keramida Exp $
+.\" $FreeBSD: src/bin/sh/sh.1,v 1.100 2005/04/15 14:53:29 keramida Exp $
.\"
.Dd July 3, 2004
.Dt SH 1
@@ -196,6 +196,12 @@
Enable asynchronous notification of background job
completion.
(UNIMPLEMENTED)
+.It Fl c Li string
+Read commands from the
+.Ar string
+operand instead of from the standard input.
+Keep in mind that this option only accepts a single string as its
+argument, hence multi-word strings must be quoted.
.It Fl C Li noclobber
Do not overwrite existing files with
.Dq Li > .
@@ -303,13 +309,6 @@
.El
.Pp
The
-.Fl c
-option may be used to pass its string argument to the shell
-to be interpreted as input.
-Keep in mind that this option only accepts a single string as its
-argument, hence multi-word strings must be quoted.
-.Pp
-The
.Fl /+o
option takes as its only argument the long name of an option
to be enabled or disabled.
@@ -1643,9 +1642,9 @@
.Pp
The following environment variables affect the execution of
.Ic fc :
-.Bl -tag -width indent
+.Bl -tag -width ".Ev HISTSIZE"
.It Ev FCEDIT
-Name of the editor to use.
+Name of the editor to use for history editing.
.It Ev HISTSIZE
The number of previous commands that are accessible.
.El
@@ -2051,12 +2050,86 @@
Otherwise the shell will return the exit status of the last command
executed, or if the exit builtin is used with a numeric argument, it
will return the argument.
+.Sh ENVIRONMENT
+The following environment variables affect the execution of
+.Nm :
+.Bl -tag -width ".Ev HISTSIZE"
+.It Ev CDPATH
+The search path used with the
+.Ic cd
+built-in.
+.It Ev EDITOR
+The fallback editor used with the
+.Ic fc
+built-in.
+If not set, the default editor is
+.Xr ed 1 .
+.It Ev FCEDIT
+The default editor used with the
+.Ic fc
+built-in.
+.It Ev HISTSIZE
+The number of previous commands that are accessible.
+.It Ev HOME
+The starting directory of
+.Nm .
+.It Ev IFS
+Input Field Separators.
+This is normally set to
+.Aq space ,
+.Aq tab ,
+and
+.Aq newline .
+See the
+.Sx White Space Splitting
+section for more details.
+.It Ev MAIL
+The name of a mail file, that will be checked for the arrival of new
+mail.
+Overridden by
+.Ev MAILPATH .
+.It Ev MAILPATH
+A colon
+.Pq Ql \&:
+separated list of file names, for the shell to check for incoming
+mail.
+This environment setting overrides the
+.Ev MAIL
+setting.
+There is a maximum of 10 mailboxes that can be monitored at once.
+.It Ev PATH
+The default search path for executables.
+See the
+.Sx Path Search
+section for details.
+.It Ev PS1
+The primary prompt string, which defaults to
+.Dq $ \ ,
+unless you are the superuser, in which case it defaults to
+.Dq # \ .
+.It Ev PS2
+The secondary prompt string, which defaults to
+.Dq \*[Gt] \ .
+.It Ev TERM
+The default terminal setting for the shell.
+This is inherited by children of the shell, and is used in the history
+editing modes.
+.El
.Sh SEE ALSO
.Xr builtin 1 ,
+.Xr chsh 1 ,
.Xr echo 1 ,
+.Xr ed 1 ,
+.Xr emacs 1 ,
.Xr expr 1 ,
+.Xr getopt 1 ,
.Xr pwd 1 ,
-.Xr test 1
+.Xr test 1 ,
+.Xr umask 2 ,
+.Xr vi 1 ,
+.Xr execve 2 ,
+.Xr getrlimit 2 ,
+.Xr editrc 5
.Sh HISTORY
A
.Nm
==== //depot/projects/hammer/lib/libc/net/getaddrinfo.c#20 (text+ko) ====
@@ -63,7 +63,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/net/getaddrinfo.c,v 1.63 2005/04/14 11:44:43 ume Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/net/getaddrinfo.c,v 1.64 2005/04/15 14:42:29 ume Exp $");
#include "namespace.h"
#include "reentrant.h"
@@ -2283,7 +2283,7 @@
/* resolver logic */
-extern const char *__hostalias(const char *);
+extern const char *_res_hostalias(const char *, char *, size_t);
/*
* Formulate a normal query, send, and await answer.
@@ -2418,6 +2418,7 @@
u_int dots;
int trailing_dot, ret, saved_herrno;
int got_nodata = 0, got_servfail = 0, tried_as_is = 0;
+ char abuf[MAXDNAME];
if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
h_errno = NETDB_INTERNAL;
@@ -2436,7 +2437,7 @@
/*
* if there aren't any dots, it could be a user-level alias
*/
- if (!dots && (cp = __hostalias(name)) != NULL)
+ if (!dots && (cp = _res_hostalias(name, abuf, sizeof(abuf))) != NULL)
return (res_queryN(cp, target));
/*
==== //depot/projects/hammer/lib/libc/net/gethostbydns.c#10 (text+ko) ====
@@ -58,7 +58,7 @@
static char fromrcsid[] = "From: Id: gethnamaddr.c,v 8.23 1998/04/07 04:59:46 vixie Exp $";
#endif /* LIBC_SCCS and not lint */
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/net/gethostbydns.c,v 1.46 2004/07/21 17:26:40 ume Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/net/gethostbydns.c,v 1.47 2005/04/15 14:42:29 ume Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -96,6 +96,8 @@
static char hostbuf[8*1024];
static u_char host_addr[16]; /* IPv4 or IPv6 */
+extern const char *_res_hostalias(const char *, char *, size_t);
+
#ifdef RESOLVSORT
static void addrsort(char **, int);
#endif
@@ -477,6 +479,7 @@
const char *cp;
char *bp, *ep;
int n, size, type, len;
+ char abuf[MAXDNAME];
name = va_arg(ap, const char *);
af = va_arg(ap, int);
@@ -510,7 +513,8 @@
* this is also done in res_query() since we are not the only
* function that looks up host names.
*/
- if (!strchr(name, '.') && (cp = __hostalias(name)))
+ if (!strchr(name, '.') &&
+ (cp = _res_hostalias(name, abuf, sizeof abuf)))
name = cp;
/*
==== //depot/projects/hammer/lib/libc/net/res_query.c#5 (text+ko) ====
@@ -73,7 +73,7 @@
static char rcsid[] = "$Id: res_query.c,v 8.14 1997/06/09 17:47:05 halley Exp $";
#endif /* LIBC_SCCS and not lint */
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/net/res_query.c,v 1.29 2004/04/21 09:50:52 ru Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/net/res_query.c,v 1.30 2005/04/15 14:42:29 ume Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -97,6 +97,8 @@
#define MAXPACKET 1024
#endif
+const char *_res_hostalias(const char *, char *, size_t);
+
/*
* Formulate a normal query, send, and await answer.
* Returned answer is placed in supplied buffer "answer".
@@ -193,6 +195,7 @@
int anslen; /* size of answer */
{
const char *cp, * const *domain;
+ char tmp[MAXDNAME];
u_int dots;
int trailing_dot, ret, saved_herrno;
int got_nodata = 0, got_servfail = 0, tried_as_is = 0;
@@ -211,7 +214,7 @@
trailing_dot++;
/* If there aren't any dots, it could be a user-level alias */
- if (!dots && (cp = hostalias(name)) != NULL)
+ if (!dots && (cp = _res_hostalias(name, tmp, sizeof tmp)) != NULL)
return (res_query(cp, class, type, answer, anslen));
/*
@@ -384,14 +387,11 @@
}
const char *
-hostalias(name)
- const char *name;
+_res_hostalias(const char *name, char *dst, size_t siz)
{
- char *cp1, *cp2;
+ char *file, *cp1, *cp2;
+ char buf[BUFSIZ];
FILE *fp;
- char *file;
- char buf[BUFSIZ];
- static char abuf[MAXDNAME];
if (_res.options & RES_NOALIASES)
return (NULL);
@@ -413,18 +413,28 @@
;
if (!*cp1)
break;
- for (cp2 = cp1 + 1; *cp2 && !isspace((unsigned char)*cp2); ++cp2)
+ for (cp2 = cp1 + 1; *cp2 &&
+ !isspace((unsigned char)*cp2); ++cp2)
;
- abuf[sizeof(abuf) - 1] = *cp2 = '\0';
- strncpy(abuf, cp1, sizeof(abuf) - 1);
+ *cp2 = '\0';
+ strncpy(dst, cp1, siz - 1);
+ dst[siz - 1] = '\0';
fclose(fp);
- return (abuf);
+ return (dst);
}
}
fclose(fp);
return (NULL);
}
+const char *
+hostalias(const char *name)
+{
+ static char abuf[MAXDNAME];
+
+ return (_res_hostalias(name, abuf, sizeof abuf));
+}
+
/*
* Weak aliases for applications that use certain private entry points,
* and fail to include <resolv.h>.
==== //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#91 (text+ko) ====
@@ -3,7 +3,7 @@
<corpauthor>The &os; Project</corpauthor>
- <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.843 2005/04/06 19:58:22 hrs Exp $</pubdate>
+ <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.844 2005/04/15 14:27:26 simon Exp $</pubdate>
<copyright>
<year>2000</year>
@@ -150,6 +150,12 @@
<ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:03.amd64.asc">FreeBSD-SA-05:03.amd64</ulink>.
&merged;</para>
+ <para>An information leak vulnerability in the
+ <literal>SIOCGIFCONF</literal> &man.ioctl.2;, which leaked 12
+ bytes of kernel memory, has been fixed. More details are in security advisory
+ <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:04.ifconf.asc">FreeBSD-SA-05:04.ifconf</ulink>.
+ &merged;</para>
+
</sect2>
<sect2 id="kernel">
==== //depot/projects/hammer/release/doc/ru_RU.KOI8-R/relnotes/common/new.sgml#12 (text+ko) ====
@@ -1,9 +1,9 @@
<!--
The FreeBSD Russian Documentation Project
- $FreeBSDru: frdp/release/doc/ru_RU.KOI8-R/relnotes/common/new.sgml,v 1.25 2005/03/22 07:45:00 den Exp $
+ $FreeBSDru: frdp/release/doc/ru_RU.KOI8-R/relnotes/common/new.sgml,v 1.27 2005/04/15 13:13:30 den Exp $
- Original revision: 1.832
+ Original revision: 1.843
-->
<articleinfo>
@@ -11,7 +11,7 @@
<corpauthor>ðÒÏÅËÔ &os;</corpauthor>
- <pubdate>$FreeBSD: src/release/doc/ru_RU.KOI8-R/relnotes/common/new.sgml,v 1.16 2005/03/22 07:43:31 den Exp $</pubdate>
+ <pubdate>$FreeBSD: src/release/doc/ru_RU.KOI8-R/relnotes/common/new.sgml,v 1.18 2005/04/15 13:11:53 den Exp $</pubdate>
<copyright>
<year>2000</year>
@@ -109,7 +109,7 @@
<para>ïÂÙÞÎÏ × ÉÎÆÏÒÍÁÃÉÉ Ï ÒÅÌÉÚÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏ ×ËÌÀÞÅÎÙ
ÐÏÓÌÅÄÎÉÅ ÓÏÏÂÝÅÎÉÑ ÂÅÚÏÐÁÓÎÏÓÔÉ, ×ÙÐÕÝÅÎÎÙÅ ÐÏÓÌÅ
- &release.prev.historic;, ÉÎÆÏÒÍÁÃÉÑ Ï ÐÏÄÄÅÒÖËÉ ÎÏ×ÙÈ ÄÒÁÊ×ÅÒÏ× ÉÌÉ
+ &release.prev.historic;, ÉÎÆÏÒÍÁÃÉÑ Ï ÐÏÄÄÅÒÖËÅ ÎÏ×ÙÈ ÄÒÁÊ×ÅÒÏ× ÉÌÉ
ÏÂÏÒÕÄÏ×ÁÎÉÑ, ÎÏ×ÙÈ ËÏÍÁÎÄ ÉÌÉ ÐÁÒÁÍÅÔÒÏ×, ÉÎÆÏÒÍÁÃÉÑ Ï ÏÓÎÏ×ÎÙÈ
ÉÓÐÒÁ×ÌÅÎÉÑÈ ÏÛÉÂÏË, ÉÌÉ ÏÂÎÏ×ÌÅÎÉÑÈ ÓÔÏÒÏÎÎÅÇÏ ÐÒÏÇÒÁÍÍÎÏÇÏ
ÏÂÅÓÐÅÞÅÎÉÑ. ÷ ÎÅÍ ÍÏÇÕÔ ÔÁËÖÅ ÐÅÒÅÞÉÓÌÑÔØÓÑ ÉÚÍÅÎÅÎÉÑ ×ÁÖÎÅÊÛÉÈ
@@ -135,6 +135,30 @@
<ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:17.procfs.asc">FreeBSD-SA-04:17.procfs</ulink>.
&merged;</para>
+ <para>÷ ËÌÉÅÎÔÅ TELNET ÂÙÌÉ ÉÓÐÒÁ×ÌÅÎÙ Ä×Å ÏÛÉÂËÉ ÐÅÒÅÐÏÌÎÅÎÉÑ ÂÕÆÅÒÁ.
+ ïÎÉ ÍÏÇÕÔ ÐÏÚ×ÏÌÉÔØ ÚÌÏÎÁÍÅÒÅÎÎÏÍÕ ÓÅÒ×ÅÒÕ TELNET ÉÌÉ ÁËÔÉ×ÎÏÍÕ
+ ÁÔÁËÕÀÝÅÍÕ × ÓÅÔÉ ÍÅÖÄÕ ËÌÉÅÎÔÏÍ É ÓÅÒ×ÅÒÏÍ ÚÁÓÔÁ×ÉÔØ
+ &man.telnet.1; ×ÙÐÏÌÎÉÔØ ÐÒÏÉÚ×ÏÌØÎÙÊ ËÏÄ Ó ÐÒÉ×ÉÌÅÇÉÑÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑ,
+ ÚÁÐÕÓÔÉ×ÛÅÇÏ ËÌÉÅÎÔ.
+ úÁ ÄÁÌØÎÅÊÛÅÊ ÉÎÆÏÒÍÁÃÉÅÊ ÏÂÒÁÝÁÊÔÅÓØ Ë ÓÏÏÂÝÅÎÉÀ ÂÅÚÏÐÁÓÎÏÓÔÉ
+ <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:01.telnet.asc">FreeBSD-SA-05:01.telnet</ulink>.
+ &merged;</para>
+
+ <para>÷ ÓÉÓÔÅÍÎÏÍ ×ÙÚÏ×Å &man.sendfile.2; ÂÙÌÁ ÉÓÐÒÁ×ÌÅÎÁ ÏÛÉÂËÁ,
+ Ó×ÑÚÁÎÎÁÑ Ó ÒÁÓËÒÙÔÉÅÍ ÉÎÆÏÒÍÁÃÉÉ, ËÏÔÏÒÁÑ ÍÏÇÌÁ ÐÏÚ×ÏÌÉÔØ ÐÅÒÅÄÁÞÕ
+ ÐÒÏÉÚ×ÏÌØÎÙÈ ÞÁÓÔÅÊ ÐÁÍÑÔÉ ÑÄÒÁ.
+ úÁ ÄÁÌØÎÅÊÛÅÊ ÉÎÆÏÒÍÁÃÉÅÊ ÏÂÒÁÝÁÊÔÅÓØ Ë ÓÏÏÂÝÅÎÉÀ ÂÅÚÏÐÁÓÎÏÓÔÉ
+ <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:02.sendfile.asc">FreeBSD-SA-05:02.sendfile</ulink>.
+ &merged;</para>
+
+ <para>âÙÌÏ ÉÓÐÒÁ×ÌÅÎÏ ×ÏÚÍÏÖÎÏÅ ÒÁÓÛÉÒÅÎÉÅ ÐÒÉ×ÉÌÅÇÉÊ × &os;/amd64.
+ ïÛÉÂËÁ ÐÏÚ×ÏÌÑÌÁ ÎÅÐÒÉ×ÉÌÅÇÉÒÏ×ÁÎÎÙÍ ÐÏÌØÚÏ×ÁÔÅÌÑÍ ÐÏÌÕÞÁÔØ ÐÒÑÍÏÊ
+ ÄÏÓÔÕÐ Ë ÎÅËÏÔÏÒÏÍÕ ÏÂÏÒÕÄÏ×ÁÎÉÀ, ÄÏÓÔÕÐ Ë ËÏÔÏÒÏÍÕ ÎÅ ÍÏÇ ÂÙÔØ
+ ÐÏÌÕÞÅÎ ÂÅÚ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ ÕÒÏ×ÎÑ ÐÒÉ×ÉÌÅÇÉÊ.
+ úÁ ÄÁÌØÎÅÊÛÅÊ ÉÎÆÏÒÍÁÃÉÅÊ ÏÂÒÁÝÁÊÔÅÓØ Ë ÓÏÏÂÝÅÎÉÀ ÂÅÚÏÐÁÓÎÏÓÔÉ
+ <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:03.amd64.asc">FreeBSD-SA-05:03.amd64</ulink>.
+ &merged;</para>
+
</sect2>
<sect2 id="kernel">
@@ -160,7 +184,7 @@
<username>root</username> ×ÎÕÔÒÉ jail É ×ÎÅ jail ÎÅ ÄÅÌÁÅÔÓÑ.
&merged;</para>
- <para arch="alpha,amd64,i386">ðÅÒÅÍÅÎÎÁÑ ÚÁÇÒÕÚÞÉËÁ
+ <para arch="alpha,amd64,i386,sparc64">ðÅÒÅÍÅÎÎÁÑ ÚÁÇÒÕÚÞÉËÁ
<varname>debug.mpsafevm</varname> ÂÙÌÁ ×ËÌÀÞÅÎÁ ÐÏ
ÕÍÏÌÞÁÎÉÀ. &merged;</para>
@@ -379,6 +403,9 @@
<para>äÒÁÊ×ÅÒ &man.bge.4; ÔÅÐÅÒØ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÉÎÆÒÁÓÔÒÕËÔÕÒÕ
&man.altq.4;.</para>
+ <para>âÙÌ ÄÏÂÁ×ÌÅÎ USB Communication Device Class Ethernet
+ ÄÒÁÊ×ÅÒ &man.cdce.4;. &merged;</para>
+
<para>äÒÁÊ×ÅÒ &man.cp.4; ÔÅÐÅÒØ MPSAFE. &merged;</para>
<para>äÒÁÊ×ÅÒ &man.ctau.4; ÔÅÐÅÒØ MPSAFE. &merged;</para>
@@ -405,6 +432,8 @@
<para>äÒÁÊ×ÅÒ &man.hme.4; ÔÅÐÅÒØ MPSAFE. &merged;</para>
+ <para>äÒÁÊ×ÅÒ &man.ixgb.4; ÔÅÐÅÒØ MPSAFE.</para>
+
<para arch="amd64">ëÏÎ×ÅÒÔÅÒ ÄÒÁÊ×ÅÒÏ× ÕÓÔÒÏÊÓÔ× &man.ndis.4;
ÔÅÐÅÒØ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÂÉÎÁÒÎÙÅ ÆÁÊÌÙ &windows;/x86-64 ÎÁ ÓÉÓÔÅÍÁÈ
amd64. &merged;</para>
@@ -442,6 +471,9 @@
(ÉÌÉ ËÏÍÐÉÌÑÃÉÑ) ÍÏÄÕÌÑ <filename>wlan_wep</filename>
× ÑÄÒÏ.</para>
+ <para>äÒÁÊ×ÅÒ &man.xl.4; ÔÅÐÅÒØ ÐÏÄÄÅÒÖÉ×ÁÅÔ
+ &man.polling.4;.</para>
+
</sect4>
</sect3>
@@ -563,6 +595,10 @@
<para>äÒÁÊ×ÅÒ &man.amr.4; ÔÅÐÅÒØ ÍÏÖÅÔ ÂÅÚÏÐÁÓÎÏ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ
ÎÁ ÓÉÓÔÅÍÁÈ Ó &man.pae.4;. &merged;</para>
+ <para arch="i386,ia64">âÙÌ ÄÏÂÁ×ÌÅÎ ÄÒÁÊ×ÅÒ &man.arcmsr.4;.
+ ïÎ ÐÏÄÄÅÒÖÉ×ÁÅÔ ËÏÎÔÒÏÌÌÅÒÙ SATA RAID ÓÅÒÉÊ Areca ARC-11<replaceable>xx</replaceable>
+ É ARC-12<replaceable>xx</replaceable>. &merged;</para>
+
<para>âÙÌ ÄÏÂÁ×ÌÅÎ ËÌÁÓÓ SHSEC GEOM. ïÎ ÐÒÅÄÏÓÔÁ×ÌÅÎ ÄÌÑ
ÒÁÚÄÅÌÅÎÉÑ ÓÅËÒÅÔÎÏÇÏ ËÌÀÞÁ (<quote>secret</quote>)
ÍÅÖÄÕ ÎÅÓËÏÌØËÉÍÉ ÐÒÏ×ÁÊÄÅÒÁÍÉ GEOM. ÷ÓÅ ÜÔÉ ÐÒÏ×ÁÊÄÅÒÙ
@@ -680,12 +716,20 @@
<para>äÉÓËÏ×ÙÊ ÆÏÒÍÁÔ ÆÁÊÌÏ× <literal>LC_CTYPE</literal> ÂÙÌ ÉÚÍÅÎÅÎ
Ë ÍÁÛÉÎÏ-ÎÅÚÁ×ÉÓÉÍÏÍÕ ×ÉÄÕ.</para>
+ <para>âÙÌÁ ÉÓÐÒÁ×ÌÅÎÁ ÏÛÉÂËÁ × ÂÉÂÌÉÏÔÅËÅ <filename>libalias</filename>,
+ ÐÒÉ×ÏÄÉ×ÛÁÑ Ë ÄÁÍÐÕ ÐÁÍÑÔÉ ÐÒÉ ÕËÁÚÁÎÉÉ × &man.natd.8;
+ ÏÐÃÉÉ <option>-reverse</option>.</para>
+
<para>âÉÂÌÉÏÔÅËÁ <filename>libarchive</filename> (ËÁË É ËÏÍÁÎÄÁ
&man.tar.1;, ÅÅ ÉÓÐÏÌØÚÕÀÝÁÑ) ÔÅÐÅÒØ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÞÔÅÎÉÅ ÏÂÒÁÚÏ×
ISO (Ó ÏÐÃÉÏÎÁÌØÎÙÍ ÒÁÓÛÉÒÅÎÉÅÍ RockRidge) É ÁÒÈÉ×Ï× ZIP
(ÓÏ ÓÖÁÔÉÅÍ <literal>deflate</literal> É <literal>none</literal>).
&merged;</para>
+ <para>âÉÂÌÉÏÔÅËÁ <filename>libarchive</filename> ÔÅÐÅÒØ ÐÏÄÄÅÒÖÉ×ÁÅÔ
+ ZIP ÁÒÈÉ×Ù Ó ×ÈÏÖÄÅÎÉÑÍÉ ÂÏÌÅÅ 4GB × ÕÐÁËÏ×ÁÎÎÏÍ ×ÉÄÅ (ÒÁÓÛÉÒÅÎÉÅ
+ ZIP64) É ÒÁÓÛÉÒÅÎÉÅ Unix.</para>
+
<para>âÙÌÁ ÄÏÂÁ×ÌÅÎÁ ÂÉÂÌÉÏÔÅËÁ <filename>libgpib</filename>,
ÞÔÏÂÙ ÐÒÅÄÏÓÔÁ×ÉÔØ ÄÏÓÔÕÐ ÕÒÏ×ÎÑ ÐÏÌØÚÏ×ÁÔÅÌÑ Ë ÕÓÔÒÏÊÓÔ×ÁÍ
GPIB (ÉÓÐÏÌØÚÕÑ ÄÒÁÊ×ÅÒ pcii) ÞÅÒÅÚ
@@ -837,6 +881,13 @@
<para>õÔÉÌÉÔÙ &man.rescue.8; × ËÁÔÁÌÏÇÅ <filename>/rescue</filename>
ÔÅÐÅÒØ ×ËÌÀÞÁÀÔ &man.bsdtar.1; ×ÍÅÓÔÏ GNU tar.</para>
+ <para>õÔÉÌÉÔÁ &man.restore.8; ÏÐÑÔØ ÍÏÖÅÔ ÞÉÔÁÔØ ÌÅÎÔÙ Ó ÄÁÍÐÁÍÉ
+ &os; ×ÅÒÓÉÉ 1.</para>
+
+ <para>âÙÌÁ ÉÓÐÒÁ×ÌÅÎÁ ÏÛÉÂËÁ × ÕÔÉÌÉÔÅ &man.rexecd.8;, ÉÚ-ÚÁ
+ ËÏÔÏÒÏÊ ÓÞÉÔÁÌÏÓØ, ÞÔÏ ÏÐÃÉÑ <option>-i</option> ×ÓÅÇÄÁ
+ ÕËÁÚÁÎÁ. &merged;</para>
+
<para>õÔÉÌÉÔÁ &man.rm.1; ÔÅÐÅÒØ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÐÁÒÁÍÅÔÒ
<option>-I</option>, Ó ËÏÔÏÒÙÍ (ÏÄÎÏËÒÁÔÎÏ) ÚÁÐÒÁÛÉ×ÁÅÔÓÑ
ÐÏÄÔ×ÅÒÖÄÅÎÉÅ ÐÒÉ ÒÅËÕÒÓÉ×ÎÏÍ ÕÄÁÌÅÎÉÉ ËÁÔÁÌÏÇÏ× ÉÌÉ
@@ -913,7 +964,7 @@
<para>âÙÌÁ ÉÓÐÒÁ×ÌÅÎÁ ÏÛÉÂËÁ ÞÔÅÎÉÑ ÆÁÊÌÏ× ËÏÎÆÉÇÕÒÁÃÉÉ,
ÔÁËÉÈ ËÁË &man.hosts.5;, &man.services.5; É ÔÁË ÄÁÌÅÅ, ËÏÔÏÒÙÅ
- ÎÅ ÚÁËÁÎÞÉ×ÁÌÉÓØ ÓÉÍ×ÏÌÏÍ ÎÏ×ÏÊ ÓÔÒÏËÉ.</para>
+ ÎÅ ÚÁËÁÎÞÉ×ÁÌÉÓØ ÓÉÍ×ÏÌÏÍ ÎÏ×ÏÊ ÓÔÒÏËÉ. &merged;</para>
<sect3 id="rc-scripts">
<title>óËÒÉÐÔÙ <filename>/etc/rc.d</filename></title>
@@ -957,7 +1008,7 @@
<title>óÔÏÒÏÎÎÅÅ ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ</title>
<para><application>BIND</application> ÂÙÌ ÏÂÎÏ×ÌÅÎ Ó ×ÅÒÓÉÉ
- 9.3.0 ÄÏ ×ÅÒÓÉÉ 9.3.1.</para>
+ 9.3.0 ÄÏ ×ÅÒÓÉÉ 9.3.1. &merged;</para>
<para><application>FILE</application> ÂÙÌ ÏÂÎÏ×ÌÅÎ Ó 4.10
ÄÏ 4.12.</para>
@@ -1045,7 +1096,10 @@
ËÁË ÕÓÔÁÎÏ×ËÕ Ó ÜÔÏÇÏ ÄÉÓËÁ, ÔÁË É ×ÏÓÓÔÁÎÏ×ÌÅÎÉÅ ÐÏÓÌÅ
ÓÂÏÅ×. (îÁ ia64, live filesystem ÎÁÈÏÄÉÔÓÑ ÎÁ ÏÔÄÅÌØÎÏÍ
ÄÉÓËÅ, ÐÏÓËÏÌØËÕ ÎÅ ÕÍÅÝÁÅÔÓÑ ÎÁ ÐÅÒ×ÙÊ). ðÁËÅÔÙ ÐÏÍÅÝÁÀÔÓÑ
- ÎÁ ÏÔÄÅÌØÎÙÊ ÄÉÓË. &merged;</para>
+ ÎÁ ÏÔÄÅÌØÎÙÊ ÄÉÓË; × ÞÁÓÔÎÏÓÔÉ, ÏÂÒÁÚ <filename>disc2</filename>
+ ÓÏÄÅÒÖÉÔ ÏÂÝÅÉÓÐÏÌØÚÕÅÍÙÅ ÐÁËÅÔÙ, ÔÁËÉÅ ËÁË ÄÅÓËÔÏÐ-ÐÒÉÌÏÖÅÎÉÑ.
+ äÏËÕÍÅÎÔÙ ðÒÏÅËÔÁ ÄÏËÕÍÅÎÔÉÒÏ×ÁÎÉÑ &os; ÔÁËÖÅ ÐÏÍÅÝÁÀÔÓÑ ÎÁ
+ <filename>disc2</filename>. &merged;</para>
<para>ðÏÄÄÅÒÖÉ×ÁÅÍÁÑ ×ÅÒÓÉÑ ÄÅÓËÔÏÐÁ
<application>GNOME</application> ÂÙÌÁ ÏÂÎÏ×ÌÅÎÁ Ó
@@ -1112,7 +1166,7 @@
&man.inet6.rth.space.3;,
&man.inet6.rthdr.space.3;,
&man.icmp6.4; É
- &man.ip6.4;.</para>
+ &man.ip6.4;. &merged;</para>
</sect2>
==== //depot/projects/hammer/sbin/idmapd/idmapd.c#6 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sbin/idmapd/idmapd.c,v 1.5 2004/04/15 16:12:12 rees Exp $ */
+/* $FreeBSD: src/sbin/idmapd/idmapd.c,v 1.6 2005/04/14 20:27:30 rees Exp $ */
/* $Id: idmapd.c,v 1.5 2003/11/05 14:58:58 rees Exp $ */
/*
@@ -339,12 +339,6 @@
TAILQ_INIT(&upcall_q);
- if (error) {
- perror("sigaction");
- exit(1);
- }
-
-
fd = open(DEV_PATH, O_RDWR, S_IRUSR | S_IWUSR);
if (fd < 0) {
==== //depot/projects/hammer/share/man/man9/Makefile#51 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/share/man/man9/Makefile,v 1.256 2005/04/09 18:38:54 pjd Exp $
+# $FreeBSD: src/share/man/man9/Makefile,v 1.257 2005/04/15 10:57:34 pjd Exp $
MAN= accept_filter.9 \
accf_data.9 \
@@ -795,11 +795,16 @@
runqueue.9 procrunnable.9 \
runqueue.9 remrunqueue.9 \
runqueue.9 setrunqueue.9
-MLINKS+=sbuf.9 sbuf_cat.9 \
+MLINKS+=sbuf.9 sbuf_bcat.9 \
+ sbuf.9 sbuf_bcopyin.9 \
+ sbuf.9 sbuf_bcpy.9 \
+ sbuf.9 sbuf_cat.9 \
sbuf.9 sbuf_clear.9 \
+ sbuf.9 sbuf_copyin.9 \
sbuf.9 sbuf_cpy.9 \
sbuf.9 sbuf_data.9 \
sbuf.9 sbuf_delete.9 \
+ sbuf.9 sbuf_done.9 \
sbuf.9 sbuf_finish.9 \
sbuf.9 sbuf_len.9 \
sbuf.9 sbuf_new.9 \
==== //depot/projects/hammer/share/man/man9/taskqueue.9#9 (text+ko) ====
@@ -26,7 +26,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/taskqueue.9,v 1.14 2005/01/12 21:48:25 ru Exp $
+.\" $FreeBSD: src/share/man/man9/taskqueue.9,v 1.15 2005/04/15 14:46:59 jkoshy Exp $
.\"
.Dd May 12, 2000
.Dt TASKQUEUE 9
@@ -231,6 +231,10 @@
that need to call kernel functions that do things that can only be done
from a thread context.
(e.g., call malloc with the M_WAITOK flag.)
+.Sh SEE ALSO
+.Xr ithread 9 ,
+.Xr kthread 9 ,
+.Xr swi 9
.Sh HISTORY
This interface first appeared in
.Fx 5.0 .
==== //depot/projects/hammer/sys/conf/options.i386#32 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.i386,v 1.218 2005/03/17 01:20:49 cognet Exp $
+# $FreeBSD: src/sys/conf/options.i386,v 1.219 2005/04/14 17:59:57 jhb Exp $
# Options specific to the i386 platform kernels
AUTO_EOI_1 opt_auto_eoi.h
@@ -9,7 +9,6 @@
I586_PMC_GUPROF opt_i586_guprof.h
MAXMEM
MPTABLE_FORCE_HTT
-NO_MIXED_MODE
PERFMON
PMAP_SHPGPERPROC opt_pmap.h
POWERFAIL_NMI opt_trap.h
==== //depot/projects/hammer/sys/conf/options.pc98#29 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.pc98,v 1.182 2005/02/04 15:29:54 nyan Exp $
+# $FreeBSD: src/sys/conf/options.pc98,v 1.183 2005/04/15 14:24:49 nyan Exp $
# Options specific to the pc98 platform kernels
AUTO_EOI_1 opt_auto_eoi.h
@@ -8,7 +8,6 @@
I586_PMC_GUPROF opt_i586_guprof.h
MAXMEM
MPTABLE_FORCE_HTT
-NO_MIXED_MODE
PERFMON
PMAP_SHPGPERPROC opt_pmap.h
POWERFAIL_NMI opt_trap.h
==== //depot/projects/hammer/sys/dev/ata/ata-all.c#46 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.239 2005/04/08 09:37:47 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.241 2005/04/15 14:19:41 sos Exp $");
#include "opt_ata.h"
#include <sys/param.h>
@@ -68,7 +68,8 @@
/* prototypes */
static void ata_interrupt(void *);
static void ata_boot_attach(void);
-device_t ata_add_child(driver_t *driver, device_t parent, struct ata_device *atadev, const char *name, int unit);
+device_t ata_add_child(device_t parent, struct ata_device *atadev, int unit);
+static int ata_identify(device_t dev);
/* global vars */
MALLOC_DEFINE(M_ATA, "ATA generic", "ATA driver generic layer");
@@ -147,8 +148,7 @@
return 0;
/* probe and attach devices on this channel */
- bus_generic_probe(dev);
- bus_generic_attach(dev);
+ ata_identify(dev);
return 0;
}
@@ -171,9 +171,6 @@
free(children, M_TEMP);
}
- /* fail outstanding requests on this channel (SOS shouldn't be any XXX ) */
- ata_fail_requests(ch, NULL);
-
/* release resources */
bus_teardown_intr(dev, ch->r_irq, ch->ih);
bus_release_resource(dev, SYS_RES_IRQ, ATA_IRQ_RID, ch->r_irq);
@@ -558,8 +555,7 @@
/* kick of probe and attach on all channels */
for (ctlr = 0; ctlr < devclass_get_maxunit(ata_devclass); ctlr++) {
if ((ch = devclass_get_softc(ata_devclass, ctlr))) {
- bus_generic_probe(ch->dev);
- bus_generic_attach(ch->dev);
+ ata_identify(ch->dev);
}
}
}
@@ -568,16 +564,14 @@
* misc support functions
*/
device_t
-ata_add_child(driver_t *driver, device_t parent, struct ata_device *atadev,
- const char *name, int unit)
+ata_add_child(device_t parent, struct ata_device *atadev, int unit)
{
struct ata_channel *ch = device_get_softc(parent);
device_t child;
- if ((child = device_add_child(parent, name, unit))) {
+ if ((child = device_add_child(parent, NULL, unit))) {
char buffer[64];
- device_set_driver(child, driver);
device_set_softc(child, atadev);
sprintf(buffer, "%.40s/%.8s",
atadev->param.model, atadev->param.revision);
@@ -586,7 +580,7 @@
atadev->dev = child;
atadev->max_iosize = DEV_BSIZE;
atadev->mode = ATA_PIO_MAX;
- if ((atadev->param.config & ATA_PROTO_MASK) == ATA_PROTO_ATAPI_12) {
+ if (atadev->param.config & ATA_PROTO_ATAPI) {
if (atapi_dma && ch->dma &&
(atadev->param.config & ATA_DRQ_MASK) != ATA_DRQ_INTR &&
ata_umode(&atadev->param) >= ATA_UDMA2)
@@ -600,30 +594,30 @@
return child;
}
-void
-ata_identify(driver_t *driver, device_t parent, int type, const char *name)
+static int
+ata_identify(device_t dev)
{
- struct ata_channel *ch = device_get_softc(parent);
+ struct ata_channel *ch = device_get_softc(dev);
struct ata_device *master, *slave;
int master_res = EIO, slave_res = EIO, master_unit = -1, slave_unit = -1;
if (!(master = malloc(sizeof(struct ata_device),
M_ATA, M_NOWAIT | M_ZERO))) {
- device_printf(parent, "out of memory\n");
- return;
+ device_printf(dev, "out of memory\n");
+ return ENOMEM;
}
master->unit = ATA_MASTER;
if (!(slave = malloc(sizeof(struct ata_device),
M_ATA, M_NOWAIT | M_ZERO))) {
free(master, M_ATA);
- device_printf(parent, "out of memory\n");
- return;
+ device_printf(dev, "out of memory\n");
+ return ENOMEM;
}
slave->unit = ATA_SLAVE;
/* wait for the channel to be IDLE then grab it before touching HW */
- while (ATA_LOCKING(parent, ATA_LF_LOCK) != ch->unit)
- tsleep(ch, PRIBIO, "ataidnt2", 1);
+ while (ATA_LOCKING(dev, ATA_LF_LOCK) != ch->unit)
+ tsleep(ch, PRIBIO, "ataidnt1", 1);
while (1) {
mtx_lock(&ch->state_mtx);
if (ch->state == ATA_IDLE) {
@@ -632,40 +626,41 @@
break;
}
mtx_unlock(&ch->state_mtx);
- tsleep(ch, PRIBIO, "ataidnt1", 1);
+ tsleep(ch, PRIBIO, "ataidnt2", 1);
}
- if (type < 0) {
- if (ch->devices & ATA_ATA_SLAVE)
- slave_res = ata_getparam(parent, slave, ATA_ATA_IDENTIFY);
- if (ch->devices & ATA_ATA_MASTER)
- master_res = ata_getparam(parent, master, ATA_ATA_IDENTIFY);
+ if (ch->devices & ATA_ATA_SLAVE) {
+ slave_res = ata_getparam(dev, slave, ATA_ATA_IDENTIFY);
#ifdef ATA_STATIC_ID
- master_unit = (device_get_unit(parent) << 1);
- slave_unit = (device_get_unit(parent) << 1) + 1;
+ slave_unit = (device_get_unit(dev) << 1) + 1;
#endif
}
- else {
- if (ch->devices & ATA_ATAPI_SLAVE)
- slave_res = ata_getparam(parent, slave, ATA_ATAPI_IDENTIFY);
- if (ch->devices & ATA_ATAPI_MASTER)
- master_res = ata_getparam(parent, master, ATA_ATAPI_IDENTIFY);
+ else if (ch->devices & ATA_ATAPI_SLAVE)
+ slave_res = ata_getparam(dev, slave, ATA_ATAPI_IDENTIFY);
+
+ if (ch->devices & ATA_ATA_MASTER) {
+ master_res = ata_getparam(dev, master, ATA_ATA_IDENTIFY);
+#ifdef ATA_STATIC_ID
+ master_unit = (device_get_unit(dev) << 1);
+#endif
}
+ else if (ch->devices & ATA_ATAPI_MASTER)
+ master_res = ata_getparam(dev, master, ATA_ATAPI_IDENTIFY);
- if (master_res ||
- !(type < 0 || (master->param.config & ATA_ATAPI_TYPE_MASK) == type) ||
- !ata_add_child(driver, parent, master, name, master_unit))
+ if (master_res || !ata_add_child(dev, master, master_unit))
free(master, M_ATA);
- if (slave_res ||
- !(type < 0 || (slave->param.config & ATA_ATAPI_TYPE_MASK) == type) ||
- !ata_add_child(driver, parent, slave, name, slave_unit))
+ if (slave_res || !ata_add_child(dev, slave, slave_unit))
free(slave, M_ATA);
mtx_lock(&ch->state_mtx);
ch->state = ATA_IDLE;
mtx_unlock(&ch->state_mtx);
- ATA_LOCKING(parent, ATA_LF_UNLOCK);
+ ATA_LOCKING(dev, ATA_LF_UNLOCK);
+
+ bus_generic_probe(dev);
+ bus_generic_attach(dev);
+ return 0;
}
void
==== //depot/projects/hammer/sys/dev/ata/ata-all.h#27 (text+ko) ====
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.92 2005/04/14 08:48:45 sos Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.93 2005/04/15 10:20:51 sos Exp $
*/
/* ATA register defines */
@@ -452,7 +452,6 @@
int ata_reinit(device_t dev);
int ata_suspend(device_t dev);
int ata_resume(device_t dev);
-void ata_identify(driver_t *driver, device_t parent, int type, const char *name);
void ata_default_registers(struct ata_channel *ch);
void ata_udelay(int interval);
char *ata_mode2str(int mode);
==== //depot/projects/hammer/sys/dev/ata/ata-disk.c#30 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.184 2005/03/31 15:05:40 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.185 2005/04/15 10:20:51 sos Exp $");
#include "opt_ata.h"
#include <sys/param.h>
@@ -66,16 +66,15 @@
/* local vars */
static MALLOC_DEFINE(M_AD, "AD driver", "ATA disk driver");
-static void
-ad_identify(driver_t *driver, device_t parent)
-{
- ata_identify(driver, parent, -1, "ad");
-}
-
static int
ad_probe(device_t dev)
{
- return 0;
+ struct ata_device *atadev = device_get_softc(dev);
+
+ if (!(atadev->param.config & ATA_PROTO_ATAPI))
+ return 0;
+ else
+ return ENXIO;
}
static int
@@ -93,8 +92,6 @@
if (!(adp = malloc(sizeof(struct ad_softc), M_AD, M_NOWAIT | M_ZERO))) {
device_printf(dev, "out of memory\n");
- device_set_softc(dev, NULL);
- free(atadev, M_ATA);
return ENOMEM;
}
device_set_ivars(dev, adp);
@@ -161,7 +158,6 @@
ad_detach(device_t dev)
{
struct ata_channel *ch = device_get_softc(device_get_parent(dev));
- struct ata_device *atadev = device_get_softc(dev);
struct ad_softc *adp = device_get_ivars(dev);
device_t *children;
int nchildren, i;
@@ -187,8 +183,6 @@
/* dont leave anything behind */
device_set_ivars(dev, NULL);
free(adp, M_AD);
- device_set_softc(dev, NULL);
- free(atadev, M_ATA);
return 0;
}
@@ -419,7 +413,6 @@
static device_method_t ad_methods[] = {
/* device interface */
- DEVMETHOD(device_identify, ad_identify),
DEVMETHOD(device_probe, ad_probe),
DEVMETHOD(device_attach, ad_attach),
DEVMETHOD(device_detach, ad_detach),
@@ -439,22 +432,6 @@
devclass_t ad_devclass;
-static int
-ad_modevent(module_t mod, int what, void *arg)
-{
- device_t *devs;
- int ndevs, i;
-
- if (what == MOD_UNLOAD) {
- if (!devclass_get_devices(ad_devclass, &devs, &ndevs) && devs) {
- for (i = 0; i < ndevs; i++)
- device_delete_child(device_get_parent(devs[i]), devs[i]);
- free(devs, M_TEMP);
- }
- }
- return 0;
-}
-
-DRIVER_MODULE(ad, ata, ad_driver, ad_devclass, ad_modevent, NULL);
+DRIVER_MODULE(ad, ata, ad_driver, ad_devclass, NULL, NULL);
MODULE_VERSION(ad, 1);
MODULE_DEPEND(ad, ata, 1, 1, 1);
==== //depot/projects/hammer/sys/dev/ata/atapi-cam.c#19 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cam.c,v 1.39 2005/04/08 22:51:50 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cam.c,v 1.40 2005/04/15 10:20:51 sos Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -90,7 +90,7 @@
enum reinit_reason { BOOT_ATTACH, ATTACH, RESET };
/* Device methods */
-static int atapi_cam_identify(device_t *dev, device_t parent);
+static void atapi_cam_identify(device_t *dev, device_t parent);
static int atapi_cam_probe(device_t dev);
static int atapi_cam_attach(device_t dev);
static int atapi_cam_detach(device_t dev);
@@ -102,6 +102,9 @@
static void atapi_async(void *, u_int32_t, struct cam_path *, void *);
static void atapi_cb(struct ata_request *);
+/* Module methods */
+static int atapi_cam_event_handler(module_t mod, int what, void *arg);
+
/* internal functions */
static void reinit_bus(struct atapi_xpt_softc *scp, enum reinit_reason reason);
static void setup_async_cb(struct atapi_xpt_softc *, uint32_t);
@@ -130,24 +133,52 @@
};
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list