Index: trunk/src/VBox/Main/include/ConsoleImpl.h
===================================================================
--- trunk/src/VBox/Main/include/ConsoleImpl.h	(revision 25894)
+++ trunk/src/VBox/Main/include/ConsoleImpl.h	(revision 25901)
@@ -179,4 +179,5 @@
     HRESULT onStorageControllerChange ();
     HRESULT onMediumChange(IMediumAttachment *aMediumAttachment, BOOL aForce);
+    HRESULT onCPUChange(ULONG aCPU, BOOL aRemove);
     HRESULT onVRDPServerChange();
     HRESULT onUSBControllerChange();
@@ -448,5 +449,9 @@
                                           const char *pszFormat, bool fPassthrough,
                                           bool fForce);
+    static DECLCALLBACK(int) unplugCpu (Console *pThis, unsigned uCpu);
+    static DECLCALLBACK(int) plugCpu (Console *pThis, unsigned uCpu);
     HRESULT doMediumChange(IMediumAttachment *aMediumAttachment, bool fForce);
+    HRESULT doCPURemove(ULONG aCpu);
+    HRESULT doCPUAdd(ULONG aCpu);
 
 #ifdef VBOX_DYNAMIC_NET_ATTACH
Index: trunk/src/VBox/Main/include/DisplayImpl.h
===================================================================
--- trunk/src/VBox/Main/include/DisplayImpl.h	(revision 25894)
+++ trunk/src/VBox/Main/include/DisplayImpl.h	(revision 25901)
@@ -194,4 +194,9 @@
     }
 
+    STDMETHOD(OnCPUChange)(ULONG aCPU, BOOL aRemove)
+    {
+        return S_OK;
+    }
+
     STDMETHOD(OnVRDPServerChange)()
     {
Index: trunk/src/VBox/Main/include/MachineImpl.h
===================================================================
--- trunk/src/VBox/Main/include/MachineImpl.h	(revision 25894)
+++ trunk/src/VBox/Main/include/MachineImpl.h	(revision 25901)
@@ -296,5 +296,8 @@
         BOOL           mSyntheticCpu;
         ULONG          mCPUCount;
+        BOOL           mCPUHotPlugEnabled;
         BOOL           mAccelerate3DEnabled;
+
+        BOOL           mCPUAttached[SchemaDefs::MaxCPUCount];
 
         settings::CpuIdLeaf mCpuIdStdLeafs[10];
@@ -531,4 +534,6 @@
     STDMETHOD(COMGETTER(CPUCount))(ULONG *cpuCount);
     STDMETHOD(COMSETTER(CPUCount))(ULONG cpuCount);
+    STDMETHOD(COMGETTER(CPUHotPlugEnabled))(BOOL *enabled);
+    STDMETHOD(COMSETTER(CPUHotPlugEnabled))(BOOL enabled);
     STDMETHOD(COMGETTER(MemoryBalloonSize))(ULONG *memoryBalloonSize);
     STDMETHOD(COMSETTER(MemoryBalloonSize))(ULONG memoryBalloonSize);
@@ -634,4 +639,7 @@
     STDMETHOD(QuerySavedScreenshotPNGSize)(ULONG *aSize, ULONG *aWidth, ULONG *aHeight);
     STDMETHOD(ReadSavedScreenshotPNGToArray)(ULONG *aWidth, ULONG *aHeight, ComSafeArrayOut(BYTE, aData));
+    STDMETHOD(HotPlugCPU(ULONG aCpu));
+    STDMETHOD(HotUnplugCPU(ULONG aCpu));
+    STDMETHOD(GetCPUStatus(ULONG aCpu, BOOL *aCpuAttached));
 
     // public methods only for internal purposes
@@ -717,4 +725,5 @@
     virtual HRESULT onUSBControllerChange() { return S_OK; }
     virtual HRESULT onStorageControllerChange() { return S_OK; }
+    virtual HRESULT onCPUChange(ULONG /* aCPU */, BOOL /* aRemove */) { return S_OK; }
     virtual HRESULT onMediumChange(IMediumAttachment * /* mediumAttachment */, BOOL /* force */) { return S_OK; }
     virtual HRESULT onSharedFolderChange() { return S_OK; }
@@ -1036,4 +1045,5 @@
     HRESULT onSerialPortChange(ISerialPort *serialPort);
     HRESULT onParallelPortChange(IParallelPort *parallelPort);
+    HRESULT onCPUChange(ULONG aCPU, BOOL aRemove);
     HRESULT onVRDPServerChange();
     HRESULT onUSBControllerChange();
Index: trunk/src/VBox/Main/include/SessionImpl.h
===================================================================
--- trunk/src/VBox/Main/include/SessionImpl.h	(revision 25894)
+++ trunk/src/VBox/Main/include/SessionImpl.h	(revision 25901)
@@ -96,4 +96,5 @@
     STDMETHOD(OnStorageControllerChange)();
     STDMETHOD(OnMediumChange)(IMediumAttachment *aMediumAttachment, BOOL aForce);
+    STDMETHOD(OnCPUChange)(ULONG aCPU, BOOL aRemove);
     STDMETHOD(OnVRDPServerChange)();
     STDMETHOD(OnUSBControllerChange)();
Index: trunk/src/VBox/Main/include/VirtualBoxCallbackImpl.h
===================================================================
--- trunk/src/VBox/Main/include/VirtualBoxCallbackImpl.h	(revision 25894)
+++ trunk/src/VBox/Main/include/VirtualBoxCallbackImpl.h	(revision 25901)
@@ -94,4 +94,5 @@
     STDMETHOD(OnStorageControllerChange) ();
     STDMETHOD(OnMediumChange)(IMediumAttachment *iMediumAttachment);
+    STDMETHOD(OnCPUChange)(ULONG aCPU, BOOL aRemove);
     STDMETHOD(OnRuntimeError)(BOOL fFatal, IN_BSTR id, IN_BSTR message);
     STDMETHOD(OnCanShowWindow)(BOOL *canShow);
