⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcmiface.h

📁 RTL8139 网卡驱动源码 for WinCE.net CEPC
💻 H
字号:
//****************************************************************************
//                             File PCMIFACE.H
//
//                   PCMCIA interfaces support classes
//
//                    Copyright (c) APSoft, 1998-2002.
//                          All rights reserved.
//
//****************************************************************************

#ifndef _PCMIFACE_H_
#define _PCMIFACE_H_

#include <ntddpcm.h>                        // NT PCMCIA support


///////////////////////////////////////////////////////////////////////////////
//                        --- Class CPcmciaIface ---                         //
///////////////////////////////////////////////////////////////////////////////
class CPcmciaIface : public PCMCIA_INTERFACE_STANDARD
                                            // Standard PCMCIA interface
{
public:

//---------------------- Construction / Destruction --------------------------

                            CPcmciaIface        (void);
                           ~CPcmciaIface        (void);


//****************************************************************************
//                         *** Implementation ***
//****************************************************************************

            void            Reference           (void);
            void            DeReference         (void);

            BOOLEAN         MapMemoryWindow     (ULONGLONG      uHostBase,
                                                 ULONGLONG      uCardBase,
                                                 ULONG          uSize,
                                                 UCHAR          bSpeed,
                                                 UCHAR          bWidth);
            BOOLEAN         SetPowerVpp         (UCHAR          bVpp);
            BOOLEAN         IsWriteProtect      (void);
};

//------------------------- Inline implementation ----------------------------

inline CPcmciaIface::CPcmciaIface(void)
{
    RtlZeroMemory(this, sizeof(CPcmciaIface));
}
inline CPcmciaIface::~CPcmciaIface(void)
{
}
inline void CPcmciaIface::Reference(void)
{
    if (InterfaceReference != NULL)
        InterfaceReference(Context);
}
inline void CPcmciaIface::DeReference(void)
{
    if (InterfaceDereference != NULL)
        InterfaceDereference(Context);
}
inline BOOLEAN CPcmciaIface::MapMemoryWindow(ULONGLONG uHostBase,
                                             ULONGLONG uCardBase,
                                             ULONG     uSize,
                                             UCHAR     bSpeed,
                                             UCHAR     bWidth)
{
    BOOLEAN fRet = FALSE;

    if (ModifyMemoryWindow != NULL)
        fRet = ModifyMemoryWindow(Context,
                                  uHostBase,
                                  uCardBase,
                                  TRUE,
                                  uSize,
                                  bSpeed,
                                  bWidth,
                                  FALSE);

    return fRet;
}
inline BOOLEAN CPcmciaIface::SetPowerVpp(UCHAR bVpp)
{
    BOOLEAN fRet = FALSE;

    if (SetVpp != NULL)
        fRet = SetVpp(Context, bVpp);

    return fRet;
}
inline BOOLEAN CPcmciaIface::IsWriteProtect(void)
{
    BOOLEAN fRet = TRUE;

    if (IsWriteProtected != NULL)
        fRet = IsWriteProtected(Context);

    return fRet;
}


///////////////////////////////////////////////////////////////////////////////
//                      --- Class CPcmciaBusIface ---                        //
///////////////////////////////////////////////////////////////////////////////
class CPcmciaBusIface : public PCMCIA_BUS_INTERFACE_STANDARD
                                            // Standard PCMCIA bus interface
{
public:

//---------------------- Construction / Destruction --------------------------

                            CPcmciaBusIface     (void);
                           ~CPcmciaBusIface     (void);


//****************************************************************************
//                         *** Implementation ***
//****************************************************************************

            void            Reference           (void);
            void            DeReference         (void);

            BOOLEAN         ReadCfgSpace        (PUCHAR         pBuffer,
                                                 ULONG          uOffset,
                                                 ULONG          uLength);
            BOOLEAN         WriteCfgSpace       (PUCHAR         pBuffer,
                                                 ULONG          uOffset,
                                                 ULONG          uLength);
};

//------------------------- Inline implementation ----------------------------

inline CPcmciaBusIface::CPcmciaBusIface(void)
{
    RtlZeroMemory(this, sizeof(CPcmciaBusIface));
}
inline CPcmciaBusIface::~CPcmciaBusIface(void)
{
}
inline void CPcmciaBusIface::Reference(void)
{
    if (InterfaceReference != NULL)
        InterfaceReference(Context);
}
inline void CPcmciaBusIface::DeReference(void)
{
    if (InterfaceDereference != NULL)
        InterfaceDereference(Context);
}
inline BOOLEAN CPcmciaBusIface::ReadCfgSpace(PUCHAR pBuffer, ULONG uOffset, ULONG uLength)
{
    ULONG uLen = 0;

    if (ReadConfig != NULL)
        uLen = ReadConfig(Context, PCCARD_ATTRIBUTE_MEMORY, pBuffer, uOffset / 2, uLength);

    return (uLen != 0) ? TRUE : FALSE;
}
inline BOOLEAN CPcmciaBusIface::WriteCfgSpace(PUCHAR pBuffer, ULONG uOffset, ULONG uLength)
{
    ULONG uLen = 0;

    if (WriteConfig != NULL)
        uLen = WriteConfig(Context, PCCARD_ATTRIBUTE_MEMORY, pBuffer, uOffset / 2, uLength);

    return (uLen != 0) ? TRUE : FALSE;
}

#endif                                      // #ifndef _PCMIFACE_H_

⌨️ 快捷键说明

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