141050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard/* 241050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard ** Copyright 2003-2010, VisualOn, Inc. 341050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard ** 441050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard ** Licensed under the Apache License, Version 2.0 (the "License"); 541050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard ** you may not use this file except in compliance with the License. 641050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard ** You may obtain a copy of the License at 741050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard ** 841050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard ** http://www.apache.org/licenses/LICENSE-2.0 941050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard ** 1041050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard ** Unless required by applicable law or agreed to in writing, software 1141050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard ** distributed under the License is distributed on an "AS IS" BASIS, 1241050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1341050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard ** See the License for the specific language governing permissions and 1441050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard ** limitations under the License. 1541050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard */ 1641050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard/******************************************************************************* 1741050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard File: cmnMemory.c 1841050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard 1941050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard Content: sample code for memory operator implementation 2041050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard 2141050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard*******************************************************************************/ 2241050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard#include "cmnMemory.h" 2341050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard 24ea1b2a40def72caa03a40460bf04911b0d9b4d46Martin Storsjo#include <stdlib.h> 2541050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard#include <string.h> 2641050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard 2741050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard//VO_MEM_OPERATOR g_memOP; 2841050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard 2941050cdb033641ddf26831d9272c0930f7b40a2dMans RullgardVO_U32 cmnMemAlloc (VO_S32 uID, VO_MEM_INFO * pMemInfo) 3041050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard{ 3141050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard if (!pMemInfo) 3241050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard return VO_ERR_INVALID_ARG; 3341050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard 3441050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard pMemInfo->VBuffer = malloc (pMemInfo->Size); 3541050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard return 0; 3641050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard} 3741050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard 3841050cdb033641ddf26831d9272c0930f7b40a2dMans RullgardVO_U32 cmnMemFree (VO_S32 uID, VO_PTR pMem) 3941050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard{ 4041050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard free (pMem); 4141050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard return 0; 4241050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard} 4341050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard 4441050cdb033641ddf26831d9272c0930f7b40a2dMans RullgardVO_U32 cmnMemSet (VO_S32 uID, VO_PTR pBuff, VO_U8 uValue, VO_U32 uSize) 4541050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard{ 4641050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard memset (pBuff, uValue, uSize); 4741050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard return 0; 4841050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard} 4941050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard 5041050cdb033641ddf26831d9272c0930f7b40a2dMans RullgardVO_U32 cmnMemCopy (VO_S32 uID, VO_PTR pDest, VO_PTR pSource, VO_U32 uSize) 5141050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard{ 5241050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard memcpy (pDest, pSource, uSize); 5341050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard return 0; 5441050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard} 5541050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard 5641050cdb033641ddf26831d9272c0930f7b40a2dMans RullgardVO_U32 cmnMemCheck (VO_S32 uID, VO_PTR pBuffer, VO_U32 uSize) 5741050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard{ 5841050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard return 0; 5941050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard} 6041050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard 6141050cdb033641ddf26831d9272c0930f7b40a2dMans RullgardVO_S32 cmnMemCompare (VO_S32 uID, VO_PTR pBuffer1, VO_PTR pBuffer2, VO_U32 uSize) 6241050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard{ 6341050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard return memcmp(pBuffer1, pBuffer2, uSize); 6441050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard} 6541050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard 6641050cdb033641ddf26831d9272c0930f7b40a2dMans RullgardVO_U32 cmnMemMove (VO_S32 uID, VO_PTR pDest, VO_PTR pSource, VO_U32 uSize) 6741050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard{ 6841050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard memmove (pDest, pSource, uSize); 6941050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard return 0; 7041050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard} 7141050cdb033641ddf26831d9272c0930f7b40a2dMans Rullgard 72