- A #include of <sys/mutex.h> is no longer needed to use sx(9) (since
2001/05/01).
- Use of the SX_SYSINIT() macro requires inclusion of '<sys/kernel.h>'
The manual page contains enough information to get someone started
with ALQ.
MLINKS have been added appropriately.
Approved by: jeff, des
Reviewed by: des, jeff, sam, brooks, rwatson, mtm
if_xname, if_dname, and if_dunit. if_xname is the name of the interface
and if_dname/unit are the driver name and instance.
This change paves the way for interface renaming and enhanced pseudo
device creation and configuration symantics.
Approved By: re (in principle)
Reviewed By: njl, imp
Tested On: i386, amd64, sparc64
Obtained From: NetBSD (if_xname)
* Uppercase the .Dt command contents.
* Remove incorrect usage of .Fa.
* Use .Va for struct members, and .Vt for structs
(correct replacement for .Fa)
* Markup VM_* and MAP_* macros with .Dv command.
* Replace 'man' with 'manual' for consistency.
* Uppercase .Dt command contents.
* Make use of .Fo and .Fc for marking up functions with
a lot of arguments.
NOTE: Please do not use the `\' line seperator for mdoc(7)
manual pages, as it has problems of its own on some displays;
instead, consult the mdoc(7) manual on using .Fo and .Fc.
* Change 'man' to 'manual' for consistency.
* Add .Vt in the right places, transform some .Fa to .Vt, depending
on discussion context.
* When refering to the function malloc(), use .Fn, and not .Xr.
* Add `The' to prefix a sentence when describing a function, so
it results in ``The xxx() function..."
* Use `system call' instead of `syscall'.
* Improve the sentence which discusses accept_filt_generic_mod_event();
Talk about moduledata_t, and refer to the DECLARE_MODULE(9) manual
page.
* Properly markup .An (Author Name) throughout the AUTHORS section.
* Remove first person sentence start.
* Make use of .Dv for LEASE_READ and LEASE_WRITE.
* Move the LOCKS section below the standard mdoc(7) RETURN VALUES
section.
* Cleanup grammar for RETURN VALUES and AUTHORS section.
* Remove redundant sentence on return values.
callout lock while the callout is happening. So the serialization
that I thought was happening isn't. Therefore, remove the part of the
bugs that says this. Leave in the other bug as it is very hard to
work around (impossible?).
Fix various typos.
Also note that timeout/untimeout are considered to be the old interface and
the callout interface should be used insetad.
Submitted by: bde (first two) and wollman (third)
callout has finished or is in progress. Also document that the
locking of the callout code for FreeBSD 5 has eliminated the 'or is in
progress' clause as a possibility and that such elimination is an
accident of the implementation and shouldn't be relied upon.
o It is the /usr/include files, not the /usr include files.
o Document the practice of converting to the c99 standard uintXX_t
form from the older, but non-standard, BSD-style u_intXX_t. This
has been going on in the tree for a while now, and I've heard other
developers also state that this conversion is happening. Note also
that this is a slow process and should be treated like whitespace
changes.
instances: the memory holding a struct disk should be pre-zeroed so
as to initialize any storage framework private data in the structures
properly. In addition, the memory must be writable so that the
private data may be updated.
Pointed out by: phk
APIs permit disk device drivers to register and deregister storage devices
for use by storage device consumers. No doubt this API will change
more as time flies by, but this should be helpful to the creators of
new storage device drivers.
Reviewed by: phk
out of cdregister() and daregister(), which are run from interrupt context.
The sysctl code does blocking mallocs (M_WAITOK), which causes problems
if malloc(9) actually needs to sleep.
The eventual fix for this issue will involve moving the CAM probe process
inside a kernel thread. For now, though, I have fixed the issue by moving
dynamic sysctl variable creation for these two drivers to a task queue
running in a kernel thread.
The existing task queues (taskqueue_swi and taskqueue_swi_giant) run in
software interrupt handlers, which wouldn't fix the problem at hand. So I
have created a new task queue, taskqueue_thread, that runs inside a kernel
thread. (It also runs outside of Giant -- clients must explicitly acquire
and release Giant in their taskqueue functions.)
scsi_cd.c: Remove sysctl variable creation code from cdregister(), and
move it to a new function, cdsysctlinit(). Queue
cdsysctlinit() to the taskqueue_thread taskqueue once we
have fully registered the cd(4) driver instance.
scsi_da.c: Remove sysctl variable creation code from daregister(), and
move it to move it to a new function, dasysctlinit().
Queue dasysctlinit() to the taskqueue_thread taskqueue once
we have fully registered the da(4) instance.
taskqueue.h: Declare the new taskqueue_thread taskqueue, update some
comments.
subr_taskqueue.c:
Create the new kernel thread taskqueue. This taskqueue
runs outside of Giant, so any functions queued to it would
need to explicitly acquire/release Giant if they need it.
cd.4: Update the cd(4) man page to talk about the minimum command
size sysctl/loader tunable. Also note that the changer
variables are available as loader tunables as well.
da.4: Update the da(4) man page to cover the retry_count,
default_timeout and minimum_cmd_size sysctl variables/loader
tunables. Remove references to /dev/r???, they aren't used
any longer.
cd.9: Update the cd(9) man page to describe the CD_Q_10_BYTE_ONLY
quirk.
taskqueue.9: Update the taskqueue(9) man page to describe the new thread
task queue, and the taskqueue_swi_giant queue.
MFC after: 3 days
large to huge amounts of small or medium sized receive buffers. The problem
with these situations is that they eat up the available DMA address space
very quickly when using mbufs or even mbuf clusters. Additionally this
facility provides a direct mapping between 32-bit integers and these buffers.
This is needed for devices originally designed for 32-bit systems. Ususally
the virtual address of the buffer is used as a handle to find the buffer as
soon as it is returned by the card. This does not work for 64-bit machines
and hence this mapping is needed.
Remove a reference to the defunct macro M_COPY_PKTHDR;
document the new functions m_dup_pkthdr() and m_move_pkthdr(),
and the macro variant of the latter, M_MOVE_PKTHDR().
- tagging plaintext "mbuf", "mbuf cluster", and "mbuf chain"
with .Vt (variable type) since all of them are ways of managing
data, i.e., they can be seen as data types;
- using .Vt/.Va instead of .Li (literal) where appropriate;
- tagging plaintext words that actually refer to function arguments
with .Fa.
Suggested by: ru
bus_dmamap_sync() by OR'ing them together.
- Don't document what BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE and
BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE is supposed to do when
passed to bus_dmamap_sync(). There are other possible combinations
and the reader just needs to know what the individual flags do and
that he can combine different DMA operations.
- Use .An when listing authors.
Reviewed by: hmp
discipline to Random Early Detection (RED) in the future. The same para
incorrectly spelt ``Random Early Detection'' as ``Random Early Drop''.
While I am there, nuke IF_ENQ_DROP from the list of functions. More
work will be done on this, since some of the functions like
if_enq_drop() and if_queue_drop() were replaced with one function
called if_handoff() that does the job of enqueing the packet and
updating interface statistics as necessary.
Reviewed by: wollman
Approved by: des (mentor)
MFC after: 1 day
It currently supports the PMC Sierra Lite, Ultra and 622 chips and
the IDT 77105. The driver handles media options and state in a consistent
manner for ATM drivers. The next commit to the midway driver will make
it use utopia.
PCI bus interface. I have made some modifications to this manual
page, so it looks a bit different from the original version that
was posted to me.
Submitted by: Bruce M. Simpson <bms@spc.org>
Reviewed by: imp, mdodd (early copy)
Approved by: des (mentor)
MFC after: 3 days
extended attribute.
EINVAL can also reflect an invalid namespace for either a get
or set operation on EAs.
Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories
VOP_GETEXTATTR() to retrieve the attribute name list on some file
systems, and note that this will be replaced with its own VOP
in due course.
Pointed out by: Dominic Giampaolo <dbg@apple.com>