|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * DRI: Josh de Cesare ! 5: * ! 6: */ ! 7: ! 8: #include "AppleCPU.h" ! 9: ! 10: /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ ! 11: ! 12: #undef super ! 13: #define super IOCPU ! 14: ! 15: OSDefineMetaClassAndStructors(AppleCPU, IOCPU); ! 16: ! 17: /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ ! 18: ! 19: bool AppleCPU::start(IOService *provider) ! 20: { ! 21: kern_return_t result; ! 22: ! 23: if (!super::start(provider)) return false; ! 24: ! 25: cpuIC = new IOCPUInterruptController; ! 26: if (cpuIC == 0) return false; ! 27: ! 28: if (cpuIC->initCPUInterruptController(1) != kIOReturnSuccess) return false; ! 29: cpuIC->attach(this); ! 30: ! 31: cpuIC->registerCPUInterruptController(); ! 32: ! 33: // Register this CPU with mach. ! 34: result = ml_processor_register((cpu_id_t)this, 0, ! 35: &machProcessor, &ipi_handler, true); ! 36: if (result == KERN_FAILURE) return false; ! 37: ! 38: cpuState = kIOCPUStateUninitalized; ! 39: ! 40: processor_start(machProcessor); ! 41: ! 42: return true; ! 43: } ! 44: ! 45: void AppleCPU::initCPU(void) ! 46: { ! 47: cpuIC->enableCPUInterrupt(this); ! 48: ! 49: cpuState = kIOCPUStateRunning; ! 50: } ! 51: ! 52: OSSymbol *AppleCPU::getCPUName(void) ! 53: { ! 54: return OSSymbol::withCStringNoCopy("Primary0"); ! 55: } ! 56: ! 57: /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.