brktree_reg.h

来自「基于组件方式开发操作系统的OSKIT源代码」· C头文件 代码 · 共 518 行 · 第 1/2 页

H
518
字号
typedef volatile struct bt848_registers* bt848_ptr_t;#if 0/* force people to be aware of the new struct */#define BKTR_DSTATUS			0x000#define BKTR_IFORM			0x004#define BKTR_TDEC			0x008#define BKTR_EVEN_CROP			0x00C#define BKTR_ODD_CROP			0x08C#define BKTR_E_VDELAY_LO		0x010#define BKTR_O_VDELAY_LO		0x090#define BKTR_E_VACTIVE_LO		0x014#define BKTR_O_VACTIVE_LO		0x094#define BKTR_E_DELAY_LO			0x018#define BKTR_O_DELAY_LO			0x098#define BKTR_E_HACTIVE_LO		0x01C#define BKTR_O_HACTIVE_LO		0x09C#define BKTR_E_HSCALE_HI		0x020#define BKTR_O_HSCALE_HI		0x0A0#define BKTR_E_HSCALE_LO		0x024#define BKTR_O_HSCALE_LO		0x0A4#define BKTR_BRIGHT			0x028#define BKTR_E_CONTROL			0x02C#define BKTR_O_CONTROL			0x0AC#define BKTR_CONTRAST_LO		0x030#define BKTR_SAT_U_LO			0x034#define BKTR_SAT_V_LO			0x038#define BKTR_HUE			0x03C#define BKTR_E_SCLOOP			0x040#define BKTR_O_SCLOOP			0x0C0#define BKTR_OFORM			0x048#define BKTR_E_VSCALE_HI		0x04C#define BKTR_O_VSCALE_HI		0x0CC#define BKTR_E_VSCALE_LO		0x050#define BKTR_O_VSCALE_LO		0x0D0#define BKTR_TEST			0x054#define BKTR_ADELAY			0x060#define BKTR_BDELAY			0x064#define BKTR_ADC			0x068#define BKTR_E_VTC			0x06C#define BKTR_O_VTC			0x0EC#define BKTR_SRESET			0x07C#define BKTR_COLOR_FMT			0x0D4#define BKTR_COLOR_CTL			0x0D8#define BKTR_CAP_CTL			0x0DC#define BKTR_VBI_PACK_SIZE		0x0E0#define BKTR_VBI_PACK_DEL		0x0E4#define BKTR_INT_STAT			0x100#define BKTR_INT_MASK			0x104#define BKTR_RISC_COUNT			0x120#define BKTR_RISC_STRT_ADD		0x114#define BKTR_GPIO_DMA_CTL		0x10C#define BKTR_GPIO_OUT_EN		0x118#define BKTR_GPIO_REG_INP		0x11C#define BKTR_GPIO_DATA			0x200#define BKTR_I2C_CONTROL		0x110#endif /* 0 *//* * device support for onboard tv tuners *//* description of the LOGICAL tuner */struct TVTUNER {	int		frequency;	u_char		chnlset;	u_char		channel;	u_char		band;	u_char		afc; 	u_char		radio_mode;	/* current mode of the radio mode */};/* description of the PHYSICAL tuner */struct TUNER {	char*		name;	u_char		type;	u_char		pllControl[4];	u_char		bandLimits[ 2 ];	u_char		bandAddrs[ 4 ];        /* 3 first for the 3 TV 					       ** bands. Last for radio 					       ** band (0x00=NoRadio).					       */};/* description of the card */#define EEPROMBLOCKSIZE		32struct CARDTYPE {	unsigned int		card_id;	/* card id (from #define's) */	char*			name;	const struct TUNER*	tuner;		/* Tuner details */	u_char			tuner_pllAddr;	/* Tuner i2c address */	u_char			dbx;		/* Has DBX chip? */	u_char			msp3400c;	/* Has msp3400c chip? */	u_char			eepromAddr;	u_char			eepromSize;	/* bytes / EEPROMBLOCKSIZE */	u_char			audiomuxs[ 5 ];	/* tuner, ext, int/unused,						    mute, present */};struct format_params {  /* Total lines, lines before image, image lines */  int vtotal, vdelay, vactive;  /* Total unscaled horizontal pixels, pixels before image, image pixels */  int htotal, hdelay, hactive;  /* Scaled horizontal image pixels, Total Scaled horizontal pixels */  int  scaled_hactive, scaled_htotal;  /* frame rate . for ntsc is 30 frames per second */  int frame_rate;  /* A-delay and B-delay */  u_char adelay, bdelay;  /* Iform XTSEL value */  int iform_xtsel;};#ifdef __FreeBSD__struct bktr_i2c_softc {	device_t iicbus;	device_t smbus;};#endiftypedef struct bktr_clip bktr_clip_t;/* * BrookTree 848  info structure, one per bt848 card installed. */struct bktr_softc {#ifdef __bsdi__    struct device bktr_dev;	/* base device */    struct isadev bktr_id;	/* ISA device */    struct intrhand bktr_ih;	/* interrupt vectoring */#define pcici_t pci_devaddr_t#endif#ifdef __FreeBSD__    struct bktr_i2c_softc i2c_sc;	/* bt848_i2c device */#endif    bt848_ptr_t base;		/* Bt848 register physical address */    vm_offset_t phys_base;	/* Bt848 register physical address */    pcici_t	tag;		/* PCI tag, for doing PCI commands */    vm_offset_t bigbuf;		/* buffer that holds the captured image */    int		alloc_pages;	/* number of pages in bigbuf */    struct proc	*proc;		/* process to receive raised signal */    int		signal;		/* signal to send to process */    int		clr_on_start;	/* clear cap buf on capture start? */#define	METEOR_SIG_MODE_MASK	0xffff0000#define	METEOR_SIG_FIELD_MODE	0x00010000#define	METEOR_SIG_FRAME_MODE	0x00000000    vm_offset_t  dma_prog;    vm_offset_t  odd_dma_prog;    char         dma_prog_loaded;    struct meteor_mem *mem;	/* used to control sync. multi-frame output */    u_long	synch_wait;	/* wait for free buffer before continuing */    short	current;	/* frame number in buffer (1-frames) */    short	rows;		/* number of rows in a frame */    short	cols;		/* number of columns in a frame */    int		capture_area_x_offset; /* Usually the full 640x480(NTSC) image is */    int		capture_area_y_offset; /* captured. The capture area allows for */    int		capture_area_x_size;   /* example 320x200 pixels from the centre */    int		capture_area_y_size;   /* of the video image to be captured. */    char	capture_area_enabled;  /* When TRUE use user's capture area. */    int		pixfmt;         /* active pixel format (idx into fmt tbl) */    int		pixfmt_compat;  /* Y/N - in meteor pix fmt compat mode */    u_long	format;		/* frame format rgb, yuv, etc.. */    short	frames;		/* number of frames allocated */    int		frame_size;	/* number of bytes in a frame */    u_long	fifo_errors;	/* number of fifo capture errors since open */    u_long	dma_errors;	/* number of DMA capture errors since open */    u_long	frames_captured;/* number of frames captured since open */    u_long	even_fields_captured; /* number of even fields captured */    u_long	odd_fields_captured; /* number of odd fields captured */    u_long	range_enable;	/* enable range checking ?? */    u_short     capcontrol;     /* reg 0xdc capture control */    u_short     bktr_cap_ctl;    volatile u_int	flags;#define	METEOR_INITALIZED	0x00000001#define	METEOR_OPEN		0x00000002 #define	METEOR_MMAP		0x00000004#define	METEOR_INTR		0x00000008#define	METEOR_READ		0x00000010	/* XXX never gets referenced */#define	METEOR_SINGLE		0x00000020	/* get single frame */#define	METEOR_CONTIN		0x00000040	/* continuously get frames */#define	METEOR_SYNCAP		0x00000080	/* synchronously get frames */#define	METEOR_CAP_MASK		0x000000f0#define	METEOR_NTSC		0x00000100#define	METEOR_PAL		0x00000200#define	METEOR_SECAM		0x00000400#define	BROOKTREE_NTSC		0x00000100	/* used in video open() and */#define	BROOKTREE_PAL		0x00000200	/* in the kernel config */#define	BROOKTREE_SECAM		0x00000400	/* file */#define	METEOR_AUTOMODE		0x00000800#define	METEOR_FORM_MASK	0x00000f00#define	METEOR_DEV0		0x00001000#define	METEOR_DEV1		0x00002000#define	METEOR_DEV2		0x00004000#define	METEOR_DEV3		0x00008000#define METEOR_DEV_SVIDEO	0x00006000#define METEOR_DEV_RGB		0x0000a000#define	METEOR_DEV_MASK		0x0000f000#define	METEOR_RGB16		0x00010000#define	METEOR_RGB24		0x00020000#define	METEOR_YUV_PACKED	0x00040000#define	METEOR_YUV_PLANAR	0x00080000#define	METEOR_WANT_EVEN	0x00100000	/* want even frame */#define	METEOR_WANT_ODD		0x00200000	/* want odd frame */#define	METEOR_WANT_MASK	0x00300000#define METEOR_ONLY_EVEN_FIELDS	0x01000000#define METEOR_ONLY_ODD_FIELDS	0x02000000#define METEOR_ONLY_FIELDS_MASK 0x03000000#define METEOR_YUV_422		0x04000000#define	METEOR_OUTPUT_FMT_MASK	0x040f0000#define	METEOR_WANT_TS		0x08000000	/* time-stamp a frame */#define METEOR_RGB		0x20000000	/* meteor rgb unit */#define METEOR_FIELD_MODE	0x80000000    u_char	tflags;#define	TUNER_INITALIZED	0x00000001#define	TUNER_OPEN		0x00000002     u_short	fps;		/* frames per second */    struct meteor_video video;    struct TVTUNER	tuner;    struct CARDTYPE	card;    u_char		audio_mux_select;	/* current mode of the audio */    u_char		audio_mute_state;	/* mute state of the audio */    u_char		format_params;    u_long              current_sol;    u_long              current_col;    int                 clip_start;    int                 line_length;    int                 last_y;    int                 y;    int                 y2;    int                 yclip;    int                 yclip2;    int                 max_clip_node;    bktr_clip_t		clip_list[100];    int                 reverse_mute;    int                 bt848_tuner;    int                 bt848_card;    u_long              id;#define BT848_USE_XTALS 0#define BT848_USE_PLL   1    int                 xtal_pll_mode;	/* Use XTAL or PLL mode for PAL/SECAM */    int                 remote_control;      /* remote control detected */    int                 remote_control_addr; /* remote control i2c address */};typedef struct bktr_softc bktr_reg_t;typedef struct bktr_softc* bktr_ptr_t;#define Bt848_MAX_SIGN 16struct bt848_card_sig {  int card;  int tuner;  u_char signature[Bt848_MAX_SIGN];};

⌨️ 快捷键说明

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