VirtualBox

Changeset 9567 in vbox for trunk/src/VBox/Runtime/r0drv


Ignore:
Timestamp:
Jun 10, 2008 12:33:05 PM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
31861
Message:

Made the code compile and fixed the g_rtMpNtCpuSet update order.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/r0drv/nt/mpnotification-r0drv-nt.cpp

    r9563 r9567  
    4242
    4343
    44 #if /*NTDDI_VERSION >= NTDDI_WS08*/ 0
    45 /* The following is 100% untested code which probably doesn't even compile. */
     44#if 0 /* The following is 100% untested code . */
     45
     46#ifndef KE_PROCESSOR_CHANGE_ADD_EXISTING
     47/* Some bits that are missing from our DDK headers. */
     48
     49typedef enum
     50{
     51    KeProcessorAddStartNotify = 0,
     52    KeProcessorAddCompleteNotify,
     53    KeProcessorAddFailureNotify
     54} KE_PROCESSOR_CHANGE_NOTIFY_STATE;
     55
     56typedef struct _KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT
     57{
     58    KE_PROCESSOR_CHANGE_NOTIFY_STATE State;
     59    ULONG NtNumber;
     60    NTSTATUS Status;
     61} KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT;
     62typedef KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT *PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT;
     63
     64typedef VOID (__stdcall *PPROCESSOR_CALLBACK_FUNCTION)(PVOID, PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT, PNTSTATUS);
     65
     66# define KE_PROCESSOR_CHANGE_ADD_EXISTING 1
     67#endif /* !KE_PROCESSOR_CHANGE_ADD_EXISTING */
     68
     69
    4670
    4771/*******************************************************************************
     
    4973*******************************************************************************/
    5074/** Typedef of KeRegisterProcessorChangeCallback. */
    51 typedef PROCESSOR_CALLBACK_HANDLE (__stdcall *PFNMYKEREGISTERPROCESSORCHANGECALLBACK)(IN PPROCESSOR_CALLBACK_FUNCTION, IN PVOID, IN ULONG);
     75typedef PVOID (__stdcall *PFNMYKEREGISTERPROCESSORCHANGECALLBACK)(PPROCESSOR_CALLBACK_FUNCTION, PVOID, ULONG);
    5276/** Typedef of KeDeregisterProcessorChangeCallback. */
    53 typedef VOID (__stdcall *PFNMYKEDEREGISTERPROCESSORCHANGECALLBACK)(IN PROCESSOR_CALLBACK_HANDLE);
     77typedef VOID (__stdcall *PFNMYKEDEREGISTERPROCESSORCHANGECALLBACK)(PVOID);
    5478
    5579
     
    6286static PFNMYKEDEREGISTERPROCESSORCHANGECALLBACK g_pfnKeDeregisterProcessorChangeCallback = NULL;
    6387/** The callback handle. */
    64 static PROCESSOR_CALLBACK_HANDLE g_hCallback = NULL;
     88static PVOID g_hCallback = NULL;
    6589
    6690
     
    7296 * @param   pvCpu           The cpu id cast into a pointer value.
    7397 */
    74 static VOID __stdcall rtMpNotificationNtCallback(IN PVOID pvUser,
    75                                                  IN PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT pChangeContext,
    76                                                  IN OUT PNTSTATUS pOperationStatus)
     98static VOID __stdcall rtMpNotificationNtCallback(PVOID pvUser,
     99                                                 PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT pChangeContext,
     100                                                 PNTSTATUS pOperationStatus)
    77101{
    78102    NOREF(pvUser);
     
    88112
    89113        case KeProcessorAddCompleteNotify:
     114            /* Update the active CPU set before doing callback round. */
     115            RTCpuSetAdd(&g_rtMpNtCpuSet, idCpu);
    90116            rtMpNotificationDoCallbacks(RTMPEVENT_ONLINE, idCpu);
    91             RTCpuSetAdd(&g_rtMpNtCpuSet, idCpu);
    92117            break;
    93118
    94119        //case KeProcessorDelCompleteNotify:
    95         //    rtMpNotificationDoCallbacks(RTMPEVENT_ONLINE, idCpu);
     120        //    rtMpNotificationDoCallbacks(RTMPEVENT_OFFLINE, idCpu);
    96121        //    break;
    97122
     
    102127
    103128    *pOperationStatus = STATUS_SUCCESS;
    104     return 0;
    105129}
    106130
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette