version 1.12, 2003/10/08 00:32:35 |
version 1.13, 2004/02/13 05:48:36 |
|
|
# endif |
# endif |
|
|
/* Determine the machine type: */ |
/* Determine the machine type: */ |
|
/* T.Saito */ |
|
# if defined(FREEBSD) && defined(__amd64__) |
|
# define X86_64 |
|
# define mach_type_known |
|
# endif |
|
|
# if defined(__XSCALE__) |
# if defined(__XSCALE__) |
# define ARM32 |
# define ARM32 |
# if !defined(LINUX) |
# if !defined(LINUX) |
|
|
# define PREFETCH_FOR_WRITE(x) \ |
# define PREFETCH_FOR_WRITE(x) \ |
__asm__ __volatile__ (" prefetchw %0": : "m"(*(char *)(x))) |
__asm__ __volatile__ (" prefetchw %0": : "m"(*(char *)(x))) |
# endif |
# endif |
|
# ifdef FREEBSD /* T.Saito */ |
|
# define OS_TYPE "FREEBSD" |
|
# ifndef GC_FREEBSD_THREADS |
|
# define MPROTECT_VDB |
|
# endif |
|
# define SIG_SUSPEND SIGUSR1 |
|
# define SIG_THR_RESTART SIGUSR2 |
|
# define FREEBSD_STACKBOTTOM |
|
# ifdef __ELF__ |
|
# define DYNAMIC_LOADING |
|
# endif |
|
extern int _etext[]; |
|
extern char etext[]; |
|
extern char edata[]; |
|
extern char end[]; |
|
extern char * GC_FreeBSDGetDataStart(); |
|
# define DATASTART ((ptr_t)((((word) (_etext)) + 0xfff) & ~0xfff)) |
|
# define NEED_FIND_LIMIT |
|
# define DATAEND (GC_find_limit (DATASTART, TRUE)) |
|
# define DATASTART2 ((ptr_t)(&edata)) |
|
# define DATAEND2 ((ptr_t)(&end)) |
|
# endif /* end T.Saito */ |
# endif |
# endif |
|
|
#if defined(LINUX) && defined(REDIRECT_MALLOC) |
#if defined(LINUX) && defined(REDIRECT_MALLOC) |