diff options
| author | Dave Wilson <[email protected]> | 2015-03-17 19:50:07 -0700 |
|---|---|---|
| committer | Dave Wilson <[email protected]> | 2015-03-17 19:50:07 -0700 |
| commit | 97cf5197cf5b882b2c689d8dc2b555f2edf8f418 (patch) | |
| tree | 46f3701832d70b420eb0fc0eb93261f9da45db3f /spb/SkeletonI2C/hw.cpp | |
| parent | ef1905bf1e8825bb31120dfb27e0daf3154d859a (diff) | |
Initial publish
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; +} |
