/*
* Copyright (C) 2008-2017 by TOPPERS Project
*
* 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
* ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
* 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
* (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
* 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
* スコード中に含まれていること.
* (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
* 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
* 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
* の無保証規定を掲載すること.
* (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
* 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
* と.
* (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
* 作権表示,この利用条件および下記の無保証規定を掲載すること.
* (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
* 報告すること.
* (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
* 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
* また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
* 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
* 免責すること.
*
* 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
* よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
* に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
* アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
* の責任を負わない.
*
* @(#) $Id$
*/
#ifndef tTLSFMalloc__INLINE_H
#define tTLSFMalloc__INLINE_H
#include "tlsf.h"
/* #[]#
* #[<...>]# から #[]# で囲まれたコメントは編集しないでください
* tecsmerge によるマージに使用されます
*
* 属性アクセスマクロ #_CAAM_#
* memoryPoolSize size_t ATTR_memoryPoolSize
* pool uint64_t* VAR_pool
*
* #[]# */
/* #[]# eMalloc
* entry port: eMalloc
* signature: sMalloc
* context: task
* #[]# */
/* #[]# eMalloc_initializeMemoryPool
* name: eMalloc_initializeMemoryPool
* global_name: tTLSFMalloc_eMalloc_initializeMemoryPool
* oneway: false
* #[]# */
Inline int
eMalloc_initializeMemoryPool(CELLIDX idx)
{
CELLCB *p_cellcb;
if (VALID_IDX(idx)) {
p_cellcb = GET_CELLCB(idx);
}
else {
} /* end if VALID_IDX(idx) */
return init_memory_pool(ATTR_memoryPoolSize, VAR_pool);
}
/* #[]# eMalloc_calloc
* name: eMalloc_calloc
* global_name: tTLSFMalloc_eMalloc_calloc
* oneway: false
* #[]# */
Inline void*
eMalloc_calloc(CELLIDX idx, size_t nelem, size_t elem_size)
{
CELLCB *p_cellcb;
if (VALID_IDX(idx)) {
p_cellcb = GET_CELLCB(idx);
}
else {
} /* end if VALID_IDX(idx) */
return calloc_ex( nelem, elem_size, VAR_pool);
}
/* #[]# eMalloc_malloc
* name: eMalloc_malloc
* global_name: tTLSFMalloc_eMalloc_malloc
* oneway: false
* #[]# */
Inline void*
eMalloc_malloc(CELLIDX idx, size_t size)
{
CELLCB *p_cellcb;
if (VALID_IDX(idx)) {
p_cellcb = GET_CELLCB(idx);
}
else {
} /* end if VALID_IDX(idx) */
return malloc_ex(size, VAR_pool);
}
/* #[]# eMalloc_realloc
* name: eMalloc_realloc
* global_name: tTLSFMalloc_eMalloc_realloc
* oneway: false
* #[]# */
Inline void*
eMalloc_realloc(CELLIDX idx, const void* ptr, size_t new_size)
{
CELLCB *p_cellcb;
if (VALID_IDX(idx)) {
p_cellcb = GET_CELLCB(idx);
}
else {
} /* end if VALID_IDX(idx) */
return realloc_ex((void *)ptr, new_size, VAR_pool);
}
/* #[]# eMalloc_free
* name: eMalloc_free
* global_name: tTLSFMalloc_eMalloc_free
* oneway: false
* #[]# */
Inline void
eMalloc_free(CELLIDX idx, const void* ptr)
{
CELLCB *p_cellcb;
if (VALID_IDX(idx)) {
p_cellcb = GET_CELLCB(idx);
}
else {
} /* end if VALID_IDX(idx) */
return free_ex((void *)ptr, VAR_pool);
}
/* #[]#
* これより下に非受け口関数を書きます
* #[]#*/
#endif /* tTLSFMalloc_INLINEH */