diff options
| author | oster <oster@NetBSD.org> | 2004-03-18 16:40:05 +0000 |
|---|---|---|
| committer | oster <oster@NetBSD.org> | 2004-03-18 16:40:05 +0000 |
| commit | d4fe1a2103021285632dee77ed05bde234da39a6 (patch) | |
| tree | 01ef50b395ca9216a4b5747b27511c4e778f85ac /sys/dev/raidframe/raidframevar.h | |
| parent | f72e36ac23bfa2ab130b01178b4d19955d9ee688 (diff) | |
- Introduce a 'dagnode' pool. Initialize it and allow for cleanup.
Provide rf_AllocDAGNode() and rf_FreeDAGNode() to handle
allocation/freeing.
- Introduce a "nodes" linked list of RF_DagNode_t's into the DAG header.
Initialize nodes in InitHdrNode(). Arrange for nodes cleanup in rf_FreeDAG().
- Add a "list_next" to RF_DagNode_t to keep track of nodes on the
above "nodes" list. (This is distinct from the "next" field of
RF_DagNode_t, which keeps track of the firing order of nodes.)
"list_next" gets used in the cleanup routines, and in traversing
through a set of nodes that belong to a particular set of nodes
(e.g. those belonging to xorNodes for a given DAG).
- use rf_AllocDAGNode() instead of mallocs of variable-sized arrays of
RF_DagNode_t's. Mostly mechanical changes to convert the DAG construction
from "access nodes via an array index" to "access nodes via a 'nextnode'
pointer".
- rework a couple of tricky spots where assumptions about the node order
was being abused.
- performance remains consistent with performance before these changes.
[Thanks to Simon Burge (simonb at you.know.where) for looking over
the mechanical changes to make sure I didn't biff anything.]
Diffstat (limited to 'sys/dev/raidframe/raidframevar.h')
0 files changed, 0 insertions, 0 deletions
