blob: 1bd78f559a30a8111319a8b2f8a9358b4052e8e0 [file] [log] [blame]
/*
** sysspec.h
** Header file for sysspec.c
** BYTEmark (tm)
** BYTE's Native Mode Benchmarks
** Rick Grehan, BYTE Magazine
**
** Creation:
** Revision: 3/95
**
** DISCLAIMER
** The source, executable, and documentation files that comprise
** the BYTEmark benchmarks are made available on an "as is" basis.
** This means that we at BYTE Magazine have made every reasonable
** effort to verify that the there are no errors in the source and
** executable code. We cannot, however, guarantee that the programs
** are error-free. Consequently, McGraw-HIll and BYTE Magazine make
** no claims in regard to the fitness of the source code, executable
** code, and documentation of the BYTEmark.
** Furthermore, BYTE Magazine, McGraw-Hill, and all employees
** of McGraw-Hill cannot be held responsible for any damages resulting
** from the use of this code or the results obtained from using
** this code.
*/
/*
** Standard includes
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "nmglobal.h"
#if 0 /*!defined(__APPLE__)*/
#include <malloc.h>
#endif
/*
** System-specific includes
*/
#ifdef DOS16MEM
#include "dos.h"
#endif
/* #include "time.h"
#include "io.h"
#include "fcntl.h"
#include "sys\stat.h" */
/* Removed for MSVC++
#include "alloc.h"
*/
/*
** MAC Time Manager routines (from Code Warrior)
*/
#ifdef MACTIMEMGR
#include <memory.h>
#include <lowmem.h>
#include <Types.h>
#include <Timer.h>
extern struct TMTask myTMTask;
extern long MacHSTdelay,MacHSTohead;
#endif
/*
** Windows 3.1 timer defines
*/
#ifdef WIN31TIMER
#include <windows.h>
#include <toolhelp.h>
TIMERINFO win31tinfo;
HANDLE hThlp;
FARPROC lpfn;
#endif
/**************
** EXTERNALS **
**************/
extern ulong mem_array[2][MEM_ARRAY_SIZE];
extern int mem_array_ents;
extern int global_align;
/****************************
** FUNCTION PROTOTYPES **
****************************/
farvoid *AllocateMemory(unsigned long nbytes,
int *errorcode);
void FreeMemory(farvoid *mempointer,
int *errorcode);
void MoveMemory( farvoid *destination,
farvoid *source,
unsigned long nbytes);
#ifdef DOS16MEM
void FarDOSmemmove(farvoid *destination,
farvoid *source,
unsigned long nbytes);
#endif
void InitMemArray(void);
int AddMemArray(ulong true_addr, ulong adj_addr);
int RemoveMemArray(ulong adj_addr,ulong *true_addr);
void ReportError(char *context, int errorcode);
void ErrorExit();
void CreateFile(char *filename,
int *errorcode);
#ifdef DOS16
int bmOpenFile(char *fname,
int *errorcode);
void CloseFile(int fhandle,
int *errorcode);
void readfile(int fhandle,
unsigned long offset,
unsigned long nbytes,
void *buffer,
int *errorcode);
void writefile(int fhandle,
unsigned long offset,
unsigned long nbytes,
void *buffer,
int *errorcode);
#endif
#ifdef LINUX
FILE *bmOpenFile(char *fname,
int *errorcode);
void CloseFile(FILE *fhandle,
int *errorcode);
void readfile(FILE *fhandle,
unsigned long offset,
unsigned long nbytes,
void *buffer,
int *errorcode);
void writefile(FILE *fhandle,
unsigned long offset,
unsigned long nbytes,
void *buffer,
int *errorcode);
#endif
unsigned long StartStopwatch();
unsigned long StopStopwatch(unsigned long startticks);
unsigned long TicksToSecs(unsigned long tickamount);
double TicksToFracSecs(unsigned long tickamount);