1 //******************************************************************
3 // Copyright 2014 Intel Mobile Communications GmbH All Rights Reserved.
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
21 #ifndef _OIC_MALLOC_H_
22 #define _OIC_MALLOC_H_
24 // The purpose of this module is to allow custom dynamic memory allocation
25 // code to easily be added to the TB Stack by redefining the OICMalloc and
26 // OICFree functions. Examples of when this might be needed are on TB
27 // platforms that do not support dynamic allocation or if a memory pool
30 // Note that these functions are intended to be used ONLY within the TB
31 // stack and NOT by the application code. The application should be
32 // responsible for its own dynamic allocation.
34 //-----------------------------------------------------------------------------
36 //-----------------------------------------------------------------------------
43 //-----------------------------------------------------------------------------
45 //-----------------------------------------------------------------------------
47 //-----------------------------------------------------------------------------
49 //-----------------------------------------------------------------------------
51 //-----------------------------------------------------------------------------
52 // Function prototypes
53 //-----------------------------------------------------------------------------
56 * Allocates a block of size bytes, returning a pointer to the beginning of
57 * the allocated block.
59 * NOTE: This function is intended to be used internally by the TB Stack.
60 * It is not intended to be used by applications.
62 * @param size - Size of the memory block in bytes, where size > 0
65 * on success, a pointer to the allocated memory block
66 * on failure, a null pointer is returned
68 void *OICMalloc(size_t size);
71 * Deallocate a block of memory previously allocated by a call to OCMalloc
73 * NOTE: This function is intended to be used internally by the TB Stack.
74 * It is not intended to be used by applications.
76 * @param ptr - Pointer to block of memory previously allocated by OCMalloc.
77 * If ptr is a null pointer, the function does nothing.
79 void OICFree(void *ptr);
84 #endif /* _OIC_MALLOC_H_ */