From 1a3e0d580380e58bf336a242d2affc8a1e2d1ddf Mon Sep 17 00:00:00 2001 From: Wei Mao Date: Fri, 17 Mar 2017 19:47:04 -0700 Subject: Fix cases --- SPB/SkeletonI2C/hw.cpp | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 SPB/SkeletonI2C/hw.cpp (limited to 'SPB/SkeletonI2C/hw.cpp') 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::Read( + VOID + ) +{ + volatile ULONG *addr = &m_Value; + ULONG v = READ_REGISTER_ULONG((PULONG)addr); + return v; +} + +ULONG +HWREG::Write( + _In_ ULONG Value + ) +{ + volatile ULONG *addr = &m_Value; + WRITE_REGISTER_ULONG((PULONG)addr, Value); + return Value; +} + +USHORT +HWREG::Read( + VOID + ) +{ + volatile USHORT *addr = &m_Value; + USHORT v = READ_REGISTER_USHORT((PUSHORT)addr); + return v; +} + +USHORT +HWREG::Write( + _In_ USHORT Value + ) +{ + volatile USHORT *addr = &m_Value; + WRITE_REGISTER_USHORT((PUSHORT)addr, Value); + return Value; +} + +UCHAR +HWREG::Read( + VOID + ) +{ + volatile UCHAR *addr = &m_Value; + UCHAR v = READ_REGISTER_UCHAR((PUCHAR)addr); + return v; +} + +UCHAR +HWREG::Write( + _In_ UCHAR Value + ) +{ + volatile UCHAR *addr = &m_Value; + WRITE_REGISTER_UCHAR((PUCHAR)addr, Value); + return Value; +} -- cgit v1.3.1