#include "interr.h"
/* So you need to debug? */
-#define PRINTNOISE
-#define DEBUG_SPACE_PREDICATES
#if 0
+#define PRINTNOISE
#define DEBUG_SPACE_PREDICATES
#define DEBUG_SCAVENGE_VERBOSE
#define DEBUG_COPY_VERBOSE
#ifdef ARCH_HAS_NPC_REGISTER
unsigned long npc_code_offset;
#endif
+#ifdef DEBUG_SCAVENGE_VERBOSE
fprintf(stderr, "Scavenging interrupt context at 0x%x\n",context);
+#endif
/* Find the LIP's register pair and calculate its offset */
/* before we scavenge the context. */
#ifdef reg_LIP
}
}
}
-#endif reg_LIP
+#endif /* reg_LIP */
/* Compute the PC's offset from the start of the CODE */
/* register. */
/* Fix the LIP */
*os_context_register_addr(context, reg_LIP) =
*os_context_register_addr(context, lip_register_pair) + lip_offset;
-#endif reg_LIP
+#endif /* reg_LIP */
/* Fix the PC if it was in from space */
if (from_space_p(*os_context_pc_addr(context)))
index = fixnum_value(SymbolValue(FREE_INTERRUPT_CONTEXT_INDEX));
+#ifdef DEBUG_SCAVENGE_VERBOSE
fprintf(stderr, "%d interrupt contexts to scan\n",index);
+#endif
for (i = 0; i < index; i++) {
context = lisp_interrupt_contexts[i];
scavenge_interrupt_context(context);
void set_auto_gc_trigger(os_vm_size_t dynamic_usage)
{
- os_vm_address_t addr=(os_vm_address_t)current_dynamic_space +
- dynamic_usage;
- long length =
- DYNAMIC_SPACE_SIZE + (os_vm_address_t)current_dynamic_space - addr;
+ os_vm_address_t addr=(os_vm_address_t)current_dynamic_space
+ + dynamic_usage;
+
+ long length = DYNAMIC_SPACE_SIZE - dynamic_usage;
if (addr < (os_vm_address_t)dynamic_space_free_pointer) {
fprintf(stderr,
(unsigned int)dynamic_usage,
(os_vm_address_t)dynamic_space_free_pointer
- (os_vm_address_t)current_dynamic_space);
- return;
+ lose("lost");
}
else if (length < 0) {
fprintf(stderr,
"set_auto_gc_trigger: tried to set gc trigger too high! (%p)\n",
dynamic_usage);
- return;
+ lose("lost");
}
addr=os_round_up_to_page(addr);