Implement SYSREF - structural reference counting, allocation, and sysid
authorMatthew Dillon <dillon@dragonflybsd.org>
Sun, 29 Apr 2007 01:29:33 +0000 (01:29 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sun, 29 Apr 2007 01:29:33 +0000 (01:29 +0000)
commit10aa77c0fce66a6c4c0980eaa215fe76001386b5
treee096f7bf6d88b4c8d419ceb73db6758f4b6ba56c
parentb1641984ab0084a339a0069ef7e04a18d894bbf8
Implement SYSREF - structural reference counting, allocation, and sysid
management subsystem.

* Structural reference count management, including creation and termination
  sequencing (e.g. where the structure might be temporarily referenced
  during termination).

* Allocation.  It uses an objcache backend for optimal allocation,
  deallocation, and memory recovery.

* Sysid assignment and red-black tree indexing.  It does this in the
  objcache CTOR and DTOR so it costs us absolutely nothing in the
  resource allocation / deallocation critical path.  sysids will be
  reused unless they are externally accessed.
sys/conf/files
sys/kern/kern_sysref.c [new file with mode: 0644]
sys/sys/globaldata.h
sys/sys/sysid.h [new file with mode: 0644]
sys/sys/syslink.h
sys/sys/sysref.h [new file with mode: 0644]
sys/sys/sysref2.h [new file with mode: 0644]