#include <Core/HAL/OS/OS.h>
#include <Core/HAL/OS/OS_Private.h>

namespace Juliet
{
    namespace Memory
    {
        Byte* OS_Reserve(size_t size)
        {
            return Internal::OS_Reserve(size);
        }

        bool OS_Commit(Byte* ptr, size_t size)
        {
            return Internal::OS_Commit(ptr, size);
        }

        void OS_Release(Byte* ptr, size_t size)
        {
            Internal::OS_Release(ptr, size);
        }
    } // namespace Memory

    namespace Debug
    {
        bool IsDebuggerPresent()
        {
            return Internal::IsDebuggerPresent();
        }
    } // namespace Debug

    int Bootstrap(EntryPointFunc entryPointFunc, int argc, wchar_t** argv)
    {
        return Internal::OS_Main(entryPointFunc, argc, argv);
    }

} // namespace Juliet
