+void
+IOPMinformeeList::initialize( void )
+{
+ firstItem = NULL;
+ length = 0;
+}
+
+//******************************************************************************
+// getSharedRecursiveLock
+//
+//******************************************************************************
+IORecursiveLock *
+IOPMinformeeList::getSharedRecursiveLock( void )
+{
+ static IORecursiveLock *sharedListLock = NULL;
+
+ /* A running system could have 50-60+ instances of IOPMInformeeList.
+ * They'll share this lock, since list insertion and removal is relatively
+ * rare, and generally tied to major events like device discovery.
+ *
+ * getSharedRecursiveLock() is called from IOStartIOKit to initialize
+ * the sharedListLock before any IOPMinformeeLists are instantiated.
+ *
+ * The IOPMinformeeList class will be around for the lifetime of the system,
+ * we don't worry about freeing this lock.
+ */
+
+ if (NULL == sharedListLock) {
+ sharedListLock = IORecursiveLockAlloc();
+ }
+ return sharedListLock;
+}
+
+//*********************************************************************************
+// appendNewInformee
+//
+//*********************************************************************************
+IOPMinformee *
+IOPMinformeeList::appendNewInformee( IOService * newObject )