30 lines
888 B
C++
30 lines
888 B
C++
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#include "hal.h"
|
||
|
|
||
|
#if SINGULARITY_KERNEL
|
||
|
|
||
|
Struct_Microsoft_Singularity_MpBootInfo*
|
||
|
Struct_Microsoft_Singularity_MpBootInfo::g_HalGetMpBootInfo()
|
||
|
{
|
||
|
Struct_Microsoft_Singularity_BootInfo* bi = Struct_Microsoft_Singularity_BootInfo::g_HalGetBootInfo();
|
||
|
uint32 addr = (uint32) bi->MpBootInfo32;
|
||
|
return (Struct_Microsoft_Singularity_MpBootInfo*)((uint8*) addr);
|
||
|
}
|
||
|
|
||
|
void
|
||
|
Struct_Microsoft_Singularity_MpBootInfo::g_HalReleaseMpStartupLock()
|
||
|
{
|
||
|
Struct_Microsoft_Singularity_BootInfo* bi = Struct_Microsoft_Singularity_BootInfo::g_HalGetBootInfo();
|
||
|
uint32 lockAddr = (uint32) bi->MpStartupLock32;
|
||
|
if (lockAddr != 0)
|
||
|
{
|
||
|
*((uint16*) lockAddr) = 0;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif // SINGULARITY_KERNEL
|