📄 pddmain.cpp
字号:
/*
*
* Copyright (C) 2003-2004, MOTOROLA, INC. All Rights Reserved
* THIS SOURCE CODE IS CONFIDENTIAL AND PROPRIETARY AND MAY NOT
* BE USED OR DISTRIBUTED WITHOUT THE WRITTEN PERMISSION OF
* MOTOROLA, INC.
*
* Copyright (C) 2004-2006, Freescale Semiconductor, Inc. All Rights Reserved.
* THIS SOURCE CODE, AND ITS USE AND DISTRIBUTION, IS SUBJECT TO THE TERMS
* AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT
*
*/
#define __PDDMAIN_CPP__
#include "pddmain.h"
extern "C" BOOL WINAPI DllEntry( HANDLE hInstDll,
DWORD dwReason,
LPVOID lpvReserved )
{
DEBUGMSG( 1, (TEXT("PCCARD: +DllEntry\n")));
switch( dwReason )
{
case DLL_PROCESS_ATTACH:
DEBUGREGISTER( ( HINSTANCE ) hInstDll );
DEBUGMSG( 1, ( TEXT( "MX21 : DLL_PROCESS_ATTACH\r\n" ) ) );
DisableThreadLibraryCalls( ( HMODULE ) hInstDll );
break;
case DLL_PROCESS_DETACH:
DEBUGMSG( 1, ( TEXT( "MX21 : DLL_PROCESS_DETACH\r\n" ) ) );
break;
}
DEBUGMSG( 1, (TEXT("PCCARD: -DllEntry\n")));
return ( TRUE );
}
extern "C" DWORD Init( DWORD dwInfo )
{
DEBUGMSG( 1, (TEXT("PCCARD: +Init\n")));
//gpPcmciaBridge = new CPcmciaBusBridge( ( LPCTSTR ) dwInfo );
gpPcmciaBridge = CreatePCCardBusBridge( ( LPCTSTR ) dwInfo );
if( gpPcmciaBridge )
{
if( gpPcmciaBridge->Init() )
{
DEBUGMSG( 1, (TEXT("PCCARD: -Init SUCESS\n")));
return ( DWORD ) gpPcmciaBridge;
}
else
{
delete gpPcmciaBridge;
}
}
DEBUGMSG( ZONE_PDD, (TEXT("PCCARD: -Init FAILED\n")));
return 0;
}
extern "C" void Deinit( DWORD dwSocketNum ) // This argument is return value from PDCardInitServices.
{
DEBUGMSG( 1, (TEXT("PCCARD: +Deinit\n")));
CPcmciaBusBridge* pSocket = ( CPcmciaBusBridge* ) dwSocketNum;
if( pSocket )
{
delete pSocket;
}
DEBUGMSG( 1, (TEXT("PCCARD: -Deinit\n")));
}
CPcmciaSocket* GetSocket( HANDLE hSocket )
{
return ( gpPcmciaBridge !=
0 ?
gpPcmciaBridge->ObjectBySocket( hSocket ) :
NULL );
}
extern "C"
BOOL PowerUp( DWORD dwData )
{
DEBUGMSG( ZONE_PDD, (TEXT("PCCARD: +PowerUp\n")));
CPcmciaBusBridge* pSocket = ( CPcmciaBusBridge* ) dwData;
if( pSocket )
{
pSocket->PowerManager( FALSE );
}
DEBUGMSG( ZONE_PDD, (TEXT("PCCARD: -PowerUp\n")));
return TRUE;
}
extern "C"
BOOL PowerDown( DWORD dwData )
{
DEBUGMSG( ZONE_PDD, (TEXT("PCCARD: +PowerDown\n")));
CPcmciaBusBridge* pSocket = ( CPcmciaBusBridge* ) dwData;
if( pSocket )
{
pSocket->PowerManager( TRUE );
}
DEBUGMSG( ZONE_PDD, (TEXT("PCCARD: -PowerDown\n")));
return TRUE;
}
STATUS PDCardGetSocket( HANDLE hSocket, // @parm Socket number (first socket is 0)
PSS_SOCKET_STATE pState // @parm Pointer to PDCARD_SOCKET_STATE structure
)
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: +PDCardGetSocket, hSocket = 0x%x\n", hSocket));
CPcmciaSocket* pSocket = GetSocket( hSocket );
if( pSocket != NULL )
{
STATUS rStatus = pSocket->CardGetSocket( pState );
pSocket->DeRef();
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDCardGetSocket, hSocket = 0x%x rStatus=0x%X\n", hSocket, rStatus));
return rStatus;
}
else
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDCardGetSocket, hSocket = 0x%x FAILED\n", hSocket));
return CERR_BAD_SOCKET;
}
}
STATUS PDCardSetSocket( HANDLE hSocket, // @parm Socket number (first socket is 0)
PSS_SOCKET_STATE pState // @parm Pointer to PDCARD_SOCKET_STATE structure
)
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: +PDCardSetSocket, hSocket = 0x%x\n", hSocket));
CPcmciaSocket* pSocket = GetSocket( hSocket );
if( pSocket != NULL )
{
STATUS rStatus = pSocket->CardSetSocket( pState );
pSocket->DeRef();
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDCardSetSocket, hSocket = 0x%x rStatus=0x%X\n", hSocket, rStatus));
return rStatus;
}
else
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDCardSetSocket, hSocket = 0x%x FAILED\n", hSocket));
return CERR_BAD_SOCKET;
}
}
STATUS PDCardResetSocket( HANDLE hSocket // @parm Socket number (first socket is 0)
)
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: +PDCardResetSocket, hSocket = 0x%x\n", hSocket));
CPcmciaSocket* pSocket = GetSocket( hSocket );
if( pSocket != NULL )
{
STATUS rStatus = pSocket->CardResetSocket();
pSocket->DeRef();
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDCardResetSocket, hSocket = 0x%x rStatus=0x%X\n", hSocket, rStatus));
return rStatus;
}
else
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDCardResetSocket, hSocket = 0x%x FAILED\n", hSocket));
return CERR_BAD_SOCKET;
}
}
//
STATUS PDCardGetWindow( UINT32 uWindow, // @parm Window number (the first window is 0)
PSS_WINDOW_STATE pWindowState // @parm Pointer to a PDCARD_WINDOW_STATE structure.
)
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: +PDCardGetWindow, uWindow = 0x%x\n", uWindow));
if( pWindowState == NULL )
{
return CERR_BAD_WINDOW;
}
HANDLE hSocket = pWindowState->hSocket;
CPcmciaSocket* pSocket = GetSocket( hSocket );
if( pSocket != NULL )
{
STATUS rStatus = pSocket->CardGetWindow( uWindow, pWindowState );
pSocket->DeRef();
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDCardGetWindow, uWindow = 0x%x rStatus=0x%X\n", uWindow, rStatus));
return rStatus;
}
else
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDCardGetWindow, uWindow = 0x%x FAILED\n", uWindow));
return CERR_BAD_WINDOW;
}
}
STATUS PDCardSetWindow( UINT32 uWindow, // @parm Window number (the first window is 0)
PSS_WINDOW_STATE pWindowState // @parm Pointer to a PDCARD_WINDOW_STATE structure.
)
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: +PDCardSetWindow, uWindow = 0x%x\n", uWindow));
if( pWindowState == NULL )
{
return CERR_BAD_WINDOW;
}
HANDLE hSocket = pWindowState->hSocket;
CPcmciaSocket* pSocket = GetSocket( hSocket );
if( pSocket != NULL )
{
STATUS rStatus = pSocket->CardSetWindow( uWindow, pWindowState );
pSocket->DeRef();
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDCardSetWindow, uWindow = 0x%x rStatus=0x%X\n", uWindow, rStatus));
return rStatus;
}
else
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDCardSetWindow, uWindow = 0x%x FAILED\n", uWindow));
return CERR_BAD_WINDOW;
}
}
STATUS PDCardInquireWindow( UINT32 uWindow, // @parm Window number (the first window is 0)
PSS_WINDOW_INFO pWinInfo // @parm Pointer to a PDCARD_WINDOW_INFO structure.
)
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: +PDCardInquireWindow, uWindow = 0x%x\n", uWindow));
if( pWinInfo == NULL )
{
return CERR_BAD_WINDOW;
}
HANDLE hSocket = pWinInfo->hSocket;
CPcmciaSocket* pSocket = GetSocket( hSocket );
if( pSocket != NULL )
{
STATUS rStatus = pSocket->CardInquireWindow( uWindow, pWinInfo );
pSocket->DeRef();
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDCardInquireWindow, uWindow = 0x%x rStatus=0x%X\n", uWindow, rStatus));
return rStatus;
}
else
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDCardInquireWindow, uWindow = 0x%x FAILED\n", uWindow));
return CERR_BAD_WINDOW;
}
};
STATUS PDCardInquireSocket( HANDLE hSocket, PSS_SOCKET_INFO pSocketInfo )
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: +PDCardInquireSocket, hSocket = 0x%x\n", hSocket));
CPcmciaSocket* pSocket = GetSocket( hSocket );
if( pSocket != NULL )
{
STATUS rStatus = pSocket->CardInquireSocket( pSocketInfo );
pSocket->DeRef();
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDCardInquireSocket, hSocket = 0x%x rStatus=0x%X\n", hSocket, rStatus));
return rStatus;
}
else
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDCardInquireSocket, hSocket = 0x%x FAILED\n", hSocket));
return CERR_BAD_SOCKET;
}
}
STATUS PDCardAccessMemory( HANDLE hSocket, PSS_MEMORY_ACCESS pMemoryAccess )
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: +PDCardAccessMemory, hSocket = 0x%x\n", hSocket));
CPcmciaSocket* pSocket = GetSocket( hSocket );
if( pSocket != NULL )
{
STATUS rStatus = pSocket->CardAccessMemory( pMemoryAccess );
pSocket->DeRef();
return rStatus;
}
else
{
return CERR_BAD_SOCKET;
}
}
STATUS PDGetPowerEntry( HANDLE hSocket,
PDWORD pdwNumOfEnery,
PSS_POWER_ENTRY pPowerEntry )
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: +PDGetPowerEntry, hSocket = 0x%x\n", hSocket));
CPcmciaSocket* pSocket = GetSocket( hSocket );
if( pSocket != NULL )
{
STATUS rStatus = pSocket->GetPowerEntry( pdwNumOfEnery, pPowerEntry );
pSocket->DeRef();
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDGetPowerEntry, hSocket = 0x%x rStatus=0x%X\n", hSocket, rStatus));
return rStatus;
}
else
{
DEBUGMSG( ZONE_PDD, (L"PCCARD: -PDGetPowerEntry, hSocket = 0x%x FAILED\n", hSocket));
return CERR_BAD_SOCKET;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -