]> git.saurik.com Git - apple/xnu.git/blobdiff - iokit/IOKit/IOPMGR.h
xnu-7195.101.1.tar.gz
[apple/xnu.git] / iokit / IOKit / IOPMGR.h
index 66c3a0341fa5130e499414bab3fc8b77b1269d33..2a5457662609225e28c5650a67ddc701db92afb1 100644 (file)
@@ -32,6 +32,7 @@ extern "C" {
 #include <machine/machine_routines.h>
 };
 
+#include <stdint.h>
 #include <IOKit/IOService.h>
 
 /*!
@@ -43,15 +44,25 @@ class IOPMGR : public IOService
        OSDeclareAbstractStructors(IOPMGR);
 
 public:
+       /*!
+        * @function        enableCPUCore
+        * @abstract        Enable a single CPU core.
+        * @discussion      Release a secondary CPU core from reset, and enable
+        *                  external IRQ delivery to the core.  XNU will not
+        *                  invoke this method on the boot CPU's cpu_id.
+        * @param cpu_id    Logical CPU ID of the core.
+        * @param entry_pa  Physical address to use as the reset vector on the
+        *                  secondary CPU.  Not all platforms will honor this
+        *                  parameter; on Apple Silicon RVBAR_EL1 is programmed
+        *                  by iBoot.
+        */
+       virtual void enableCPUCore(unsigned int cpu_id, uint64_t entry_pa);
+
        /*!
         * @function      enableCPUCore
-        * @abstract      Enable a single CPU core.
-        * @discussion    Release a secondary CPU core from reset, and enable
-        *                external IRQ delivery to the core.  XNU will not
-        *                invoke this method on the boot CPU's cpu_id.
-        * @param cpu_id  Logical CPU ID of the core.
+        * @abstract      Deprecated - Enable a single CPU core.
         */
-       virtual void enableCPUCore(unsigned int cpu_id) = 0;
+       virtual void enableCPUCore(unsigned int cpu_id);
 
        /*!
         * @function      disableCPUCore