diff options
author | Lisa Hsu <hsul@eecs.umich.edu> | 2003-11-14 10:52:42 -0500 |
---|---|---|
committer | Lisa Hsu <hsul@eecs.umich.edu> | 2003-11-14 10:52:42 -0500 |
commit | b8612cbda3625e27f109469a1f5416237c97fb41 (patch) | |
tree | e4d195ed22ab29000f1bcada6a560386b6fd1f8f /system/alpha/h/lib.h | |
parent | 488280e48b5f227b2eb35df5d6daba2ae94a1de6 (diff) | |
download | gem5-b8612cbda3625e27f109469a1f5416237c97fb41.tar.xz |
Import changeset
Diffstat (limited to 'system/alpha/h/lib.h')
-rw-r--r-- | system/alpha/h/lib.h | 517 |
1 files changed, 517 insertions, 0 deletions
diff --git a/system/alpha/h/lib.h b/system/alpha/h/lib.h new file mode 100644 index 000000000..def67fb25 --- /dev/null +++ b/system/alpha/h/lib.h @@ -0,0 +1,517 @@ +#ifndef __LIB_H_LOADED +#define __LIB_H_LOADED +/***************************************************************************** + + Copyright © 1993, 1994 Digital Equipment Corporation, + Maynard, Massachusetts. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, provided +that the copyright notice and this permission notice appear in all copies +of software and supporting documentation, and that the name of Digital not +be used in advertising or publicity pertaining to distribution of the software +without specific, written prior permission. Digital grants this permission +provided that you prominently mark, as not part of the original, any +modifications made to this software or documentation. + +Digital Equipment Corporation disclaims all warranties and/or guarantees +with regard to this software, including all implied warranties of fitness for +a particular purpose and merchantability, and makes no representations +regarding the use of, or the results of the use of, the software and +documentation in terms of correctness, accuracy, reliability, currentness or +otherwise; and you rely on the software, documentation and results solely at +your own risk. + +******************************************************************************/ + +/* + * $Id: lib.h,v 1.1.1.1 1997/10/30 23:27:16 verghese Exp $; + */ + +/* + * $Log: lib.h,v $ + * Revision 1.1.1.1 1997/10/30 23:27:16 verghese + * current 10/29/97 + * + * Revision 1.1 1995/06/23 00:18:57 berc + * Initial revision + * + * Revision 1.29 1995/04/05 21:46:10 cruz + * Added EB164 prototype for wr_bcache(). + * + * Revision 1.28 1995/04/03 18:35:32 cruz + * Extended the prototype definition of cserv. + * + * Revision 1.27 1995/03/05 04:17:23 fdh + * Corrected prototype for inrom(). + * + * Revision 1.26 1995/02/28 03:05:53 fdh + * Moved rom.c prototypes to rom.h + * + * Revision 1.25 1995/02/27 19:21:27 fdh + * Added prototypes for Ctype routines. + * + * Revision 1.24 1995/02/23 21:48:31 fdh + * Added prototypes for set_haxr() and atoi(). + * + * Revision 1.23 1995/02/22 22:01:10 fdh + * Changed types for tolower() and toupper(). + * + * Revision 1.22 1995/02/19 17:46:01 fdh + * Changed one of the arguments to read_rom(). + * + * Revision 1.21 1995/02/10 02:23:20 fdh + * Added prototype for set_romboot(). + * + * Revision 1.20 1994/11/19 03:30:51 fdh + * Added support for romlist command. + * + * Revision 1.19 1994/11/18 19:05:31 fdh + * swpipl returns the current ipl. + * + * Revision 1.18 1994/11/08 21:39:20 fdh + * Added declaration for the flash routine. + * + * Revision 1.17 1994/11/01 11:30:01 rusling + * Changed following PCI-PCI bridge support. + * + * Revision 1.16 1994/08/05 20:13:47 fdh + * Updated Copyright header and RCS $Id: identifier. + * + * Revision 1.15 1994/08/03 19:44:23 fdh + * Fixups around the linker defined symbols _edata and _end. + * Protect time_t definition with #ifndef _TIME_T. + * + * Revision 1.14 1994/07/22 21:02:46 fdh + * Added extern void rtcBaseInit(void); for EB64 builds. + * + * Revision 1.13 1994/07/21 18:10:06 fdh + * >> Added EnableBCache(), DisableBCache(), and CleanBCache(). + * + * Revision 1.12 1994/07/13 14:17:07 fdh + * Added data structure for holding pointers to SROM interface + * parameters. + * + * Revision 1.11 1994/06/28 20:08:21 fdh + * Modified filenames and build precedure to fit into a FAT filesystem. + * + * Revision 1.10 1994/06/22 15:10:34 rusling + * Fixed up WNT compile warnings. + * + * Revision 1.9 1994/06/21 15:27:47 rusling + * Removed putFloat() prototype. + * + * Revision 1.8 1994/06/21 14:18:05 rusling + * changed definition of loadHeader() in rom.c + * + * Revision 1.7 1994/06/21 10:38:53 rusling + * Added strncmp() for WNT. + * + * Revision 1.5 1994/06/20 14:18:59 fdh + * Fixup header file preprocessor #include conditionals. + * + * Revision 1.4 1994/06/17 19:34:01 fdh + * Clean-up... + * + * Revision 1.3 1994/06/13 15:54:35 fdh + * Added definitions of unsigned amounts as defined in system.h + * Definitions are also placed here to make the lib subdirectory + * free-standing from the rest of the source tree. + * + * Revision 1.2 1994/06/03 20:18:38 fdh + * Added protypes for all routines in /lib. + * + * Revision 1.1 1994/01/19 10:33:21 rusling + * Initial revision + * + * Revision 1.1 1993/06/08 19:56:14 fdh + * Initial revision + * + */ + +#include <stddef.h> + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +/* + * Definitions of unsigned amounts + */ +#define ub unsigned char +#define uw unsigned short int + +#ifdef _WIN32 +#define ul unsigned __int64 +#define sl __int64 +#define ui unsigned int +#else +#define ul unsigned long +#define sl long +#define ui unsigned int +#endif + +typedef struct { + ul *abox_ctl; +#ifdef DC21064 + ul *biu_ctl; +#endif /* DC21064 */ +#ifdef DC21066 + ui *bcr0; + ui *bcr1; + ui *bcr2; + ui *bcr3; + ui *bmr0; + ui *bmr1; + ui *bmr2; + ui *bmr3; +#endif /* DC21066 */ + ul *srom_rev; + ul *proc_id; + ul *mem_size; + ul *cycle_cnt; + ul *signature; + ul *proc_mask; + ul *sysctx; + int valid; +} sysdata_t; + +#ifdef _WIN32 +extern ul end; +extern ul edata; +#define _END end +#define _EDATA edata +#else +extern ul _end; +extern ul _edata; +#define _END _end +#define _EDATA _edata +#endif + +#ifndef _TIME_T +#define _TIME_T +/* typedef int time_t; */ +typedef ui time_t; +#endif + +/*:::::::::::::: +rw.c +::::::::::::::*/ +/* Here B = 8 bits, W = 16 bits, L = 32 bits, Q = 64 bits */ +extern ub ReadB(ub * adr); +extern uw ReadW(uw * adr); +extern void WriteB(ub * adr , ub data); +extern void WriteW(uw * adr , uw data); + +/*:::::::::::::: +beep.c +::::::::::::::*/ +extern void tone(int period , int time); +extern void dummy(int x); +extern void Beep(int msec , int freq); +extern void msleep(int ms); + +/*:::::::::::::: +c8514.c +::::::::::::::*/ +extern int c8514init(void); +extern void c8514erase(void); +extern void c8514putc(char c); +extern void c8514show(void); +extern void c8514hide(void); +extern void c8514insfontchar(int code , ub * s); +extern void initfont(void); + +/*:::::::::::::: +date.c +::::::::::::::*/ +extern void printDate(void); +extern void setDate(ub * date); +extern ui gettime(void); +extern time_t time(void); +extern void CheckDate(void); + +/*:::::::::::::: +initdata.c +::::::::::::::*/ +extern void doinitdata(void ); + +/*:::::::::::::: +ebxx_io.c +::::::::::::::*/ +extern void outportb(ul p , ui d); +extern void outportw(ul p , ui d); +extern void outportt(ul p , ui d); +extern void outportl(ul p , ui d); +extern void outportbxt(ul p , ui d); +extern void outport(ul p , ui d); +extern void outcfgb(ui bus, ui dev, ui reg, ui data); +extern void outcfgw(ui bus, ui dev, ui reg, ui data); +extern void outcfgl(ui bus, ui dev, ui reg, ui data); +extern void outmembxt(ul p , ui d); +extern void outmemwat(ul p , ui d); +extern ui inportb(ul p); +extern ui inportw(ul p); +extern ui inportt(ul p); +extern ui inportl(ul p); +extern ui inportwat(ul p); +extern ui inportbxt(ul p); +extern ui inport(ul p); +extern ui incfgb(ui bus, ui dev, ui reg); +extern ui incfgw(ui bus, ui dev, ui reg); +extern ui incfgl(ui bus, ui dev, ui reg); +extern ui inmembat(ul p); +extern ui inmembxt(ul p); +extern void IOBusInit(void); +extern ul IOPCIClearNODEV(void); +extern void outLed(ui d); +extern void out_ioc_csr(ui p , ul d); +extern ul in_ioc_csr(ui p); +extern void outmemb(ul p , ui d); +extern void outmemw(ul p , ui d); +extern void outmemt(ul p , ui d); +extern void outmeml(ul p , ui d); +extern void outmem(ul p , ui d); +extern ui inmemb(ul p); +extern ui inmemw(ul p); +extern ui inmemt(ul p); +extern ul inmeml(ul p); +extern ui inmemwat(ul p); +extern ui inmem(ul p); +extern void set_haxr(unsigned int addr); +extern void outVti(ul p , ui d); +extern ui inVti(ul p); +extern ub inrom(ul p); +extern ui insctl(void); +extern void outsctl(ui d); +extern ui inIack(void); +#ifdef EB64 +extern void rtcBaseInit(void); +#endif + +/*:::::::::::::: +ebxx_mem.c +::::::::::::::*/ +extern void memdetect(void); +extern int check_mem_esr(int silent); +#ifdef EB66 +extern void out_mem_csr(ul p , ul d); +extern ul in_mem_csr(ui p); +#elif EB64P +extern void out_mem_csr(ui p , ui d); +extern ui in_mem_csr(ui p); +#endif + +extern void EnableBCache(void); +extern void DisableBCache(void); + +#ifdef EB164 +void wr_bcache (ui argc, ul arg1, ul arg2, ui select); +#endif + +/*:::::::::::::: +ffcsubs.c +::::::::::::::*/ +extern int strlen(char * s); +extern void bzero(char * s , int count); +extern void bcopy(char * from , char * to , int count); +extern int tolower(int c); +extern int toupper(int c); +extern int IsAlpha(char c); +extern int IsDigit(char c); + +/*:::::::::::::: +fftty.c +::::::::::::::*/ +extern void UnGetChar(char c); +extern char MonGetChar(void); +extern void FlushLine(void); +extern ul ReadHex(void); +extern void ReadString(char * s); +extern char RawMonGetChar(void); +extern int kbdcontinue(void ); + +/*:::::::::::::: +floppy.c +::::::::::::::*/ +extern int floppyRead(int loadtype , char * file2load); + +/*:::::::::::::: +gpchar.c +::::::::::::::*/ +extern void PutChar(char c); +extern char GetChar(void); +extern int CharAv(void); +extern void WaitUs(int usecs); + +/*:::::::::::::: +ident.c +::::::::::::::*/ +extern int ident(ul first , ul last); + +/*:::::::::::::: +int.c +::::::::::::::*/ +extern void intr_enable(int int_level); + +/*:::::::::::::: +kbd.c +::::::::::::::*/ +extern void kbd_error(char * error_msg , int s1); +extern int kbd_init(void); +extern void kbd_reset_state(void); +extern int kbd_charav(void); +extern int kbd_getc(void); + +/*:::::::::::::: +leds.c +::::::::::::::*/ +extern void sethdled(int v); +extern int isturbo(void); +extern int kbd_locked(void); + +/*:::::::::::::: +memtest.c +::::::::::::::*/ +extern ul do_memtest(char * llim , char * hlim , int inc); +extern void memtest1(char * llim , char * hlim , int inc , int pattern); +extern void memtest2(char * llim , char * hlim , int inc , int seed); +extern void memtest3(char * llim , char * hlim , int inc); +extern void memtest(char * min , char * max , int inc); + +/*:::::::::::::: +p8514.c +::::::::::::::*/ +extern void pwgaFillSolid(ui fg , ui alu , ui planemask , int xDst , int yDst , int wDst , int hDst); +extern void pwgaDrawColorImage(int xDst , int yDst , int wDst , int hDst , ub * pSrc , int widthSrc , ui alu , ui planemask); +extern void pwgaBlit(int xSrc , int ySrc , int wSrc , int hSrc , int xDst , int yDst , ui alu , ui planemask); +extern int DisplayOpen(int mode1024); +extern void DisplayClose(void); +extern void byteoutport(int p , int d); +extern void short_delay(void); +extern void InitLUT(void); +extern int pwgaExists(void); +extern ui pwgaHWInit(int mode1024); +extern void outwords(short * wSrc , int wcount); +extern void outwblock(ub * pSrc , int w , int h , int widthSrc); + +/*:::::::::::::: +pr.c +::::::::::::::*/ +extern void PQ(ul x); +extern void PL(ui x); +extern void PW(uw x); +extern void PB(ub x); +extern void PutSpace(void); +extern void PutCR(void); + +/*:::::::::::::: +printf.c +::::::::::::::*/ +extern void PutString(char * s); +extern void printf(char * f , ...); + +/*:::::::::::::: +search.c +::::::::::::::*/ +extern int search(ul first , ul last , int size , char * valstr , int inverse); +extern void ParseVal(char * s , ul * val , ul * mask , int size); + +/*:::::::::::::: +sniff.c +::::::::::::::*/ +extern int find_first(int map); +extern int sniff_eisa(int id , int mask , int num_slots); + +/*:::::::::::::: +uart.c +::::::::::::::*/ +extern int uart_charav(int port); +extern char uart_getchar(int port); +extern void uart_putchar(int port , char c); +extern void putcLpt(int c); +extern void uart_init_line(int line , int baud); +extern int uart_init(void); + +/*:::::::::::::: +vga.c +::::::::::::::*/ +extern void vgaerase(void); +extern void vgalcgen(void); +extern void vgasetloc(void); +extern void vgaputc(register int c); +extern void vgastl(ul a , int d); +extern int vgaldl(ul a); +extern ub readreg(ui sel , ui off); +extern void writereg(ui sel , ui off , ub dat); +extern void dumpvga(void); +extern void vgainit(void); + +/*:::::::::::::: +libc.c +::::::::::::::*/ +extern int memcmp(const void * pcs , const void * pct , size_t n); +extern void * memset(void * ps , char c , size_t n); +extern void * memmove(void * ps , const void * pct , size_t n); +extern void * memcpy(void * ps , const void * pct , size_t n); +extern int atoi(const char *nptr); +extern int isalnum(int c); +extern int isalpha(int c); +extern int isascii(int c); +extern int iscntrl(int c); +extern int isdigit(int c); +extern int isgraph(int c); +extern int islower(int c); +extern int isprint(int c); +extern int ispunct(int c); +extern int isspace(int c); +extern int isupper(int c); +extern int isxdigit(int c); + +/*:::::::::::::: +flash.c +::::::::::::::*/ +extern int flash_main(ui src , ui segnum, ui segcnt); +/*:::::::::::::: +asmstuff.s +::::::::::::::*/ +extern void mb(void); +extern ul GetSP(void); +extern ul cServe(ul, ul, ul, ...); +extern void wrfen(ui); +extern void swppal(ul, ul, ul, ul); +extern void halt(void); +extern void wait_cycles(ui cycles); +extern int swpipl(ui); +extern void CleanBCache(ul); +/* Here B = 8 bits, W = 16 bits, L = 32 bits, Q = 64 bits */ +#ifdef _WIN32 +extern ui ReadL(ul); +extern void WriteL(ul, ui); +extern ul ReadQ(ul); +extern void WriteQ(ul, ul); +#else +#define WriteL(address,value) (*(ui *)(address)=(ui)(value)) +#define ReadL(address) (*(ui *)(address)) +#define WriteQ(address,value) (*(ul *)(address)=(ul)(value)) +#define ReadQ(address) (*(ul *)(address)) +#endif + +/*:::::::::::::::: +host specific library definitions +::::::::::::::::*/ +#ifdef _WIN32 +extern int strcmp(char *cs, char *ct); +extern char *strcpy(char *s, char *ct); +extern int strncmp(char *cs, char *ct, int n); +extern char *strncpy(char *s, char *ct, int n); +extern int rand(void); +#endif + +#endif /* __LIB_H_LOADED */ |