/*
 * Copyright (c) 1998-2006 Apple Computer, Inc. All rights reserved.
 *
 * @APPLE_LICENSE_HEADER_START@
 * 
 * This file contains Original Code and/or Modifications of Original Code
 * as defined in and that are subject to the Apple Public Source License
 * Version 2.0 (the 'License'). You may not use this file except in
 * compliance with the License. Please obtain a copy of the License at
 * http://www.opensource.apple.com/apsl/ and read it before using this
 * file.
 * 
 * The Original Code and all software distributed under the License are
 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
 * Please see the License for the specific language governing rights and
 * limitations under the License.
 * 
 * @APPLE_LICENSE_HEADER_END@
 */
 
#include "AppleiSubDevice.h"

#define super IOService

OSDefineMetaClassAndStructors (AppleiSubDevice, super)

bool AppleiSubDevice::init (OSDictionary * properties) {
	bool							resultCode;

	debugIOLog ("+ AppleiSubDevice[%p]::init (%p)", this, properties);

	resultCode = super::init ();

	debugIOLog ("- AppleiSubDevice[%p]::init (%p) = %d", this, properties, resultCode);
	return resultCode;
}

void AppleiSubDevice::free (void) {
	debugIOLog ("+ AppleiSubEngine[%p]::free ()", this);

	super::free ();

	debugIOLog ("- AppleiSubEngine[%p]::free ()", this);
	return;
}

bool AppleiSubDevice::start (IOService * provider) {
	bool							resultCode;

	debugIOLog ("+ AppleiSubDevice[%p]::start (%p)", this, provider);

	resultCode = super::start (provider);

	debugIOLog ("- AppleiSubDevice[%p]::start (%p) = %d", this, provider, resultCode);
	return resultCode;
}

void AppleiSubDevice::stop (IOService * provider) {
	debugIOLog("+ AppleiSubDevice[%p]::stop ()", this);

	super::stop (provider);

	debugIOLog("- AppleiSubDevice[%p]::stop ()", this);
	return;
}

bool AppleiSubDevice::terminate (IOOptionBits options) {
	bool							resultCode;

	debugIOLog ("+ AppleiSubDevice[%p]::terminate (0x%x), rc=%d", this, options, getRetainCount ());

	resultCode = super::terminate (options);

	debugIOLog ("- AppleiSubDevice[%p]::terminate (0x%x) = %d, rc=%d", this, options, resultCode, getRetainCount ());
	return resultCode;
}

bool AppleiSubDevice::finalize (IOOptionBits options) {
	bool							resultCode;

	debugIOLog ("+ AppleiSubDevice[%p]::finalize (%p), rc=%d", this, options, getRetainCount ());

	resultCode = super::finalize (options);

	debugIOLog ("- AppleiSubDevice[%p]::finalize (%p) = %d, rc=%d", this, options, resultCode, getRetainCount ());
	return resultCode;
}
