📄 tcled.cpp
字号:
//------------------------------------------------------------------------------
//
// Copyright (C) 2005, Motorola Inc. All Rights Reserved
//
//------------------------------------------------------------------------------
//
// Copyright (C) 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
//
//------------------------------------------------------------------------------
//
// File: tcled.cpp
//
// This file implements the stream interface functions for tcled
//
//------------------------------------------------------------------------------
#include <windows.h>
#include <Devload.h>
#include <ceddk.h>
//------------------------------------------------------------------------------
// External Functions
extern BOOL BSPTcledInit(void);
extern BOOL BSPTcledDeinit(void);
extern BOOL BSPTcledIOControl(
DWORD dwContext,
DWORD Ioctl,
PUCHAR pInBuf,
DWORD InBufLen,
PUCHAR pOutBuf,
DWORD OutBufLen,
PDWORD pdwBytesTransferred);
//------------------------------------------------------------------------------
// External Variables
//------------------------------------------------------------------------------
// Defines
#ifdef DEBUG
// Debug zone bit positions
#define ZONEID_ERROR 0
#define ZONEID_WARN 1
#define ZONEID_INIT 2
#define ZONEID_FUNC 3
#define ZONEID_INFO 4
// Debug zone masks
#define ZONEMASK_ERROR (1 << ZONEID_ERROR)
#define ZONEMASK_WARN (1 << ZONEID_WARN)
#define ZONEMASK_INIT (1 << ZONEID_INIT)
#define ZONEMASK_FUNC (1 << ZONEID_FUNC)
#define ZONEMASK_INFO (1 << ZONEID_INFO)
// Debug zone args to DEBUGMSG
#define ZONE_ERROR DEBUGZONE(ZONEID_ERROR)
#define ZONE_WARN DEBUGZONE(ZONEID_WARN)
#define ZONE_INIT DEBUGZONE(ZONEID_INIT)
#define ZONE_FUNC DEBUGZONE(ZONEID_FUNC)
#define ZONE_INFO DEBUGZONE(ZONEID_INFO)
DBGPARAM dpCurSettings = {
_T("TCLED"),
{
TEXT("Errors"), TEXT("Warnings"), TEXT("Init"), TEXT("Func"),
TEXT("Info"), TEXT(""), TEXT(""), TEXT(""),
TEXT(""),TEXT(""),TEXT(""),TEXT(""),
TEXT(""),TEXT(""),TEXT(""),TEXT("")
},
ZONEMASK_ERROR | ZONEMASK_WARN // ulZoneMask
};
#endif // DEBUG
//------------------------------------------------------------------------------
// Types
//------------------------------------------------------------------------------
// Global Variables
//------------------------------------------------------------------------------
// Local Variables
//-----------------------------------------------------------------------------
//
// Function: TCL_Deinit
//
// This function deinitializes the TCLED
//
// Parameters:
// dwContext
// [in] Context of call
//
// Returns:
// TRUE
//
//-----------------------------------------------------------------------------
BOOL TCL_Deinit(DWORD dwContext)
{
DEBUGMSG(ZONE_FUNC, (TEXT("+ TCL_Deinit: dwContext = 0x%X\r\n"), dwContext));
//Disable the pmic tcled
if(!BSPTcledDeinit())
return FALSE;
DEBUGMSG(ZONE_FUNC, (TEXT("-TCL_Deinit\r\n")));
return TRUE;
}
//-----------------------------------------------------------------------------
//
// Function: TCL_Init
//
// This function initializes the tcled
//
// Parameters:
// pContext
// [in] Context of call
//
// Returns:
// 1 means success
// 0 means fail
//
//-----------------------------------------------------------------------------
DWORD TCL_Init(LPCTSTR pContext, LPCVOID lpvBusContext)
{
DEBUGMSG(ZONE_FUNC, (TEXT("+TCL_INIT \r\n")));
//initialize the pmic tcled
if(!BSPTcledInit())
goto InitErrCleanup;
DEBUGMSG(ZONE_FUNC, (TEXT("-TCL_INIT \r\n")));
return 1;
InitErrCleanup:
TCL_Deinit((DWORD)pContext);
return 0;
}
//-----------------------------------------------------------------------------
//
// Function: TCL_IOControl
//
// This function handles the IOControl to the tcled driver
//
// Parameters:
// pContext
// [in] Context of call
// Ioctl
// [in] the io control code passed from upper layer
// pInBuf
// [in] IN buffer
// InBufLen
// [in] size of IN buffer
// pOutBuf
// [out] OUT buffer
// OutBufLen
// [out] size of OUT buffer
// pdwBytesTransferred
// [out] returned bytes
//
// Returns:
// TRUE means success
// FALSE means fail
//
//-----------------------------------------------------------------------------
BOOL TCL_IOControl(
DWORD dwContext,
DWORD Ioctl,
PUCHAR pInBuf,
DWORD InBufLen,
PUCHAR pOutBuf,
DWORD OutBufLen,
PDWORD pdwBytesTransferred)
{
BOOL ret = TRUE;
DEBUGMSG(ZONE_FUNC, (TEXT("TCL_IOControl: 0x%x, InBuf:0x%x, InBufLen:%d, OutBuf:0x%x, OutBufLen:0x%x)\r\n"),
Ioctl, pInBuf, InBufLen, pOutBuf, OutBufLen));
switch(Ioctl)
{
case IOCTL_POWER_CAPABILITIES:
DEBUGMSG(ZONE_FUNC, (TEXT("IOCTL_POWER_CAPABILITIES\r\n")));
break;
case IOCTL_POWER_QUERY:
DEBUGMSG(ZONE_FUNC, (TEXT("TCL_IOCTL_POWER_QUERY\r\n")));
break;
case IOCTL_POWER_SET:
DEBUGMSG(ZONE_FUNC, (TEXT("TCL_IOCTL_POWER_SET\r\n")));
break;
case IOCTL_POWER_GET:
DEBUGMSG(ZONE_FUNC, (TEXT("TCL_IOCTL_POWER_GET\r\n")));
break;
default:
DEBUGMSG(ZONE_FUNC, (TEXT("Call BSPTcledIOControl to handle!\r\n")));
ret = BSPTcledIOControl(dwContext, Ioctl, pInBuf, InBufLen, pOutBuf, OutBufLen, pdwBytesTransferred);
break;
}
DEBUGMSG(ZONE_FUNC, (TEXT("-TCL_IOControl:%x \r\n"), ret));
return ret;
}
//-----------------------------------------------------------------------------
//
// Function: TCL_Open
//
// This function opens the device instance
//
// Parameters:
// dwData
// [in] context of call
// dwAccess
// [in] not used
// dwShareMode
// [in] not used
//
// Returns:
// DWORD handle value for the open instance
//
//-----------------------------------------------------------------------------
DWORD TCL_Open(DWORD dwData, DWORD dwAccess, DWORD dwShareMode)
{
DEBUGMSG(ZONE_FUNC, (TEXT("+TCL_Open: dwData = 0x%x, dwAccess = 0x%x, dwShareMode = 0x%x\r\n"),
dwData, dwAccess, dwShareMode));
DEBUGMSG(ZONE_FUNC, (TEXT("-TCL_Open\r\n")));
return dwData;
}
//-----------------------------------------------------------------------------
//
// Function: TCL_Close
//
// This function closes the device instance
//
// Parameters:
// Handle
// [in] context of call
//
// Returns:
// TRUE
//
//-----------------------------------------------------------------------------
BOOL TCL_Close(DWORD Handle)
{
DEBUGMSG(ZONE_FUNC, (TEXT("+TCL_Close: Handle = 0x%x\r\n"), Handle));
DEBUGMSG(ZONE_FUNC, (TEXT("-TCL_Close: Handle = 0x%x\r\n"), Handle));
return TRUE;
}
//-----------------------------------------------------------------------------
//
// Function: TCL_PowerDown
//
// This function performs the power down
//
// Parameters:
// void
//
// Returns:
// void
//
//-----------------------------------------------------------------------------
void TCL_PowerDown(void)
{
DEBUGMSG(ZONE_FUNC, (TEXT("+TCL_PowerDown\r\n")));
DEBUGMSG(ZONE_FUNC, (TEXT("-TCL_PowerDown\r\n")));
}
//-----------------------------------------------------------------------------
//
// Function: TCL_PowerUp
//
// This function performs the power up
//
// Parameters:
// void
//
// Returns:
// void
//
//-----------------------------------------------------------------------------
void TCL_PowerUp(void)
{
DEBUGMSG(ZONE_FUNC, (TEXT("+TCL_PowerUp\r\n")));
DEBUGMSG(ZONE_FUNC, (TEXT("-TCL_PowerUp\r\n")));
}
// The function Not supported
DWORD TCL_Read(DWORD Handle, LPVOID pBuffer, DWORD dwNumBytes){return 0;}
DWORD TCL_Write(DWORD Handle, LPCVOID pBuffer, DWORD dwNumBytes){return 0;}
//-----------------------------------------------------------------------------
//
// Function: TCL_DllEntry
//
//
//
// Parameters:
// void
//
// Returns:
// void
//
//-----------------------------------------------------------------------------
BOOL WINAPI TCL_DllEntry(HANDLE hInstDll, DWORD dwReason, LPVOID lpvReserved)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH:
DEBUGMSG(ZONE_FUNC, (TEXT("TCL_DllEntry: DLL_PROCESS_ATTACH\r\n")));
break;
case DLL_PROCESS_DETACH:
DEBUGMSG(ZONE_FUNC, (TEXT("TCL_DllEntry: DLL_PROCESS_DETACH\r\n")));
break;
}
// return TRUE for success
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -