Implement SYSREF - structural reference counting, allocation, and sysid
commit667b43a8f5235d57b8e2beab7708a827c44f0060
authorMatthew Dillon <dillon@dragonflybsd.org>
Sun, 29 Apr 2007 01:29:33 +0000 (29 01:29 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sun, 29 Apr 2007 01:29:33 +0000 (29 01:29 +0000)
treeb671dfd5ceb1214ea5bbf89b29e023c79e26fd3a
parent1845dad83c74e7d6ec753a944122840f29472613
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]