summaryrefslogtreecommitdiff
path: root/sys/dev/raidframe/raidframevar.h
diff options
context:
space:
mode:
authoroster <oster@NetBSD.org>2004-03-18 16:40:05 +0000
committeroster <oster@NetBSD.org>2004-03-18 16:40:05 +0000
commitd4fe1a2103021285632dee77ed05bde234da39a6 (patch)
tree01ef50b395ca9216a4b5747b27511c4e778f85ac /sys/dev/raidframe/raidframevar.h
parentf72e36ac23bfa2ab130b01178b4d19955d9ee688 (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