+ // Change to queue
+#ifndef __ppc__
+ IOLockLock(tmpLock);
+#endif
+ OSEnqueueAtomic((void **)&changes, (void *)new_one, 0);
+#ifndef __ppc__
+ IOLockUnlock(tmpLock);
+#endif
+ signalWorkAvailable();
+
+ return true;
+}
+
+bool IOPMPowerStateQueue::featureChangeOccurred(
+ uint32_t inState,
+ IOService *inTarget)
+{
+ PowerChangeEntry *new_one = NULL;
+
+ new_one = (PowerChangeEntry *)IOMalloc(sizeof(PowerChangeEntry));
+ if(!new_one) return false;
+
+ new_one->actionType = IOPMPowerStateQueue::kPMFeatureChange;
+ new_one->state = inState;
+ new_one->target = inTarget;
+