genport.cpp
来自「DS编写基于ISA插槽的,数据采集卡驱动程序,包含基本的中断,I/O读写」· C++ 代码 · 共 68 行
CPP
68 行
// genport.cpp - Generic Port
//=============================================================================
//
// Compuware Corporation
// NuMega Lab
// 9 Townsend West
// Nashua, NH 03060 USA
//
// Copyright (c) 1998 Compuware Corporation. All Rights Reserved.
// Unpublished - rights reserved under the Copyright laws of the
// United States.
//
//=============================================================================
#include <vdw.h>
#include "mmioctl.h"
#include "genport.h"
GenericPort::GenericPort(ULONG address, ULONG size, ULONG count) :
KIoRange(BUSTYPE, BUSNUMBER, address, count, TRUE),
m_size(size)
{
}
ULONG GenericPort::Read(ULONG index)
{
switch (m_size)
{
case sizeof(UCHAR):
return inb(index);
// alternative: return (UCHAR)(*this)[index];
break;
case sizeof(USHORT):
return inw(index);
// alternative: return (USHORT)(*this)[index];
break;
case sizeof(ULONG):
return ind(index);
// alternative: return (ULONG)(*this)[index];
break;
default:
return 0xFFFFFFFF;
}
}
VOID GenericPort::Write(ULONG index, ULONG data)
{
KIoRegister Port = (*this)[index];
switch (m_size)
{
case sizeof(UCHAR):
Port = (UCHAR)data; // alternative: outb(index, data);
break;
case sizeof(USHORT):
Port = (USHORT)data; // alternative: outw(index, data);
break;
case sizeof(ULONG):
Port = (ULONG)data; // alternative: outd(index, data);
break;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?