* 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>
- Nuke markup indicators for editors.
- Bump the date
- Use mdoc(7) specifiers for marking up defines, etc.
- Update the prototypes
- Flash out the description
- Cleanup english, spelling and grammar
- Update .Xr's
- Add following SEE ALSOs: uio(9), uma(9), vput(9), vref(9)
- Reorder sections to be in agreement with mdoc(7)
- Add FILES section
- Update Copyright and AUTHORS section.
Approved by: des (mentor)
Nuke incorrect usage of .Ar; replace it with .Vt, .Va or .Fa appropriately.
The .Ar mdoc(7) specifier should only be used when displaying command line
arguments.
Approved by: des (mentor)
- remove '-*- nroff -*-'
- bump the date
- nuke outdated ``struct vnode''
(it is just better to lookup the struct in the header)
- nuke ``enum vtype'' and related junk
- add a one line about ``struct vnode''
- use .Va instead of .Dv for vnode struct fields
Approved by: des (mentor), re (bmah)
Reviewed by: arch@, mentor
This manpage should really have only one short description (.Nd);
if anyone could come up with a wording suitable for both conversion
and decoding/encoding functions, that would unbreak the whatis(1)
output for this manpage.
Approved by: re (blanket)
description.
- Remove some bogus commas.
- Use the past tense when referring to the removal of the sleep() function
since it happened quite a while ago and since the previous sentence in the
paragraph already uses the past tense.
Approved by: re (rwatson)
datagrams have a LIST of multicast group memberships...". On -CURRENT, that
LIST is actually a TAILQ. Note that -STABLE still uses a LIST
PR: 50426
Submitted by: Scott Mitchell <scott+freebsd@fishballoon.org>
separate man page. Document new device_is_attached there and remove that
new man page too.
Connect device_get_name to build, and install a link for
device_get_nameunit.
strangely nobody noticed this yet...
While beeing here also correct the following:
- list missing macros in the header
- document MALLOC_DEFINE and MALLOC_DECLARE in the SYNOPSIS section
- document additional include requirements for MALLOC_DEFINE
- M_NOWAIT is not 0 anymore
- remove rotted diagnostic messages
with vnode interlocks held.
Emphasize that users need to be careful with malloc flags versus mbuf
flags.
Remove stale portion in vnode.9 about v_tag. We don't have it anylonger.
Submitted by: Hiten Pandya <hiten@unixdaemons.com>
o Biba: A data integrity policy
o BSD Extended: Support for the firewall-like access controls (ugidfw(8))
o MLS: Multi-level security, a confidentiality policy
(These files originally lived in src/share/man/man9)
Approved by: re (blanket)
Sponsored by: DARPA, Network Associates Labs
Obtained from: TrustedBSD Project
Revert to using the .Tn POSIX and .Tn ANSI instead of \*[Px] and \*[Ai]
strings; using these strings is unsafe in troff mode, as they include a
change in a font size.
Approved by: re
NAI.
Add cautionary notes on the experimental status of the MAC Framework
in FreeBSD 5.0.
Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories
largely submitted by bde. Return our exemption of the #ifdef lint
comments since the exemption is intended to handle a particularly
common current case without mandating change. Improve language and
spelling, and slightly clarify the notions associated specifically
with #elif.
Obtained from: bde
The closing comment is required only for long conditionally defined
code sections, with the exception of lint cases. Attempt to document
also the logic for using '!' before the SOMETIMESSOMETHGINGHERE.
The goal of these comments is to make complex cases more
comprehensible, not to require them in all cases. The rules here are
derived from behavior used in 90+% of the kernel source code.
Reviewed by and discussed with: jhb, bde, mike
associated with the TrustedBSD MAC Framework, as well as some credits
to developers and contributors.
Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories
which may surprise developers coming from Solaris, or other platforms
which have a similar interface, but slightly different rules.
Reviewed by: jhb, ru
o describe additional argument in driver callbacks
o describe flow-control mechanism for processing crypto requests
o remove old cruft
o remove openbsd-specific cruft
o fixup some references
o yada yada ...
One bug fixed: Use getmicrouptime() to trigger reseeds so that we
cannot be tricked by a clock being stepped backwards.
Express parameters in natural units and with natural names.
Don't use struct timeval more than we need to.
Various stylistic and readability polishing.
Introduce arc4rand(void *ptr, u_int len, int reseed) function which
returns a stream of pseudo-random bytes, observing the automatic
reseed criteria as well as allowing forced reseeds.
Rewrite arc4random() in terms of arc4rand().
Sponsored by: DARPA & NAI Labs.
Capitalize the first letter of the descriptions for the entries in the ERRORS
section if they are complete sentences and end the sentences with periods.
and adjacent tokens in declarations.
The added text was originally a single sentence I wrote and which
was heavily modified and extended by Bruce Evans.
This clarification attempt originates from differing usage of the
'restrict' type-qualifier.
Although various documents documents dicussing the C Programming
Language put a space between an asterisk and the 'restrict' keyword,
including the C99 standard (at least the n869.txt draft) and other
ISO/IEC JTC1/SC22/WG14 documents, the IEEE Std 1003.1-2001 document
does not separate them.
Discussed with: bde
Requested by: tjr
Separation using a single space also liked by: mike
which became wrong after using do { } while (0) became recommended.
Move the definition of what braces are to their new first occurrence.
Reviewed by: bde