X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/1c79356b52d46aa6b508fb032f5ae709b1f2897b..3e170ce000f1506b7b5d2c5c7faec85ceabb573d:/iokit/Tests/Tests.cpp diff --git a/iokit/Tests/Tests.cpp b/iokit/Tests/Tests.cpp index 5e570cc27..bc2d05b69 100644 --- a/iokit/Tests/Tests.cpp +++ b/iokit/Tests/Tests.cpp @@ -1,159 +1,207 @@ /* * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved. * - * @APPLE_LICENSE_HEADER_START@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * - * The contents of this file constitute Original Code as defined in and - * are subject to the Apple Public Source License Version 1.1 (the - * "License"). You may not use this file except in compliance with the - * License. Please obtain a copy of the License at - * http://www.apple.com/publicsource and read it before using this file. + * 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. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. * - * This Original Code and all software distributed under the License are - * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * 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 OR NON-INFRINGEMENT. Please see the - * License for the specific language governing rights and limitations - * under the License. + * 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@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ /* * */ -#include -#include -#include - -#include - +#define TEST_HEADERS 0 -extern "C" { -extern int debug_container_malloc_size; -extern int debug_ivars_size; -} +#if TEST_HEADERS -static void DumpTree( void ) +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif /* TEST_HEADERS */ + +#include +#include +#include "Tests.h" + +static int +sysctl_iokittest(__unused struct sysctl_oid *oidp, __unused void *arg1, __unused int arg2, struct sysctl_req *req) { - IORegistryEntry * next; - IORegistryEntry * packages = 0; - IORegistryEntry * deblocker = 0; - IORegistryEntry * keyboard = 0; - IORegistryIterator * iter; - OSOrderedSet * all; - - IOLog("ivars %08x, containers %08x\n", - debug_ivars_size, debug_container_malloc_size); - - iter = IORegistryIterator::iterateOver( gIODTPlane ); - assert( iter ); - - all = iter->iterateAll(); - IOLog("\nCount %d\n", all->getCount() ); - all->release(); - - iter->reset(); - while( (next = iter->nextEntryRecursive())) { - if( 0 == strcmp( "packages", next->getName())) - packages = next; - if( 0 == strcmp( "deblocker", next->getName())) - deblocker = next; - if( 0 == strcmp( "keyboard", next->getName())) - keyboard = next; - } - - if( deblocker && keyboard) - deblocker->attachToParent( keyboard, gIODTPlane); - - iter->reset(); - while( (next = iter->nextEntryRecursive())) { - IOLog("%s=%d,", next->getName(), next->getDepth( gIODTPlane )); - if( 0 == strcmp( "gc", next->getName())) { - packages = next; - } + int error; + int newValue, changed; + + error = sysctl_io_number(req, 0, sizeof(int), &newValue, &changed); + if (error) return (error); + +#if DEVELOPMENT || DEBUG + if (changed && (999==newValue)) + { + OSData * data = OSData::withCapacity(16); + data->release(); + data->release(); } - IOLog("ivars %08x, containers %08x\n", - debug_ivars_size, debug_container_malloc_size); - - if( packages) - packages->detachAll( gIODTPlane); - all = iter->iterateAll(); - IOLog("del gc/, count now %d\n", all->getCount() ); - all->release(); - - iter->release(); - - IOLog("ivars %08x, containers %08x\n", - debug_ivars_size, debug_container_malloc_size); - -} - -extern "C" { -void PathTests( void ) -{ - const char * tests[] = { - "IODeviceTree:/bandit", - "IODeviceTree:/", - "IODeviceTree:/xxxx", - "IODeviceTree:/bandit/xxx", - "IODeviceTree:/bandit@F2000000", - "IODeviceTree:/bandit/gc", - "IODeviceTree:/bandit/gc/mace:17.202.42.95,\\mach_kernel", - "IODeviceTree:/bandit/@10/mesh", - "IODeviceTree:enet:17.202", - "IODeviceTree:scsi/@0:0", - "IODeviceTree:scsi-int", - "IODeviceTree:/bandit/gc@10/mesh", - "IODeviceTree:/bandit/gc/53c94/disk@0:6,mach_kernel", - "IOService:/", - "IOService:/ApplePlatformExpert", - "IOService:/ApplePlatformExpert/hammerhead@F8000000", - "IOService:/ApplePlatformExpert/bandit/AppleMacRiscPCI" - }; - - IORegistryEntry * entry; - char str[256]; - int len; - - for( unsigned int i = 0; i < sizeof(tests)/sizeof(tests[0]); i++) { + if (changed && newValue) error = IOMemoryDescriptorTest(newValue); +#endif /* DEVELOPMENT || DEBUG */ - len = sizeof( str ); - entry = IORegistryEntry::fromPath( tests[i], 0, str, &len ); - IOLog("\"%s\" ", tests[i] ); - if( entry) { - IOLog("found %s, tail = \"%s\"\n", entry->getName(), str ); - len = sizeof( str ); - if( entry->getPath( str, &len, - IORegistryEntry::getPlane("IODeviceTree"))) { - IOLog("path = \"%s\"\n", str); - } - entry->release(); - } else - IOLog("not found\n"); - } -} + return (error); } -void TestsCpp( void * dtTop ) -{ - IORegistryEntry * dt; - - IOLog("\nivars %08x, containers %08x\n", - debug_ivars_size, debug_container_malloc_size); +SYSCTL_PROC(_kern, OID_AUTO, iokittest, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NOAUTO | CTLFLAG_KERN | CTLFLAG_LOCKED, + 0, 0, sysctl_iokittest, "I", ""); - OSMetaClass::printInstanceCounts(); - dt = IODeviceTreeAlloc( dtTop ); - assert( dt ); - -// OSMetaClass::printInstanceCounts(); - DumpTree(); -// OSMetaClass::printInstanceCounts(); - dt->detachAll( gIODTPlane); - OSMetaClass::printInstanceCounts(); - IOLog("ivars %08x, containers %08x\n", - debug_ivars_size, debug_container_malloc_size); -}