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

📄 prpbuffermanager.h

📁 Microsoft WinCE 6.0 BSP FINAL release source code for use with the i.MX27ADS TO2 WCE600_FINAL_MX27_S
💻 H
字号:
//
// 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 
//
//------------------------------------------------------------------------------
//
// File: PrpBufferManager.h
//
// Class definition for an object to manage multiple buffering
// in the pre-processor.
//
//------------------------------------------------------------------------------
#ifndef _PRP_BUFFER_MANAGER_H_
#define _PRP_BUFFER_MANAGER_H_

#ifdef __cplusplus
extern "C" {
#endif

//------------------------------------------------------------------------------
// Defines
#define PRP_MIN_NUM_BUFFERS             3
#define PRP_MAX_NUM_BUFFERS             100

//------------------------------------------------------------------------------
// Types
typedef struct {
    LPVOID pPhysAddr;
    LPVOID pVirtAddr;
} prpBufferData, *pPrpBufferData;

//------------------------------------------------------------------------------
// Functions
class PrpBufferManager {
public:
    PrpBufferManager();
    ~PrpBufferManager();
    BOOL AllocateBuffers(ULONG, ULONG);
    DWORD SetActiveBuffer(LPVOID *, UINT32);
    BOOL SetFilledBuffer();
    BOOL DeleteBuffers();
    VOID ResetBuffers();
    BOOL GetBufferFilled(pPrpBufferData);
    BOOL PutBufferIdle(pPrpBufferData);
    VOID PrintBufferInfo();

public:
    DWORD m_iNumBuffers;
    ULONG m_lBufferSize;

private:
    CRITICAL_SECTION m_csLockBufferQueues;

    // Queue handles
    HANDLE m_hReadIdleQueue, m_hWriteIdleQueue;
    HANDLE m_hReadBusyQueue, m_hWriteBusyQueue;
    HANDLE m_hReadFilledQueue, m_hWriteFilledQueue;
};

#ifdef __cplusplus
}
#endif

#endif  // _PRP_BUFFER_MANAGER_H_

⌨️ 快捷键说明

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