125 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /**
 | |
|     Structure definitions and commands used for IOCTL.
 | |
| 
 | |
|     @file nvt_stream_snd_ioctl.h
 | |
|     Copyright Novatek Microelectronics Corp. 2014. All rights reserved.
 | |
| 
 | |
|     This program is free software; you can redistribute it and/or modify
 | |
|     it under the terms of the GNU General Public License version 2 as
 | |
|     published by the Free Software Foundation.
 | |
| */
 | |
| 
 | |
| #ifndef _NVT_STREAM_IOCTL_H_
 | |
| #define _NVT_STREAM_IOCTL_H_
 | |
| 
 | |
| 
 | |
| 
 | |
| #define NVT_STREAM_IOC_MAGIC 'S'
 | |
| #include <asm/ioctl.h>
 | |
| #include <linux/types.h>
 | |
| typedef __u64 SSENDER_U64;
 | |
| typedef __u32 SSENDER_U32;
 | |
| typedef __u16 SSENDER_U16;
 | |
| typedef __u8 SSENDER_U8;
 | |
| typedef __s32 SSENDER_S32;
 | |
| 
 | |
| typedef struct {
 | |
| 	SSENDER_U64   tv_sec;     /* seconds */
 | |
| 	SSENDER_U64   tv_usec;    /* microseconds */
 | |
| } NVT_STREAM_TIME;
 | |
| 
 | |
| typedef struct {
 | |
| 	SSENDER_U32   bIsAudio;
 | |
| 	SSENDER_U32   ChanId; //start from 0
 | |
| 	SSENDER_S32   Timeout_ms; //msec
 | |
| } NVT_STREAM_IOC_IN_ARG;
 | |
| 
 | |
| typedef struct {
 | |
| 	SSENDER_U32   bIsAudio;
 | |
| 	SSENDER_U32   ChanId; //start from 0
 | |
| } NVT_STREAM_IOC_IN_RELEASE;
 | |
| 
 | |
| typedef struct {
 | |
| 	SSENDER_U64   ItemSN; //the serial no. of each stream data
 | |
| 	SSENDER_U64   MaxSN; //the max serial no. of the current stream
 | |
| 	SSENDER_U32   phy_Addr;
 | |
| 	SSENDER_U32   Size;
 | |
| 	SSENDER_U8    SVCLayerId;
 | |
| 	SSENDER_U8    FrameType;
 | |
| 	SSENDER_U8    is_new;
 | |
| 	SSENDER_U8    reserved;
 | |
| 	NVT_STREAM_TIME TimeStamp;
 | |
| } NVT_STREAM_IOC_OUT_ITEM;
 | |
| 
 | |
| typedef struct {
 | |
| 	SSENDER_U32   phy_Addr;
 | |
| 	SSENDER_U32   Size;
 | |
| 	SSENDER_U32   CodecType;
 | |
| } NVT_STREAM_IOC_OUT_VINFO;
 | |
| 
 | |
| typedef struct{
 | |
| 	SSENDER_U32   CodecType;
 | |
| 	SSENDER_U32   ChannelCnt;
 | |
| 	SSENDER_U32   BitsPerSample;
 | |
| 	SSENDER_U32   SampePerSecond;
 | |
| }NVT_STREAM_IOC_OUT_AINFO;
 | |
| 
 | |
| typedef struct {
 | |
| 	SSENDER_U32   phy_Addr;
 | |
| 	SSENDER_U32   Size;
 | |
| 	SSENDER_U32   bIsAutoRel;
 | |
| } NVT_STREAM_IOC_OUT_IPC_PARAM;
 | |
| 
 | |
| typedef struct {
 | |
| 	NVT_STREAM_IOC_IN_ARG InArg;
 | |
| 	NVT_STREAM_IOC_OUT_ITEM OutItem;
 | |
| } NVT_STREAM_IOCARG_GET_ITEM;
 | |
| 
 | |
| typedef struct {
 | |
| 	NVT_STREAM_IOC_IN_ARG InArg;
 | |
| 	NVT_STREAM_IOC_OUT_VINFO OutItem;
 | |
| } NVT_STREAM_IOCARG_GET_VDOINFO;
 | |
| 
 | |
| typedef struct{
 | |
|     NVT_STREAM_IOC_IN_ARG InArg;
 | |
|     NVT_STREAM_IOC_OUT_AINFO OutItem;
 | |
| }NVT_STREAM_IOCARG_GET_AINFO;
 | |
| 
 | |
| typedef struct {
 | |
| 	NVT_STREAM_IOC_OUT_IPC_PARAM OutItem;
 | |
| } NVT_STREAM_IOCARG_GET_IPC_PARAM;
 | |
| 
 | |
| typedef struct {
 | |
| 	NVT_STREAM_IOC_IN_ARG InArg;
 | |
| 	NVT_STREAM_IOC_OUT_ITEM OutItem;
 | |
| } NVT_STREAM_IOCARG_GETLOCK_ITEM;
 | |
| 
 | |
| typedef struct {
 | |
| 	NVT_STREAM_IOC_IN_RELEASE InArg;
 | |
| } NVT_STREAM_IOCARG_RELEASE_ITEM;
 | |
| 
 | |
| typedef struct {
 | |
| 	SSENDER_U32   IsReady;
 | |
| 	SSENDER_U64   ItemSN; //the serial no. of each stream data
 | |
| 	SSENDER_U32   Size;
 | |
| 	SSENDER_U32   PhyAddr;
 | |
| 	NVT_STREAM_TIME TimeStamp;
 | |
| } NVT_STREAM_IOC_OUT_POLL_RESULT;
 | |
| 
 | |
| typedef struct {
 | |
| 	NVT_STREAM_IOC_IN_ARG InArg;
 | |
| 	NVT_STREAM_IOC_OUT_POLL_RESULT OutPollResult;
 | |
| } NVT_STREAM_IOCARG_POLL_ITEM;
 | |
| 
 | |
| 
 | |
| //ioctl
 | |
| #define NVT_STREAM_IOCCMD_GET_ITEM      _IOR(NVT_STREAM_IOC_MAGIC, 1, NVT_STREAM_IOCARG_GET_ITEM)
 | |
| #define NVT_STREAM_IOCCMD_GET_VINFO     _IOR(NVT_STREAM_IOC_MAGIC, 2, NVT_STREAM_IOCARG_GET_VDOINFO)
 | |
| #define NVT_STREAM_IOCCMD_GET_IPC_PARAM _IOR(NVT_STREAM_IOC_MAGIC, 3, NVT_STREAM_IOCARG_GET_IPC_PARAM)
 | |
| #define NVT_STREAM_IOCCMD_POLL_ITEM     _IOR(NVT_STREAM_IOC_MAGIC, 4, NVT_STREAM_IOCARG_POLL_ITEM)
 | |
| #define NVT_STREAM_IOCCMD_GET_AINFO     _IOR(NVT_STREAM_IOC_MAGIC, 5, NVT_STREAM_IOCARG_GET_AINFO)
 | |
| #define NVT_STREAM_IOCCMD_GETLOCK_ITEM  _IOR(NVT_STREAM_IOC_MAGIC, 6, NVT_STREAM_IOCARG_GETLOCK_ITEM)
 | |
| #define NVT_STREAM_IOCCMD_RELEASE_ITEM  _IOR(NVT_STREAM_IOC_MAGIC, 7, NVT_STREAM_IOCARG_RELEASE_ITEM)
 | |
| 
 | |
| #endif
 | 
