1*437bfbebSnyanmisaka /* SPDX-License-Identifier: Apache-2.0 OR MIT */ 2*437bfbebSnyanmisaka /* 3*437bfbebSnyanmisaka * Copyright (c) 2023 Rockchip Electronics Co., Ltd. 4*437bfbebSnyanmisaka */ 5*437bfbebSnyanmisaka 6*437bfbebSnyanmisaka #ifndef __MPP_ALLOCATOR_API_H__ 7*437bfbebSnyanmisaka #define __MPP_ALLOCATOR_API_H__ 8*437bfbebSnyanmisaka 9*437bfbebSnyanmisaka #include "mpp_allocator.h" 10*437bfbebSnyanmisaka 11*437bfbebSnyanmisaka typedef MPP_RET (*OsAllocatorFunc)(void *ctx, MppBufferInfo *info); 12*437bfbebSnyanmisaka 13*437bfbebSnyanmisaka typedef struct os_allocator_t { 14*437bfbebSnyanmisaka MppBufferType type; 15*437bfbebSnyanmisaka const char *name; 16*437bfbebSnyanmisaka 17*437bfbebSnyanmisaka MPP_RET (*open)(void **ctx, size_t alignment, MppAllocFlagType flags); 18*437bfbebSnyanmisaka MPP_RET (*close)(void *ctx); 19*437bfbebSnyanmisaka 20*437bfbebSnyanmisaka OsAllocatorFunc alloc; 21*437bfbebSnyanmisaka OsAllocatorFunc free; 22*437bfbebSnyanmisaka OsAllocatorFunc import; 23*437bfbebSnyanmisaka OsAllocatorFunc release; 24*437bfbebSnyanmisaka OsAllocatorFunc mmap; 25*437bfbebSnyanmisaka 26*437bfbebSnyanmisaka /* allocator real flag update callback */ 27*437bfbebSnyanmisaka MppAllocFlagType (*flags)(void *ctx); 28*437bfbebSnyanmisaka } os_allocator; 29*437bfbebSnyanmisaka 30*437bfbebSnyanmisaka #endif /* __MPP_ALLOCATOR_API_H__ */ 31