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 + -
显示快捷键?