/usr/include/allegro/platform/aintlnx.h is in liballegro4-dev 2:4.4.2-10.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 | /* ______ ___ ___
* /\ _ \ /\_ \ /\_ \
* \ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___
* \ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\
* \ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \
* \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/
* \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/
* /\____/
* \_/__/
*
* Some definitions for internal use by the Linux console code.
*
* By George Foot.
*
* See readme.txt for copyright information.
*/
#ifndef AINTLNX_H
#define AINTLNX_H
#ifdef __cplusplus
extern "C" {
#endif
/**************************************/
/************ Driver lists ************/
/**************************************/
extern _DRIVER_INFO _linux_gfx_driver_list[];
extern _DRIVER_INFO _linux_keyboard_driver_list[];
extern _DRIVER_INFO _linux_mouse_driver_list[];
extern _DRIVER_INFO _linux_timer_driver_list[];
/* _linux_joystick_driver_list is in aintunix.h */
/****************************************/
/************ Memory mapping ************/ /* (src/linux/lmemory.c) */
/****************************************/
/* struct MAPPED_MEMORY: Used to describe a block of memory mapped
* into our address space (in particular, the video memory).
*/
struct MAPPED_MEMORY {
unsigned int base, size; /* linear address and size of block */
int perms; /* PROT_READ | PROT_WRITE, etc */
void *data; /* pointer to block after mapping */
};
extern int __al_linux_have_ioperms;
int __al_linux_init_memory (void);
int __al_linux_shutdown_memory (void);
int __al_linux_map_memory (struct MAPPED_MEMORY *info);
int __al_linux_unmap_memory (struct MAPPED_MEMORY *info);
/******************************************/
/************ Standard drivers ************/ /* (src/linux/lstddrv.c) */
/******************************************/
/* This "standard drivers" business is mostly a historical artifact.
* It was highly over-engineered, now simplified. It has been mostly
* superseded by the newer, shinier, better bg_man. But hey, at least
* it didn't suffer the fate of its cousin lasyncio.c, now dead,
* buried, and without a tombstone to show for it. --pw
*/
typedef struct STD_DRIVER {
unsigned type; /* One of the below STD_ constants */
int (*update) (void);
void (*resume) (void);
void (*suspend) (void);
int fd; /* Descriptor of the opened device */
} STD_DRIVER;
#define STD_MOUSE 0
#define STD_KBD 1
#define N_STD_DRIVERS 2
/* List of standard drivers */
extern STD_DRIVER *__al_linux_std_drivers[];
/* Exported functions */
int __al_linux_add_standard_driver (STD_DRIVER *spec);
int __al_linux_remove_standard_driver (STD_DRIVER *spec);
void __al_linux_update_standard_drivers (int threaded);
void __al_linux_suspend_standard_drivers (void);
void __al_linux_resume_standard_drivers (void);
/******************************************/
/************ Console routines ************/ /* (src/linux/lconsole.c) */
/******************************************/
#define N_CRTC_REGS 24
#define N_ATC_REGS 21
#define N_GC_REGS 9
#define N_SEQ_REGS 5
#define MISC_REG_R 0x03CC
#define MISC_REG_W 0x03C2
#define ATC_REG_IW 0x03C0
#define ATC_REG_R 0x03C1
#define GC_REG_I 0x03CE
#define GC_REG_RW 0x03CF
#define SEQ_REG_I 0x03C4
#define SEQ_REG_RW 0x03C5
#define PEL_REG_IW 0x03C8
#define PEL_REG_IR 0x03C7
#define PEL_REG_D 0x03C9
#define _is1 0x03DA
#define ATC_DELAY 10 /* microseconds - for usleep() */
#define VGA_MEMORY_BASE 0xA0000
#define VGA_MEMORY_SIZE 0x10000
#define VGA_FONT_SIZE 0x02000
/* This structure is also used for video state saving/restoring, therefore it
* contains fields that are used only when saving/restoring the text mode. */
typedef struct MODE_REGISTERS
{
unsigned char crt[N_CRTC_REGS];
unsigned char seq[N_SEQ_REGS];
unsigned char atc[N_ATC_REGS];
unsigned char gc[N_GC_REGS];
unsigned char misc;
unsigned char *ext;
unsigned short ext_count;
unsigned char *text_font1;
unsigned char *text_font2;
unsigned long flags;
union {
unsigned char vga[768];
PALETTE allegro;
} palette;
} MODE_REGISTERS;
extern int __al_linux_vt;
extern int __al_linux_console_fd;
extern int __al_linux_prev_vt;
extern int __al_linux_got_text_message;
extern struct termios __al_linux_startup_termio;
extern struct termios __al_linux_work_termio;
int __al_linux_use_console (void);
int __al_linux_leave_console (void);
int __al_linux_console_graphics (void);
int __al_linux_console_text (void);
int __al_linux_wait_for_display (void);
/*************************************/
/************ VGA helpers ************/ /* (src/linux/lvgahelp.c) */
/*************************************/
int __al_linux_init_vga_helpers (void);
int __al_linux_shutdown_vga_helpers (void);
void __al_linux_screen_off (void);
void __al_linux_screen_on (void);
void __al_linux_clear_vram (void);
void __al_linux_set_vga_regs (MODE_REGISTERS *regs);
void __al_linux_get_vga_regs (MODE_REGISTERS *regs);
void __al_linux_save_gfx_mode (void);
void __al_linux_restore_gfx_mode (void);
void __al_linux_save_text_mode (void);
void __al_linux_restore_text_mode (void);
#define __just_a_moment() usleep(ATC_DELAY)
/**************************************/
/************ VT switching ************/ /* (src/linux/vtswitch.c) */
/**************************************/
/* signals for VT switching */
#define SIGRELVT SIGUSR1
#define SIGACQVT SIGUSR2
int __al_linux_init_vtswitch (void);
int __al_linux_done_vtswitch (void);
void __al_linux_acquire_bitmap (BITMAP *bmp);
void __al_linux_release_bitmap (BITMAP *bmp);
int __al_linux_set_display_switch_mode (int mode);
void __al_linux_display_switch_lock (int lock, int foreground);
extern volatile int __al_linux_switching_blocked;
/**************************************/
/************ Mode setting ************/ /* (src/linux/lgraph.c) */
/**************************************/
typedef struct GFX_MODE_INFO {
int w,h,c; /* width, height, colour depth */
int id; /* ID code, for driver's reference */
void *data; /* data for driver's use in setting the mode */
} GFX_MODE_INFO;
BITMAP *__al_linux_gfx_mode_set_helper (
int w, int h, int v_w, int v_h, int c,
GFX_DRIVER *driver, GFX_MODE_INFO *mode,
int (*set_video_mode) (GFX_MODE_INFO *mode),
void (*set_width) (int w)
);
/*******************************/
/************ Mouse ************/ /* (src/linux/lmouse.c) */
/*******************************/
typedef struct INTERNAL_MOUSE_DRIVER {
int device;
int (*process) (unsigned char *buf, int buf_size);
int num_buttons;
} INTERNAL_MOUSE_DRIVER;
int __al_linux_mouse_init (INTERNAL_MOUSE_DRIVER *drv);
void __al_linux_mouse_exit (void);
void __al_linux_mouse_position (int x, int y);
void __al_linux_mouse_set_range (int x1, int y_1, int x2, int y2);
void __al_linux_mouse_set_speed (int xspeed, int yspeed);
void __al_linux_mouse_get_mickeys (int *mickeyx, int *mickeyy);
void __al_linux_mouse_handler (int x, int y, int z, int b);
#ifdef __cplusplus
}
#endif
/* VGA register access helpers */
/* This is conditional because configure may have disabled VGA support */
#ifdef ALLEGRO_LINUX_VGA
#include "allegro/internal/aintern.h"
#include "allegro/internal/aintvga.h"
#endif
/* Functions for querying the framebuffer, for the fbcon driver */
#if (defined ALLEGRO_LINUX_FBCON) && (!defined ALLEGRO_WITH_MODULES)
extern int __al_linux_get_fb_color_depth(void);
extern int __al_linux_get_fb_resolution(int *width, int *height);
#endif
#endif /* ifndef AINTLNX_H */
|