/* * Copyright (C) 2011 The Android Open Source Project * * 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 M4PSW_MemoryInterface.c * @brief Memory Interface * @note Implementation of the osal memory functions ************************************************************************* */ #include #include #include #include "M4OSA_Memory.h" #ifndef M4VPS_ADVANCED_MEMORY_MANAGER /** ************************************************************************ * @fn M4OSA_MemAddr32 M4OSA_32bitAlignedMalloc(M4OSA_UInt32 size, * M4OSA_CoreID coreID, * M4OSA_Char* string) * @brief this function allocates a memory block (at least 32 bits aligned) * @note * @param size (IN): size of allocated block in bytes * @param coreID (IN): identification of the caller component * @param string (IN): description of the allocated block (null terminated) * @return address of the allocated block, M4OSA_NULL if no memory available ************************************************************************ */ M4OSA_MemAddr32 M4OSA_32bitAlignedMalloc(M4OSA_UInt32 size, M4OSA_CoreID coreID, M4OSA_Char* string) { M4OSA_MemAddr32 Address = M4OSA_NULL; /** * If size is 0, malloc on WIN OS allocates a zero-length item in * the heap and returns a valid pointer to that item. * On other platforms, malloc could returns an invalid pointer * So, DON'T allocate memory of 0 byte */ if (size == 0) { return Address; } if (size%4 != 0) { size = size + 4 - (size%4); } Address = (M4OSA_MemAddr32) malloc(size); return Address; } #endif