/*
- * OS-dependent routines for FreeBSD (and could maybe be extended to all BSD?)
+ * OS-dependent routines for BSD-ish systems
*
* This file (along with os.h) exports an OS-independent interface to
* the operating system VM facilities. This interface looks a lot like
* files for more information.
*/
-/*
- * $Header$
- */
-
#include <stdio.h>
#include <sys/param.h>
#include <sys/file.h>
#include "arch.h"
#include "globals.h"
#include "interrupt.h"
+#include "interr.h"
#include "lispregs.h"
#include "sbcl.h"
return addr;
}
+/* FIXME: If this can be a no-op on BSD/x86, then it
+ * deserves a more precise name.
+ *
+ * (Perhaps os_prepare_data_area_to_be_executed()?) */
void
os_flush_icache(os_vm_address_t address, os_vm_size_t length)
{
{
return in_range_p(addr, READ_ONLY_SPACE_START, READ_ONLY_SPACE_SIZE)
|| in_range_p(addr, STATIC_SPACE_START , STATIC_SPACE_SIZE )
- || in_range_p(addr, DYNAMIC_0_SPACE_START, DYNAMIC_SPACE_SIZE )
- || in_range_p(addr, DYNAMIC_1_SPACE_START, DYNAMIC_SPACE_SIZE )
+ || in_range_p(addr, DYNAMIC_SPACE_START , DYNAMIC_SPACE_SIZE )
|| in_range_p(addr, CONTROL_STACK_START , CONTROL_STACK_SIZE )
|| in_range_p(addr, BINDING_STACK_START , BINDING_STACK_SIZE );
}
void
os_install_interrupt_handlers(void)
-{}
+{
+ SHOW("os_install_interrupt_handlers()/bsd-os/!defined(GENCGC)");
+}
#else
void
os_install_interrupt_handlers(void)
{
+ SHOW("os_install_interrupt_handlers()/bsd-os/defined(GENCGC)");
#if defined __FreeBSD__
- interrupt_install_low_level_handler(SIGBUS, memory_fault_handler);
+ undoably_install_low_level_interrupt_handler(SIGBUS,
+ memory_fault_handler);
#elif defined __OpenBSD__
- interrupt_install_low_level_handler(SIGSEGV, memory_fault_handler);
+ undoably_install_low_level_interrupt_handler(SIGSEGV,
+ memory_fault_handler);
#else
#error unsupported BSD variant
#endif
+ SHOW("leaving os_install_interrupt_handlers()");
}
#endif /* !defined GENCGC */