1*437bfbebSnyanmisaka /* SPDX-License-Identifier: Apache-2.0 OR MIT */ 2*437bfbebSnyanmisaka /* 3*437bfbebSnyanmisaka * Copyright (c) 2020 Rockchip Electronics Co., Ltd. 4*437bfbebSnyanmisaka */ 5*437bfbebSnyanmisaka 6*437bfbebSnyanmisaka #ifndef __MPP_CFG_H__ 7*437bfbebSnyanmisaka #define __MPP_CFG_H__ 8*437bfbebSnyanmisaka 9*437bfbebSnyanmisaka #include "mpp_internal.h" 10*437bfbebSnyanmisaka 11*437bfbebSnyanmisaka /* header size 128 byte */ 12*437bfbebSnyanmisaka typedef struct MppCfgInfoHead_t { 13*437bfbebSnyanmisaka char version[116]; 14*437bfbebSnyanmisaka RK_S32 info_size; 15*437bfbebSnyanmisaka RK_S32 info_count; 16*437bfbebSnyanmisaka RK_S32 node_count; 17*437bfbebSnyanmisaka } MppCfgInfoHead; 18*437bfbebSnyanmisaka 19*437bfbebSnyanmisaka #ifdef __cplusplus 20*437bfbebSnyanmisaka extern "C" { 21*437bfbebSnyanmisaka #endif 22*437bfbebSnyanmisaka 23*437bfbebSnyanmisaka MPP_RET mpp_cfg_set_s32(MppCfgInfo *info, void *cfg, RK_S32 val); 24*437bfbebSnyanmisaka MPP_RET mpp_cfg_get_s32(MppCfgInfo *info, void *cfg, RK_S32 *val); 25*437bfbebSnyanmisaka MPP_RET mpp_cfg_set_u32(MppCfgInfo *info, void *cfg, RK_U32 val); 26*437bfbebSnyanmisaka MPP_RET mpp_cfg_get_u32(MppCfgInfo *info, void *cfg, RK_U32 *val); 27*437bfbebSnyanmisaka MPP_RET mpp_cfg_set_s64(MppCfgInfo *info, void *cfg, RK_S64 val); 28*437bfbebSnyanmisaka MPP_RET mpp_cfg_get_s64(MppCfgInfo *info, void *cfg, RK_S64 *val); 29*437bfbebSnyanmisaka MPP_RET mpp_cfg_set_u64(MppCfgInfo *info, void *cfg, RK_U64 val); 30*437bfbebSnyanmisaka MPP_RET mpp_cfg_get_u64(MppCfgInfo *info, void *cfg, RK_U64 *val); 31*437bfbebSnyanmisaka MPP_RET mpp_cfg_set_st(MppCfgInfo *info, void *cfg, void *val); 32*437bfbebSnyanmisaka MPP_RET mpp_cfg_get_st(MppCfgInfo *info, void *cfg, void *val); 33*437bfbebSnyanmisaka MPP_RET mpp_cfg_set_ptr(MppCfgInfo *info, void *cfg, void *val); 34*437bfbebSnyanmisaka MPP_RET mpp_cfg_get_ptr(MppCfgInfo *info, void *cfg, void **val); 35*437bfbebSnyanmisaka 36*437bfbebSnyanmisaka #define MPP_CFG_SET_s32(info, cfg, val) (mpp_cfg_set_s32)(info, cfg, val) 37*437bfbebSnyanmisaka #define MPP_CFG_GET_s32(info, cfg, val) (mpp_cfg_get_s32)(info, cfg, (RK_S32 *)(val)) 38*437bfbebSnyanmisaka #define MPP_CFG_SET_u32(info, cfg, val) (mpp_cfg_set_u32)(info, cfg, val) 39*437bfbebSnyanmisaka #define MPP_CFG_GET_u32(info, cfg, val) (mpp_cfg_get_u32)(info, cfg, (RK_U32 *)(val)) 40*437bfbebSnyanmisaka #define MPP_CFG_SET_s64(info, cfg, val) (mpp_cfg_set_s64)(info, cfg, val) 41*437bfbebSnyanmisaka #define MPP_CFG_GET_s64(info, cfg, val) (mpp_cfg_get_s64)(info, cfg, (RK_S64 *)(val)) 42*437bfbebSnyanmisaka #define MPP_CFG_SET_u64(info, cfg, val) (mpp_cfg_set_u64)(info, cfg, val) 43*437bfbebSnyanmisaka #define MPP_CFG_GET_u64(info, cfg, val) (mpp_cfg_get_u64)(info, cfg, (RK_U64 *)(val)) 44*437bfbebSnyanmisaka #define MPP_CFG_SET_st(info, cfg, val) (mpp_cfg_set_st )(info, cfg, val) 45*437bfbebSnyanmisaka #define MPP_CFG_GET_st(info, cfg, val) (mpp_cfg_get_st )(info, cfg, (void *)(val)) 46*437bfbebSnyanmisaka #define MPP_CFG_SET_ptr(info, cfg, val) (mpp_cfg_set_ptr)(info, cfg, val) 47*437bfbebSnyanmisaka #define MPP_CFG_GET_ptr(info, cfg, val) (mpp_cfg_get_ptr)(info, cfg, (void **)(val)) 48*437bfbebSnyanmisaka 49*437bfbebSnyanmisaka const char *strof_cfg_type(CfgType type); 50*437bfbebSnyanmisaka 51*437bfbebSnyanmisaka #define CHECK_CFG_INFO(node, name, type) \ 52*437bfbebSnyanmisaka check_cfg_info(node, name, type, __FUNCTION__) 53*437bfbebSnyanmisaka 54*437bfbebSnyanmisaka MPP_RET check_cfg_info(MppCfgInfo *node, const char *name, CfgType type, 55*437bfbebSnyanmisaka const char *func); 56*437bfbebSnyanmisaka 57*437bfbebSnyanmisaka #ifdef __cplusplus 58*437bfbebSnyanmisaka } 59*437bfbebSnyanmisaka #endif 60*437bfbebSnyanmisaka 61*437bfbebSnyanmisaka #endif /*__MPP_CFG_H__*/ 62