1cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich/* 2cabb5dd768714a7df34469a096b5e1aa815a2c22Jack PalevichCopyright (C) 1996-1997 Id Software, Inc. 3cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 4cabb5dd768714a7df34469a096b5e1aa815a2c22Jack PalevichThis program is free software; you can redistribute it and/or 5cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichmodify it under the terms of the GNU General Public License 6cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichas published by the Free Software Foundation; either version 2 7cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichof the License, or (at your option) any later version. 8cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 9cabb5dd768714a7df34469a096b5e1aa815a2c22Jack PalevichThis program is distributed in the hope that it will be useful, 10cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichbut WITHOUT ANY WARRANTY; without even the implied warranty of 11cabb5dd768714a7df34469a096b5e1aa815a2c22Jack PalevichMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 13cabb5dd768714a7df34469a096b5e1aa815a2c22Jack PalevichSee the GNU General Public License for more details. 14cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 15cabb5dd768714a7df34469a096b5e1aa815a2c22Jack PalevichYou should have received a copy of the GNU General Public License 16cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichalong with this program; if not, write to the Free Software 17cabb5dd768714a7df34469a096b5e1aa815a2c22Jack PalevichFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 19cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich*/ 20cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// sys.h -- non-portable functions 21cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 22cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// 23cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// file IO 24cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// 25cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 26cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// returns the file size 27cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// return -1 if file is not present 28cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// the file should be in BINARY mode for stupid OSs that care 29cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichint Sys_FileOpenRead (const char *path, int *hndl); 30cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 31cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichint Sys_FileOpenWrite (const char *path); 32cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichvoid Sys_FileClose (int handle); 33cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichvoid Sys_FileSeek (int handle, int position); 34cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichint Sys_FileRead (int handle, void *dest, int count); 35cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichint Sys_FileWrite (int handle, const void *data, int count); 36cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichint Sys_FileTime (const char *path); 37cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichvoid Sys_mkdir (const char *path); 38cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 39cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// 40cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// memory protection 41cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// 42cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichvoid Sys_MakeCodeWriteable (unsigned long startaddr, unsigned long length); 43cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 44cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// 45cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// system IO 46cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// 47cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichvoid Sys_DebugLog(const char *file, const char *fmt, ...); 48cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 49cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichvoid Sys_Error (const char *error, ...); 50cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// an error will cause the entire program to exit 51cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 52cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichvoid Sys_Printf (const char *fmt, ...); 53cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// send text to the console 54cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 55cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichvoid Sys_Quit (void); 56cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 57cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichdouble Sys_FloatTime (void); 58cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 59cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichchar *Sys_ConsoleInput (void); 60cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 61cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichvoid Sys_Sleep (void); 62cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// called to yield for a little bit so as 63cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// not to hog cpu when paused or debugging 64cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 65cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichvoid Sys_SendKeyEvents (void); 66cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich// Perform Key_Event () callbacks until the input que is empty 67cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 68cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichvoid Sys_LowFPPrecision (void); 69cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichvoid Sys_HighFPPrecision (void); 70cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichvoid Sys_SetFPCW (void); 71cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich 72