| /* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */ |
| /* |
| * Copyright (c) 2019 Amlogic, Inc. All rights reserved. |
| */ |
| |
| #ifndef _RESOURCE_MANAGE_H_ |
| #define _RESOURCE_MANAGE_H_ |
| |
| #include <linux/ioctl.h> |
| #include <linux/types.h> |
| |
| #define RESMAN_IOC_MAGIC 'R' |
| |
| #define RESMAN_IOC_QUERY_RES _IOR(RESMAN_IOC_MAGIC, 0x01, int) |
| #define RESMAN_IOC_ACQUIRE_RES _IOW(RESMAN_IOC_MAGIC, 0x02, int) |
| #define RESMAN_IOC_RELEASE_RES _IOR(RESMAN_IOC_MAGIC, 0x03, int) |
| #define RESMAN_IOC_SETAPPINFO _IOW(RESMAN_IOC_MAGIC, 0x04, int) |
| #define RESMAN_IOC_SUPPORT_RES _IOR(RESMAN_IOC_MAGIC, 0x05, int) |
| #define RESMAN_IOC_RELEASE_ALL _IOR(RESMAN_IOC_MAGIC, 0x06, int) |
| #define RESMAN_SUPPORT_PREEMPT 1 |
| |
| struct resman_para { |
| __u32 k; |
| union { |
| struct { |
| __u32 preempt; |
| __u32 timeout; |
| char arg[32]; |
| } acquire; |
| struct { |
| char name[32]; |
| __u32 type; |
| __s32 value; |
| __s32 avail; |
| } query; |
| struct { |
| char name[32]; |
| } support; |
| } v; |
| }; |
| |
| struct app_info { |
| char app_name[32]; |
| __u32 app_type; |
| }; |
| |
| enum RESMAN_ID { |
| RESMAN_ID_VFM_DEFAULT, |
| RESMAN_ID_AMVIDEO, |
| RESMAN_ID_PIPVIDEO, |
| RESMAN_ID_SEC_TVP, |
| RESMAN_ID_TSPARSER, |
| RESMAN_ID_CODEC_MM, |
| RESMAN_ID_ADC_PLL, |
| RESMAN_ID_DECODER, |
| RESMAN_ID_DMX, |
| RESMAN_ID_DI, |
| RESMAN_ID_HWC, |
| RESMAN_ID_MAX, |
| }; |
| |
| enum RESMAN_TYPE { |
| RESMAN_TYPE_COUNTER = 1, |
| RESMAN_TYPE_TOGGLE, |
| RESMAN_TYPE_TVP, |
| RESMAN_TYPE_CODEC_MM, |
| RESMAN_TYPE_CAPACITY_SIZE |
| }; |
| |
| enum RESMAN_APP { |
| RESMAN_APP_NONE = -1, |
| RESMAN_APP_OMX = 0, |
| RESMAN_APP_XDVB, |
| RESMAN_APP_HDMI_IN, |
| RESMAN_APP_SEC_TVP, |
| RESMAN_APP_DVBKIT, |
| RESMAN_APP_TSPLAYER, |
| RESMAN_APP_OTHER = 10, |
| }; |
| |
| enum RESMAN_EVENT { |
| RESMAN_EVENT_REGISTER = 0x1000, |
| RESMAN_EVENT_UNREGISTER, |
| RESMAN_EVENT_PREEMPT |
| }; |
| |
| int resman_init(void); |
| |
| #endif/*_RESOURCE_MANAGE_H_*/ |