oalio.h

来自「WinCE 3.0 BSP, 包含Inter SA1110, Intel_815」· C头文件 代码 · 共 79 行

H
79
字号
/*++ 

Copyright (c) 1990-2000 Microsoft Corporation.  All rights reserved.

Module Name:

    oalio.h

Abstract:

    This module defines the OAL I/O access functions.

Revision History:

--*/

#ifndef _OALIO_
#define _OALIO_

#ifdef __cplusplus
extern "C" {
#endif

#include <ceddk.h>

ULONG __inline READ_PORT_ULONG(PULONG port)
{
    return *(volatile unsigned long * const)port;
}

VOID __inline WRITE_PORT_ULONG(PULONG port, ULONG value)
{
    *(volatile unsigned long * const)port = value;
}

USHORT __inline READ_PORT_USHORT(PUSHORT port)
{
    return *(volatile unsigned short * const)port;
}

VOID __inline WRITE_PORT_USHORT(PUSHORT port, USHORT value)
{
    *(volatile unsigned short * const)port = value;
}

UCHAR __inline READ_PORT_UCHAR(PUCHAR port)
{
    return *(volatile unsigned char * const)port;
}

VOID __inline WRITE_PORT_UCHAR(PUCHAR port, UCHAR value)
{
    *(volatile unsigned char * const)port = value;
}

#define READ_REGISTER_ULONG(reg) \
    (*(volatile unsigned long * const)(reg))

#define WRITE_REGISTER_ULONG(reg, val) \
    (*(volatile unsigned long * const)(reg)) = (val)

#define READ_REGISTER_USHORT(reg) \
    (*(volatile unsigned short * const)(reg))

#define WRITE_REGISTER_USHORT(reg, val) \
    (*(volatile unsigned short * const)(reg)) = (val)

#define READ_REGISTER_UCHAR(reg) \
    (*(volatile unsigned char * const)(reg))

#define WRITE_REGISTER_UCHAR(reg, val) \
    (*(volatile unsigned char * const)(reg)) = (val)

#ifdef __cplusplus
}
#endif // __cplusplus

#endif // _OALIO_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?