newlib/libgloss/mips/nullmon.c
2000-03-17 22:48:54 +00:00

70 lines
2.5 KiB
C

/* nullmon.c - Stub or monitor services.
*
* Copyright (c) 1998 Cygnus Support
*
* The authors hereby grant permission to use, copy, modify, distribute,
* and license this software and its documentation for any purpose, provided
* that existing copyright notices are retained in all copies and that this
* notice is included verbatim in any distributions. No written agreement,
* license, or royalty fee is required for any of the authorized uses.
* Modifications to this software may be copyrighted by their authors
* and need not follow the licensing terms described here, provided that
* the new terms are clearly indicated on the first page of each file where
* they apply.
*/
/* This is a ROMSTUB
Various libraries in libgloss may reference board specific services.
These are often performed by system calls and by rom specific
interfaces such as dvemon.c This file defines the null interface in
which the rom monitor either does not exist or is not used.
Linking with this file supports applications which only exercise
the processor, specifically, the GDB test suite.
By linking this object in rather than a monitor specific support
we can insure that the testsuite will run without references or
linkages to nonexistent monitor services.
Similarly, every service provided by this file muse be provided by all
monitor speciifc interfaces.
PLEASE DO NOT MAKE THIS FILE SPECIFIC TO ANY MONITOR
*/
/* This form is giving linker relocation errors */
#if ! defined(BOARD_MEM_SIZE)
#define BOARD_MEM_SIZE 0x100000 /* About a megabyte */
#endif
extern unsigned char _ftext ; /* Defined in nullmon.ld */
extern unsigned char _end ; /* Defined in nullmon.ld */
#if defined(FIXME_WARNINGS)
#warning("FIXME: struct s_mem belongs in a header file")
#endif
struct s_mem
{ unsigned int size;
unsigned int icsize;
unsigned int dcsize;
};
void
get_mem_info (mem)
struct s_mem *mem;
{ char * t1, * t2 ;
unsigned long long tmp ;
t1 = & _ftext ;
t2 = & _end ;
tmp = (unsigned long long) (t2 - t1) ;
tmp = (unsigned long long) BOARD_MEM_SIZE - tmp ;
mem->size = tmp ;
}
/* SYSTEM INTERFACE
Since we are defining a NULL operating environment here, I am
entering the stub definitions for the GNUpro libraries, System Calls.
I would rather not to even pretend to support these functions but, they
get pulled in by other libraries.
*/
int read(int file, char * ptr , int len) { return 0 ; }
int close (int file) { return -1 ; }
int write(int file , char * ptr, int len) { return 0 ; }
/*eof*/