diff options
| author | Wei Mao <[email protected]> | 2017-03-17 19:47:04 -0700 |
|---|---|---|
| committer | Wei Mao <[email protected]> | 2017-03-17 19:47:04 -0700 |
| commit | 1a3e0d580380e58bf336a242d2affc8a1e2d1ddf (patch) | |
| tree | bf5d9c5b0b4cba1b81726b9f78c4d5ff5c636fea /SPB/SkeletonI2C/hw.cpp | |
| parent | da21c8784c83c5fd614f3030323e229d6a5fb10e (diff) | |
Fix cases
Diffstat (limited to 'SPB/SkeletonI2C/hw.cpp')
| -rw-r--r-- | SPB/SkeletonI2C/hw.cpp | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/SPB/SkeletonI2C/hw.cpp b/SPB/SkeletonI2C/hw.cpp new file mode 100644 index 00000000..497cfe5a --- /dev/null +++ b/SPB/SkeletonI2C/hw.cpp @@ -0,0 +1,83 @@ +/*++ + +Copyright (c) Microsoft Corporation. All rights reserved. + +Module Name: + + hw.cpp + +Abstract: + + This module contains the functions for accessing + the hardware registers. + +Environment: + + kernel-mode only + +Revision History: + +--*/ + +#include "internal.h" +#include "hw.tmh" + +ULONG +HWREG<ULONG>::Read( + VOID + ) +{ + volatile ULONG *addr = &m_Value; + ULONG v = READ_REGISTER_ULONG((PULONG)addr); + return v; +} + +ULONG +HWREG<ULONG>::Write( + _In_ ULONG Value + ) +{ + volatile ULONG *addr = &m_Value; + WRITE_REGISTER_ULONG((PULONG)addr, Value); + return Value; +} + +USHORT +HWREG<USHORT>::Read( + VOID + ) +{ + volatile USHORT *addr = &m_Value; + USHORT v = READ_REGISTER_USHORT((PUSHORT)addr); + return v; +} + +USHORT +HWREG<USHORT>::Write( + _In_ USHORT Value + ) +{ + volatile USHORT *addr = &m_Value; + WRITE_REGISTER_USHORT((PUSHORT)addr, Value); + return Value; +} + +UCHAR +HWREG<UCHAR>::Read( + VOID + ) +{ + volatile UCHAR *addr = &m_Value; + UCHAR v = READ_REGISTER_UCHAR((PUCHAR)addr); + return v; +} + +UCHAR +HWREG<UCHAR>::Write( + _In_ UCHAR Value + ) +{ + volatile UCHAR *addr = &m_Value; + WRITE_REGISTER_UCHAR((PUCHAR)addr, Value); + return Value; +} |
