xref: /rockchip-linux_mpp/kmpp/base/inc/kmpp_ioc.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1 /* SPDX-License-Identifier: Apache-2.0 OR MIT */
2 /*
3  * Copyright (c) 2025 Rockchip Electronics Co., Ltd.
4  */
5 
6 #ifndef __KMPP_IOC_H__
7 #define __KMPP_IOC_H__
8 
9 #include "rk_type.h"
10 
11 typedef void* KmppIoc;
12 
13 #define KMPP_IOC_ENTRY_TABLE(prefix, ENTRY, STRCT, EHOOK, SHOOK, ALIAS) \
14     ENTRY(prefix, u32,  rk_u32,         def,    FLAG_NONE,  def) \
15     ENTRY(prefix, u32,  rk_u32,         cmd,    FLAG_NONE,  cmd) \
16     ENTRY(prefix, u32,  rk_u32,         flags,  FLAG_NONE,  flags) \
17     ENTRY(prefix, u32,  rk_u32,         id,     FLAG_NONE,  id) \
18     ENTRY(prefix, s32,  rk_s32,         ret,    FLAG_NONE,  ret) \
19     STRCT(prefix, shm,  KmppShmPtr,     ctx,    FLAG_NONE,  ctx) \
20     STRCT(prefix, shm,  KmppShmPtr,     in,     FLAG_NONE,  in) \
21     STRCT(prefix, shm,  KmppShmPtr,     out,    FLAG_NONE,  out)
22 
23 #define KMPP_OBJ_NAME                   kmpp_ioc
24 #define KMPP_OBJ_INTF_TYPE              KmppIoc
25 #define KMPP_OBJ_ENTRY_TABLE            KMPP_IOC_ENTRY_TABLE
26 #include "kmpp_obj_func.h"
27 
28 #endif /*__KMPP_IOC_H__*/
29