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