oemwdm.c
来自「WinCE 3.0 BSP, 包含Inter SA1110, Intel_815」· C语言 代码 · 共 130 行
C
130 行
/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright (c) 1995, 1996, 1997 Microsoft Corporation
Module Name:
oemwdm.c
Abstract:
This file implements the platform specific WDM routines which must be
implemented in the kernel.
Notes:
--*/
#define WINCEMACRO 1
#include <windows.h>
#include <nkintr.h>
#undef DeviceIoControl
#include <oalio.h>
#include <wdmhal.h>
#include <altoona.h>
#include <hal.h>
VOID
InitBusInfo()
{
ISAInitBusInfo();
PCIInitBusInfo();
}
ULONG
OEMGetBusDataByOffset(
IN BUS_DATA_TYPE BusDataType,
IN ULONG BusNumber,
IN ULONG SlotNumber,
IN PVOID Buffer,
IN ULONG Offset,
IN ULONG Length
)
{
// RETAILMSG (1, (TEXT("in OEMGetBusDataByOffset\r\n")));
switch (BusDataType)
{
case PNPISAConfiguration:
// RETAILMSG (1, (TEXT("Exit OEMGetDataByOffset 0\r\n")));
return ISAGetBusDataByOffset(
BusNumber, SlotNumber, Buffer, Offset, Length);
case PCIConfiguration:
// RETAILMSG (1, (TEXT("Exit OEMGetDataByOffset 1\r\n")));
return PCIGetBusDataByOffset(
BusNumber, SlotNumber, Buffer, Offset, Length);
default:
// RETAILMSG (1, (TEXT("Exit OEMGetDataByOffset 2\r\n")));
return 0;
}
}
ULONG
OEMSetBusDataByOffset(
IN BUS_DATA_TYPE BusDataType,
IN ULONG BusNumber,
IN ULONG SlotNumber,
IN PVOID Buffer,
IN ULONG Offset,
IN ULONG Length
)
{
// RETAILMSG (1, (TEXT("in OEMSetDataByOffset\r\n")));
switch (BusDataType)
{
case PNPISAConfiguration:
// RETAILMSG (1, (TEXT("Exit OEMSetDataByOffset 0\r\n")));
return ISASetBusDataByOffset(
BusNumber, SlotNumber, Buffer, Offset, Length);
case PCIConfiguration:
// RETAILMSG (1, (TEXT("Exit OEMSetDataByOffset 1\r\n")));
return PCISetBusDataByOffset(
BusNumber, SlotNumber, Buffer, Offset, Length);
default:
// RETAILMSG (1, (TEXT("Exit OEMSetDataByOffset 2\r\n")));
return 0;
}
}
/*****************************************************************************
*
*
* @func void | OEMMapInterrupt | Map interrupt and get system interrupt ID.
*
* Note: This is not a standard kernel HAL call.
*/
BOOL OEMMapInterrupt(
DWORD InterruptNumber, DWORD InterruptVector, DWORD *InterruptId)
{
if (InterruptNumber > ALNINTR_MAX)
{
*InterruptId = 0;
return(FALSE);
}
*InterruptId = IMAP_Aln2Sys[InterruptNumber];
if (*InterruptId == SYSINTR_NOP)
return(FALSE);
return(TRUE);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?