diff options
author | Simon Marlow <marlowsd@gmail.com> | 2009-08-02 21:32:04 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2009-08-02 21:32:04 +0000 |
commit | a2a67cd520b9841114d69a87a423dabcb3b4368e (patch) | |
tree | 3dc6bbf53dff5421c14fbeb2d812c1424f2718c0 /rts/RtsUtils.h | |
parent | 5d379cbe65e406d5c3a848fe7fcd090cafbfeb78 (diff) | |
download | haskell-a2a67cd520b9841114d69a87a423dabcb3b4368e.tar.gz |
RTS tidyup sweep, first phase
The first phase of this tidyup is focussed on the header files, and in
particular making sure we are exposinng publicly exactly what we need
to, and no more.
- Rts.h now includes everything that the RTS exposes publicly,
rather than a random subset of it.
- Most of the public header files have moved into subdirectories, and
many of them have been renamed. But clients should not need to
include any of the other headers directly, just #include the main
public headers: Rts.h, HsFFI.h, RtsAPI.h.
- All the headers needed for via-C compilation have moved into the
stg subdirectory, which is self-contained. Most of the headers for
the rest of the RTS APIs have moved into the rts subdirectory.
- I left MachDeps.h where it is, because it is so widely used in
Haskell code.
- I left a deprecated stub for RtsFlags.h in place. The flag
structures are now exposed by Rts.h.
- Various internal APIs are no longer exposed by public header files.
- Various bits of dead code and declarations have been removed
- More gcc warnings are turned on, and the RTS code is more
warning-clean.
- More source files #include "PosixSource.h", and hence only use
standard POSIX (1003.1c-1995) interfaces.
There is a lot more tidying up still to do, this is just the first
pass. I also intend to standardise the names for external RTS APIs
(e.g use the rts_ prefix consistently), and declare the internal APIs
as hidden for shared libraries.
Diffstat (limited to 'rts/RtsUtils.h')
-rw-r--r-- | rts/RtsUtils.h | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/rts/RtsUtils.h b/rts/RtsUtils.h index 11a2826596..14856bf943 100644 --- a/rts/RtsUtils.h +++ b/rts/RtsUtils.h @@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------------- * - * (c) The GHC Team, 1998-2005 + * (c) The GHC Team, 1998-2009 * * General utility functions used in the RTS. * @@ -13,42 +13,44 @@ * (Checked) dynamic allocation * -------------------------------------------------------------------------- */ -extern void initAllocator(void); -extern void shutdownAllocator(void); +void initAllocator(void); +void shutdownAllocator(void); -extern void *stgMallocBytes(int n, char *msg) +void *stgMallocBytes(int n, char *msg) GNUC3_ATTRIBUTE(__malloc__); -extern void *stgReallocBytes(void *p, int n, char *msg); +void *stgReallocBytes(void *p, int n, char *msg); -extern void *stgCallocBytes(int n, int m, char *msg) +void *stgCallocBytes(int n, int m, char *msg) GNUC3_ATTRIBUTE(__malloc__); -extern void stgFree(void* p); +void stgFree(void* p); /* ----------------------------------------------------------------------------- * Misc other utilities * -------------------------------------------------------------------------- */ -extern void heapOverflow(void); +void heapOverflow(void); -extern void setNonBlockingFd(int fd); -extern void resetNonBlockingFd(int fd); - -extern nat stg_strlen(char *str); - -extern char *time_str(void); -extern char *ullong_format_string(ullong, char *, rtsBool); +char *time_str(void); +char *ullong_format_string(ullong, char *, rtsBool); #ifdef DEBUG -extern void heapCheckFail( void ); +void heapCheckFail( void ); #endif -extern void* __hscore_get_saved_termios(int fd); -extern void __hscore_set_saved_termios(int fd, void* ts); +// XXX shouldn't be here +void* __hscore_get_saved_termios(int fd); +void __hscore_set_saved_termios(int fd, void* ts); void printRtsInfo(void); +HsInt genSymZh(void); +HsInt resetGenSymZh(void); + +/* Alternate to raise(3) for threaded rts, for OpenBSD */ +int genericRaise(int sig); + int rts_isProfiled(void); #endif /* RTSUTILS_H */ |