xref: /rockchip-linux_mpp/mpp/inc/mpp_cfg.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
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