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 + -
显示快捷键?