using System.Runtime.InteropServices;
using NvAPIWrapper.Native.Attributes;
using NvAPIWrapper.Native.General.Structures;
using NvAPIWrapper.Native.Interfaces;
namespace NvAPIWrapper.Native.GPU.Structures
{
///
/// Contains information regarding the ECC Memory errors
///
[StructLayout(LayoutKind.Sequential, Pack = 8)]
[StructureVersion(1)]
public struct ECCErrorInfoV1 : IInitializable
{
internal StructureVersion _Version;
internal ECCErrorInfo _CurrentErrors;
internal ECCErrorInfo _AggregatedErrors;
///
/// Gets the number of current errors
///
public ECCErrorInfo CurrentErrors
{
get => _CurrentErrors;
}
///
/// Gets the number of aggregated errors
///
public ECCErrorInfo AggregatedErrors
{
get => _AggregatedErrors;
}
///
/// Contains ECC memory error counters information
///
[StructLayout(LayoutKind.Sequential, Pack = 8)]
public struct ECCErrorInfo
{
internal ulong _SingleBitErrors;
internal ulong _DoubleBitErrors;
///
/// Gets the number of single bit errors
///
public ulong SingleBitErrors
{
get => _SingleBitErrors;
}
///
/// Gets the number of double bit errors
///
public ulong DoubleBitErrors
{
get => _DoubleBitErrors;
}
}
}
}