📄 tvpfilter.h
字号:
/*****************************************************************************
* Property of Texas Instruments Incorporated, Copyright 2004
* All rights reserved
******************************************************************************/
/*********************************************************************
*
* Description:
* TVPFILTER.H contains public definitions related to the section filtering
*
* Contents:
* Control structures
* Flag definitions
* Type definitions
* Function prototypes
*
**********************************************************************/
/*********************************************************************
*
* $Revision: $
*
* $History: TvpFilter.h $
*
*********************************************************************/
#ifndef TVP_FILTER_DOT_H_IS_DEFINED
#define TVP_FILTER_DOT_H_IS_DEFINED
/*********************************************************************/
/* Filter types */
#define TVP_NORMAL_FILTER 0x00
#define TVP_GROUP_FILTER 0x01
#define TVP_FILT_TYPE_MASK 0x01
#define TVP_FILT_LINEAR 0x00
#define TVP_FILT_LINKED_LIST 0x80
#define TVP_FILT_BUFFER_MASK 0x80
/*********************************************************************/
/* Group mode */
#define TVP_FILTER_GROUP_START 0x01
#define TVP_FILTER_GROUP_STOP 0x02
#define TVP_FILTER_GROUP_MATCH 0x04
/*********************************************************************/
/* Filter IRQ lever */
#define TVP_FILT_LEVEL1 0x00
#define TVP_FILT_LEVEL2 0x20
#define TVP_FILT_LEVEL_MASK 0x20
#define TVP_FILT_IRQ_ENABLE 0x40
#define TVP_FILT_IRQ_DISABLE 0x00
#define TVP_FILT_IRQ_SHIFT 6
/*********************************************************************/
/* Filter Status */
#define TVP_FILTER_DISABLED 0x00
#define TVP_FILTER_ENABLED 0x01
/*********************************************************************/
/* Filter Max parmeters */
#define TVP_MAX_HW_FILT 32
/*********************************************************************/
/* Type definitions */
typedef unsigned long TvpTvpFiltTable;
typedef unsigned char * TvpFiltHeader;
typedef unsigned long TvpFiltIrqCtrl;
typedef enum {
TVP_FILT_MODE_RESET = 0x00, /* logical channel cache/filters reset. */
TVP_FILT_MODE_DISABLED = 0x01, /* logical channel filters disabled. */
TVP_FILT_MODE_RUN = 0x02, /* normal operation. */
TVP_FILT_MODE_INVALID = 0xFF /* invalid */
} TvpFiltMode;
typedef enum {
TVP_FILTER_CONT_BUF = 0x00,
TVP_FILTER_INIT_BUF = 0x01
} TvpFiltQueryType;
/*********************************************************************/
/* Structure definitions */
typedef struct {
unsigned char filterType; /* Filter type */
unsigned char filterIndex; /* Hardware filter index */
unsigned char tableIndex; /* filter table */
unsigned char logical_channel; /* channel number */
unsigned char group_mode; /* start, stop or match */
unsigned char filter_size; /*bytes to filter */
unsigned short reserved2;
unsigned char filterElements[16]; /* Filter Pattern */
unsigned char bitMask[16]; /* Bit Mask 1:care,0:do not care */
unsigned char negativeMask[16]; /* Negative mode Mask: 1:positive,0:negative*/
} TvpFilter;
typedef struct {
unsigned char numMatches; /* Number of filter match */
unsigned char logical_channel; /* logical channel index */
unsigned short reserved1;
unsigned long size; /* size of section */
unsigned char *sectionPtr; /* pointer to starting section data */
unsigned char *linkPtr; /* link pointers of section*/
unsigned char *sectionEndPtr; /* pointer to the buffer with the section end */
TvpFilter *filterPtr[32]; /* holds up to 32 filter pointers */
} TvpFilterExtract;
/*********************************************************************/
/* Function prototypes */
#ifdef __cplusplus
extern "C" {
#endif
TVP_FERROR tvpFiltFilterAdd(TvpFilter *filterPtr, TvpChanNumber logical_chan);
TVP_FERROR tvpFiltFilterDelete(TvpFilter *filterPtr, TvpChanNumber logical_chan);
TVP_FERROR tvpFiltFilterEnable(TvpFilter *filterPtr, TvpChanNumber logical_chan);
TVP_FERROR tvpFiltFilterDisable(TvpFilter *filterPtr, TvpChanNumber logical_chan);
TVP_FERROR tvpFiltStatusRead(TvpFilter *filterPtr, unsigned char *status);
TVP_FERROR tvpFiltFilterPtrRead(TvpFilterExtract *extractPtr, unsigned char irq_level);
TVP_FERROR tvpFiltSectionFree(TvpFilterExtract *extractPtr);
TVP_FERROR tvpFiltDataAcquire(TvpFilterExtract *extractPtr, unsigned char *dest);
TVP_FERROR tvpFiltHeaderRead(TvpFilterExtract *extractPtr, TvpFiltHeader header);
TVP_FERROR tvpFiltReadDataWithOffset(TvpFilterExtract *extractPtr, unsigned short offset, unsigned short size, unsigned char *dataPtr);
TVP_FERROR tvpFiltInit(TvpIntNum irq);
TVP_FERROR tvpFiltBufferAdd(long *bufferPtr, long size, TvpChanNumber logical_chan);
TVP_FERROR tvpFiltBufferFree(long **bufferPtr, long *size, TvpChanNumber logical_chan);
TVP_FERROR tvpFiltModeSet(TvpFiltMode mode, TvpChanNumber logical_chan);
TVP_FERROR tvpFiltModeRead(unsigned char *mode, TvpChanNumber logical_chan);
long tvpFiltBufferSizeQuery(unsigned long number, TvpFiltQueryType type);
TVP_FERROR tvpFiltChanBufferEnable(long *buffer, unsigned long size, TvpChanNumber logical_chan, TvpFiltIrqCtrl irq_pri);
TVP_FERROR tvpFiltChanBufferDisable(TvpChanNumber logical_chan);
#ifdef __cplusplus
};
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -