@result True if inherited classes initialise successfully. */
virtual bool init(OSObject *owner, Action action = 0);
-#if !(defined(__ppc__) && defined(KPI_10_4_0_PPC_COMPAT))
// Superclass overrides
virtual void free();
virtual void setWorkLoop(IOWorkLoop *inWorkLoop);
-#endif
/*! @function runCommand
@abstract Single thread a command with the target work-loop.
@param onlyOneThread true to only wake up at most one thread, false otherwise. */
virtual void commandWakeup(void *event, bool oneThread = false);
-#if !(defined(__ppc__) && defined(KPI_10_4_0_PPC_COMPAT))
/*! @function disable
@abstract Disable the command gate
@discussion When a command gate is disabled all future calls to runAction and runCommand will stall until the gate is enable()d later. This can be used to block client threads when a system sleep is requested. The IOWorkLoop thread itself will never stall, even when making runAction/runCommand calls. This call must be made from a gated context, to clear potential race conditions. */
@abstract Enable command gate, this will unblock any blocked Commands and Actions.
@discussion Enable the command gate. The attemptAction/attemptCommand calls will now be enabled and can succeeed. Stalled runCommand/runAction calls will be woken up. */
virtual void enable();
-#endif
private:
OSMetaClassDeclareReservedUnused(IOCommandGate, 0);