| /******************************************************************************* |
| * Copyright (C) Marvell International Ltd. and its affiliates |
| * |
| * Marvell GPL License Option |
| * |
| * If you received this File from Marvell, you may opt to use, redistribute and/or |
| * modify this File in accordance with the terms and conditions of the General |
| * Public License Version 2, June 1991 (the "GPL License"), a copy of which is |
| * available along with the File in the license.txt file or by writing to the Free |
| * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or |
| * on the worldwide web at http://www.gnu.org/licenses/gpl.txt. |
| * |
| * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED |
| * WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY |
| * DISCLAIMED. The GPL License provides additional details about this warranty |
| * disclaimer. |
| ********************************************************************************/ |
| |
| #ifndef _MV_CC_CBUF_H_ |
| #define _MV_CC_CBUF_H_ |
| |
| #include "cc_type.h" |
| #include "cc_dss.h" |
| |
| |
| typedef struct _MV_CC_CBuf_CBufBody { |
| volatile UINT32 m_StartOffset; |
| volatile UINT32 m_RdOffset; |
| volatile UINT32 m_WrOffset; |
| volatile UINT32 m_BufSize; |
| volatile UINT32 m_EndBlockSize; |
| volatile UINT32 m_Flags; |
| } MV_CC_CBufBody_t, *pMV_CC_CBufBody_t; |
| |
| |
| typedef struct _MV_CC_CBufCtrl { |
| Buffer_Notifier_t m_BufNtf; |
| |
| MV_CC_CBufCtrlType_t m_type; |
| MV_CC_ServiceID_U32_t m_id; |
| |
| UINT32 m_seqid; |
| pMV_CC_CBufBody_t m_pCBufBody; |
| UINT32 m_BufSize; |
| UINT32 m_EndBlockSize; |
| UINT32 m_Flags; |
| |
| UINT32 m_CBufBody_SHMOffset; |
| |
| MV_CC_ServiceID_U32_t m_NoticeMsgQSID; |
| UINT32 m_EndBlockDataSize; |
| MV_CC_HANDLE_MsgQ_t m_NoticeMsgQHandle; |
| |
| UINT32 m_RWCount; |
| UINT32 m_RWErrCount; |
| } MV_CC_CBufCtrl_t, *pMV_CC_CBufCtrl_t; |
| |
| #define CBuf_BufferStart(x) ((UCHAR *)((UCHAR *)((x)->m_pCBufBody) + \ |
| (x)->m_pCBufBody->m_StartOffset)) |
| |
| |
| HRESULT MV_CC_CBufBody_Create(UINT32 *pSHMOffset, |
| UINT32 BufSize, |
| UINT32 EndBlockSize, |
| UINT32 Flags); |
| |
| HRESULT MV_CC_CBufBody_Destroy(UINT32 SHMOffset); |
| |
| |
| HRESULT MV_CC_CBufSrv_Create( pMV_CC_DSS_ServiceInfo_CBuf_t pSrvInfo, |
| MV_CC_Task *cc_task); |
| HRESULT MV_CC_CBufSrv_Destroy(pMV_CC_DSS_ServiceInfo_CBuf_t pSrvInfo, |
| MV_CC_Task *cc_task); |
| HRESULT MV_CC_CBufSrv_Release_By_Taskid(MV_CC_Task *cc_task); |
| |
| void * MV_SHM_GetCacheVirtAddr(size_t Offset); |
| int MV_SHM_Free( size_t Offset); |
| size_t MV_SHM_Malloc( size_t Size, size_t Alignment); |
| int MV_SHM_Takeover(size_t Offset); |
| |
| void MV_SHM_Check_Clean_Map(pid_t pid); |
| |
| #endif |