]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
- Rework the underlying ALQ storage to be a circular buffer, which amongst other
authorlstewart <lstewart@FreeBSD.org>
Mon, 26 Apr 2010 13:48:22 +0000 (13:48 +0000)
committerlstewart <lstewart@FreeBSD.org>
Mon, 26 Apr 2010 13:48:22 +0000 (13:48 +0000)
commitbf49d6a9f92f8bbc5e93fc29dd4adda1d2482070
tree17b458fe2490d54aee42801fd68b9142001f31c7
parenta5b7da1286b9e75eec0c82af953e6e74b91c7b21
- Rework the underlying ALQ storage to be a circular buffer, which amongst other
  things allows variable length messages to be easily supported.

- Extend KPI with alq_writen() and alq_getn() to support variable length
  messages, which is enabled at ALQ creation time depending on the
  arguments passed to alq_open(). Also add variants of alq_open() and
  alq_post() that accept a flags argument. The KPI is still fully
  backwards compatible and shouldn't require any change in ALQ consumers
  unless they wish to utilise the new features.

- Introduce the ALQ_NOACTIVATE and ALQ_ORDERED flags to allow ALQ consumers
  to have more control over IO scheduling and resource acquisition
  respectively.

- Strengthen invariants checking.

- Document ALQ changes in ALQ(9) man page.

Sponsored by: FreeBSD Foundation
Reviewed by: gnn, jeff, rpaulo, rwatson
MFC after: 1 month
share/man/man9/alq.9
sys/kern/kern_alq.c
sys/sys/alq.h