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

📄 tcled.cpp

📁 Microsoft WinCE 6.0 BSP FINAL release source code for use with the i.MX27ADS TO2 WCE600_FINAL_MX27_S
💻 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 + -