singrdk/base/Applications/Runtime/Full/Singularity/PrivilegedGate.cs

56 lines
1.6 KiB
C#
Raw Permalink Normal View History

2008-11-17 18:29:00 -05:00
////////////////////////////////////////////////////////////////////////////////
//
// Microsoft Research Singularity
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// Note:
//
namespace Microsoft.Singularity
{
using System;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
using System.Threading;
using Microsoft.Singularity.V1.Services;
using Microsoft.Singularity.V1.Threads;
using Microsoft.Singularity.Isal;
//
// Proxy class to access privileged system functions. Most of these will be
// restricted to drivers only. The test whether a SIP can have access to such
// functions is controlled in the kernel side of the call.
//
[CLSCompliant(false)]
[NoCCtor]
[AccessedByRuntime("referenced in Processor.cpp")]
public class PrivilegedGate
{
[NoHeapAllocation]
[AccessedByRuntime("referenced from c++")]
public static bool DisableInterrupts()
{
return Singularity.V1.Services.PlatformService.DisableInterrupts();
}
[NoHeapAllocation]
[AccessedByRuntime("referenced from c++")]
public static void RestoreInterrupts(bool enabled)
{
Singularity.V1.Services.PlatformService.RestoreInterrupts(enabled);
}
// Use this method for assertions only!
[NoHeapAllocation]
[AccessedByRuntime("referenced from c++")]
public static bool InterruptsDisabled()
{
return Singularity.V1.Services.PlatformService.InterruptsDisabled();
}
}
}