//------------------------------------------------------------------- // sisaccel.h // // programmer: ALLAN CRUSE // written on: 02 NOV 2003 //------------------------------------------------------------------- #define MMIO_BASE_ADDRESS 0x00008000 #define MMIO_MEMORY_RANGE ( 4 << 10) #define TSEQ 0x3C4 #define CRTC 0x3D4 typedef unsigned char u8; typedef unsigned short u16; typedef unsigned long u32; typedef unsigned long long u64; u32 *src_baseaddr = (u32*)0x8200; u16 *src_pitchval = (u16*)0x8204; u16 *agp_baseword = (u16*)0x8206; u16 *src_origin_y = (u16*)0x8208; u16 *src_origin_x = (u16*)0x820A; u16 *dst_origin_y = (u16*)0x820C; u16 *dst_origin_x = (u16*)0x820E; u32 *dst_baseaddr = (u32*)0x8210; u16 *dst_pitchval = (u16*)0x8214; u16 *mergecontrol = (u16*)0x8216; u16 *rect_size_hz = (u16*)0x8218; u16 *rect_size_vt = (u16*)0x821A; u32 *pat_fg_color = (u32*)0x821C; u32 *pat_bg_color = (u32*)0x8220; u32 *src_fg_color = (u32*)0x8224; u32 *src_bg_color = (u32*)0x8228; u64 *monomask_reg = (u64*)0x822C; u16 *clip_lft_reg = (u16*)0x8234; u16 *clip_top_reg = (u16*)0x8236; u16 *clip_rht_reg = (u16*)0x8238; u16 *clip_bot_reg = (u16*)0x823A; u32 *exec_command = (u32*)0x823C; u32 *queue_origin = (u32*)0x85C0; u32 *cmd_queue_wr = (u32*)0x85C4; u32 *cmd_queue_rd = (u32*)0x85C8; u32 *queue_status = (u32*)0x85CC; u16 *line_x0 = (u16*)0x8208; u16 *line_y0 = (u16*)0x820A; u16 *line_x1 = (u16*)0x820C; u16 *line_y1 = (u16*)0x820E; u16 *line_count = (u16*)0x8218; u16 *line_style_period = (u16*)0x821A; u32 *line_style_0 = (u32*)0x822C; u32 *line_style_1 = (u32*)0x8230; u16 *line_xn = (u16*)0x8300; u16 *line_yn = (u16*)0x8302; int map_engine_memory( int base, int size ) { int fd = open( "/dev/sismmio", O_RDWR ); if ( fd < 0 ) { perror( "/dev/sismmio" ); return -1; } int prot = PROT_READ | PROT_WRITE; int flag = MAP_FIXED | MAP_SHARED; void *mm = (void*)base; if ( mmap( mm, size, prot, flag, fd, base ) == MAP_FAILED ) { perror( "mmap" ); return -1; } close( fd ); } int map_screen_memory( int base, int size ) { int fd = open( "/dev/vram", O_RDWR ); if ( fd < 0 ) { perror( "/dev/vram" ); return -1; } int prot = PROT_READ | PROT_WRITE; int flag = MAP_FIXED | MAP_SHARED; void *mm = (void*)base; if ( mmap( mm, size, prot, flag, fd, 0 ) == MAP_FAILED ) { perror( "mmap" ); return -1; } close( fd ); }