146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner/* 246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner SDL - Simple DirectMedia Layer 346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Copyright (C) 1997-2006 Sam Lantinga 446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner This library is free software; you can redistribute it and/or 646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner modify it under the terms of the GNU Lesser General Public 746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner License as published by the Free Software Foundation; either 846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner version 2.1 of the License, or (at your option) any later version. 946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 1046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner This library is distributed in the hope that it will be useful, 1146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner but WITHOUT ANY WARRANTY; without even the implied warranty of 1246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Lesser General Public License for more details. 1446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 1546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner You should have received a copy of the GNU Lesser General Public 1646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner License along with this library; if not, write to the Free Software 1746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 1846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 1946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Sam Lantinga 2046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner slouken@libsdl.org 2146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner*/ 2246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include "SDL_config.h" 2346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 2446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#ifndef _SDL_gsvideo_h 2546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define _SDL_gsvideo_h 2646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 2746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include <sys/types.h> 2846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include <termios.h> 2946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include <linux/ps2/dev.h> 3046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include <linux/ps2/gs.h> 3146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 3246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include "SDL_mouse.h" 3346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include "SDL_mutex.h" 3446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include "../SDL_sysvideo.h" 3546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 3646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner/* Hidden "this" pointer for the video functions */ 3746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define _THIS SDL_VideoDevice *this 3846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 3946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 4046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner/* Private display data */ 4146be48730333120a7b939116cef075e61c12c703David 'Digit' Turnerstruct SDL_PrivateVideoData { 4246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner /* Gotta love that simple PS2 graphics interface. :) */ 4346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int console_fd; 4446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int memory_fd; 4546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner struct ps2_screeninfo saved_vinfo; 4646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 4746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner /* Ye olde linux keyboard code */ 4846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int current_vt; 4946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int saved_vt; 5046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int keyboard_fd; 5146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int saved_kbd_mode; 5246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner struct termios saved_kbd_termios; 5346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 5446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner /* Ye olde linux mouse code */ 5546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int mouse_fd; 5646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int cursor_drawn; 5746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 5846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner /* The memory mapped DMA area and associated variables */ 5946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner caddr_t mapped_mem; 6046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int pixels_len; 6146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int mapped_len; 6246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner struct ps2_image screen_image; 6346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int screen_image_size; 6446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner unsigned long long *head_tags_mem; 6546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner unsigned long long *image_tags_mem; 6646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner unsigned long long *tex_tags_mem; 6746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner unsigned long long *scale_tags_mem; 6846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int dma_pending; 6946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner}; 7046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner/* Old variable names */ 7146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define console_fd (this->hidden->console_fd) 7246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define memory_fd (this->hidden->memory_fd) 7346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define saved_vinfo (this->hidden->saved_vinfo) 7446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define current_vt (this->hidden->current_vt) 7546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define saved_vt (this->hidden->saved_vt) 7646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define keyboard_fd (this->hidden->keyboard_fd) 7746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define saved_kbd_mode (this->hidden->saved_kbd_mode) 7846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define saved_kbd_termios (this->hidden->saved_kbd_termios) 7946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define mouse_fd (this->hidden->mouse_fd) 8046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define cursor_drawn (this->hidden->cursor_drawn) 8146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define mapped_mem (this->hidden->mapped_mem) 8246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define pixels_len (this->hidden->pixels_len) 8346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define mapped_len (this->hidden->mapped_len) 8446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define screen_image (this->hidden->screen_image) 8546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define screen_image_size (this->hidden->screen_image_size) 8646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define head_tags_mem (this->hidden->head_tags_mem) 8746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define image_tags_mem (this->hidden->image_tags_mem) 8846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define tex_tags_mem (this->hidden->tex_tags_mem) 8946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define scale_tags_mem (this->hidden->scale_tags_mem) 9046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define dma_pending (this->hidden->dma_pending) 9146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 9246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner/* Shared between the mouse and video code for screen update scaling */ 9346be48730333120a7b939116cef075e61c12c703David 'Digit' Turnerextern int scaleimage_nonblock(int fd, 9446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner unsigned long long *tm, unsigned long long *sm); 9546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#endif /* _SDL_gsvideo_h */ 96