blob: 0308dfa92dbebc98b76d77660e13b8213e3519cb [file] [log] [blame]
/*
** Copyright 2003-2010, VisualOn, Inc.
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
/*******************************************************************************
File: cmnMemory.h
Content: memory operator implementation header file
*******************************************************************************/
#ifndef __cmnMemory_H__
#define __cmnMemory_H__
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include <voMem.h>
//extern VO_MEM_OPERATOR g_memOP;
/**
* Allocate memory
* \param uID [in] module ID
* \param uSize [in] size of memory
* \return value is the allocated memory address. NULL is failed.
*/
VO_U32 cmnMemAlloc (VO_S32 uID, VO_MEM_INFO * pMemInfo);
/**
* Free up memory
* \param uID [in] module ID
* \param pMem [in] address of memory
* \return value 0, if succeeded.
*/
VO_U32 cmnMemFree (VO_S32 uID, VO_PTR pBuffer);
/**
* memory set function
* \param uID [in] module ID
* \param pBuff [in/out] address of memory
* \param uValue [in] the value to be set
* \param uSize [in] the size to be set
* \return value 0, if succeeded.
*/
VO_U32 cmnMemSet (VO_S32 uID, VO_PTR pBuff, VO_U8 uValue, VO_U32 uSize);
/**
* memory copy function
* \param uID [in] module ID
* \param pDest [in/out] address of destination memory
* \param pSource [in] address of source memory
* \param uSize [in] the size to be copied
* \return value 0, if succeeded.
*/
VO_U32 cmnMemCopy (VO_S32 uID, VO_PTR pDest, VO_PTR pSource, VO_U32 uSize);
/**
* memory check function
* \param uID [in] module ID
* \param pBuff [in] address of buffer to be checked
* \param uSize [in] the size to be checked
* \return value 0, if succeeded.
*/
VO_U32 cmnMemCheck (VO_S32 uID, VO_PTR pBuffer, VO_U32 uSize);
/**
* memory compare function
* \param uID [in] module ID
* \param pBuffer1 [in] address of buffer 1 to be compared
* \param pBuffer2 [in] address of buffer 2 to be compared
* \param uSize [in] the size to be compared
* \return value: same as standard C run-time memcmp() function.
*/
VO_S32 cmnMemCompare (VO_S32 uID, VO_PTR pBuffer1, VO_PTR pBuffer2, VO_U32 uSize);
/**
* memory move function
* \param uID [in] module ID
* \param pDest [in/out] address of destination memory
* \param pSource [in] address of source memory
* \param uSize [in] the size to be moved
* \return value 0, if succeeded.
*/
VO_U32 cmnMemMove (VO_S32 uID, VO_PTR pDest, VO_PTR pSource, VO_U32 uSize);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif // __cmnMemory_H__