targetdev.h

来自「AMLOGIC DPF source code」· C头文件 代码 · 共 151 行

H
151
字号
/*******************************************************************
 * 
 *  Copyright C 2005 by Amlogic, Inc. All Rights Reserved.
 *
 *  Description: 
 *
 *  Author: Amlogic Software
 *  Created: Fri Nov 11 01:05:46 2005
 *
 *******************************************************************/
#ifndef TARGETDEV_H_
#define TARGETDEV_H_

/* 
 * Target device IO command
 */
#define TARGETIO_SRCCTL     _IO('T', 1)
#define TARGETIO_DSTCTL     _IO('T', 2)
#define TARGETIO_PROCCTL    _IO('T', 3)
#define TARGETIO_WRITE      _IO('T', 4)
#define TARGETIO_STATUS     _IO('T', 5)
#define TARGETIO_FLUSH      _IO('T', 6)
#define TARGETIO_MONITOR    _IO('T', 7)
#define TARGETIO_RESET      _IO('T', 8)
#define TARGETIO_TEST_SPU_ID_CHANGE _IO('T', 9)

/* bit7 ~ bit0: for src type*/
#define TARGET_SRC_MEM          0
#define TARGET_SRC_PBUF         1
#define TARGET_SRC_TYPE_MASK    0xff

/* bit31 ~ bit24: for src control*/
#define TARGET_SRC_WITHCSS      0x01000000
#define TARGET_SRC_CTRL_MASK    0xff000000

#define SRC_CFG_NUM 128
typedef struct src_cfg{
    unsigned32 start;
    unsigned32 size;
    unsigned32 opt;             /* bit [1:0]:endian, bit [2] DRM, bit[3] w/ PTS info */
    unsigned32 pts;
}src_cfg;

typedef struct target_src_request {
    unsigned32 type;
    unsigned32 cfg_table_num;
    src_cfg cfg_table[SRC_CFG_NUM];
} target_src_request;

/* HIU target type */
#define TARGET_DST_AUDIOBUF         0
#define TARGET_DST_VIDEOBUF         1
#define TARGET_DST_USERBUF          2
#define TARGET_DST_PARSER_DVDPACK   3
#if defined(AML_ATHENA)
#define TARGET_DST_DEMUX_TS         4
#define TARGET_DST_DEMUX_RMSYS      5
#endif

#define DST_BUF_NUM 4
typedef struct dst_buf_cfg{
    unsigned32 start;
    unsigned32 size;
    unsigned32 opt;         /* bit [1:0] endian, bit [2] DIVX DRM */
}dst_buf_cfg;

typedef void (*hiu_callback_t)(void *arg);
typedef struct target_callback_param_s
{
    hiu_callback_t cb;
    void *arg;
}target_callback_param_t;

typedef struct target_dst_request {
    unsigned32      type;
    unsigned32      stream_id;
    dst_buf_cfg     descfg[DST_BUF_NUM]; /* TARGET_DST_PASER_DVDPACK, descfg[0] ,descfg[1],
                                            descfg[2] configure the audiobuf, videobuf,
                                            userbuf, sub-pbuf respectly */
} target_dst_request;

#define TARGET_PROC_NONE    0
#define TARGET_PROC_CSS     1
#define TARGET_PROC_DIVXDRM 2
#define TARGET_PROC_HVDDECRYPT 3

typedef struct target_proc_request {
    unsigned32 type;
    unsigned32 data0;
} target_proc_request;

#define TARGET_STATUS_LEVEL     0
#define TARGET_STATUS_PTS       1
#define TARGET_STATUS_FIRSTPTS  2
#define TARGET_STATUS_STATUS    3
#define TARGET_STATUS_REMAIN    4

typedef struct target_status_request {
    unsigned32 type;
    unsigned32 data0;
    unsigned32 data1;
    unsigned32 data2;
    unsigned32 data3;
    /*for TARGET_DST_PASER_DVDPACK,
      data0,data1,data2 is set the level(bytes)
      of the audiobuf, videobuf, userbuf respectly*/
} target_status_request;

#define TARGET_MONITOR_AUDIO        0x1
#define TARGET_MONITOR_VIDEO        0x2
#define TARGET_MONITOR_TYPEMASK     0xf
#define TARGET_MONITOR_RELEASE      0x80
#define TARGET_MONITOR_RELEASEAUDIO (TARGET_MONITOR_RELEASE | TARGET_MONITOR_AUDIO)
#define TARGET_MONITOR_RELEASEVIDEO (TARGET_MONITOR_RELEASE | TARGET_MONITOR_VIDEO)
#define TARGET_MONITOR_RELEASEALL   (TARGET_MONITOR_RELEASE | TARGET_MONITOR_AUDIO | TARGET_MONITOR_VIDEO)

typedef struct target_monitor_request {
    unsigned    enable;
    unsigned    audio_level;
    unsigned    video_level;
    unsigned    time;
} target_monitor_request;

#define TARGET_RESET_AUDIO    0x1
#define TARGET_RESET_VIDEO    0x2
#define TARGET_RESET_SUBP     0x4
#define TARGET_RESET_SEAMLESS 0x80

typedef struct target_reset_request {
    unsigned    flag;
} target_reset_request;

avfs_device_driver hiu_initialize( avfs_device_major_number major, avfs_device_minor_number minor,void * arg);
avfs_device_driver hiu_open( avfs_device_major_number major, avfs_device_minor_number minor,void * arg);
avfs_device_driver hiu_read( avfs_device_major_number major, avfs_device_minor_number minor,void * arg);
avfs_device_driver hiu_write( avfs_device_major_number major, avfs_device_minor_number minor,void * arg);
avfs_device_driver hiu_control( avfs_device_major_number major, avfs_device_minor_number minor,void * arg);
avfs_device_driver hiu_close( avfs_device_major_number major, avfs_device_minor_number minor,void * arg);

#define DEVICE_TABLE_TARGET_DEVICE \
    { \
        hiu_initialize, \
        hiu_open, \
        hiu_close, \
        hiu_read, \
        hiu_write, \
        hiu_control, \
    }
    
#endif /* TARGETDEV_H_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?