1// 2// AppleARMCPU.h 3// AppleARMPlatform 4// 5// Created by rms on 5/22/13. 6// Copyright (c) 2013 rms. All rights reserved. 7// 8 9#ifndef __AppleARMPlatform__AppleARMCPU__ 10#define __AppleARMPlatform__AppleARMCPU__ 11 12#include <mach/mach_types.h> 13#include <IOKit/IOPlatformExpert.h> 14#include "IOCPU.h" 15 16#define PE_LOG \ 17 IOLog("[%s]: ", __PRETTY_FUNCTION__), IOLog 18 19class AppleARMCPU:public IOCPU { 20 OSDeclareDefaultStructors(AppleARMCPU); 21 private: 22 IOCPUInterruptController * gIC; 23 public: 24 bool start(IOService * provider); 25 void initCPU(bool boot); 26 void quiesceCPU(void); 27 kern_return_t startCPU(vm_offset_t start_paddr, vm_offset_t parg_addr); 28 void haltCPU(void); 29 const OSSymbol *getCPUName(void); 30 bool init(OSDictionary * propTable); 31 void ipiHandler(void *refCon, IOService * nub, int source); 32}; 33 34/* 35 * AppleARMGrandCentral 36 */ 37 38class AppleARMGrandCentral:public IOCPUInterruptController { 39 OSDeclareDefaultStructors(AppleARMGrandCentral); 40 public: 41 IOReturn handleInterrupt(void *refCon, IOService * nub, int source); 42}; 43 44#endif /* defined(__AppleARMPlatform__AppleARMCPU__) */ 45