33 lines
986 B
C
33 lines
986 B
C
/* Extracted from boehm-gc/os_dep.c on Darwin. It caused an ICE when
|
|
trying to merge alias information from two pointers that had
|
|
different type memory tags. */
|
|
typedef int thread_state_flavor_t;
|
|
typedef int exception_behavior_t;
|
|
typedef unsigned int exception_mask_t;
|
|
typedef unsigned int exception_handler_t;
|
|
typedef unsigned int mach_msg_type_number_t;
|
|
static struct {
|
|
mach_msg_type_number_t count;
|
|
exception_mask_t masks[16];
|
|
exception_handler_t ports[16];
|
|
thread_state_flavor_t flavors[16];
|
|
} GC_old_exc_ports;
|
|
|
|
typedef exception_handler_t *exception_handler_array_t;
|
|
typedef thread_state_flavor_t *exception_flavor_array_t;
|
|
|
|
|
|
int task_get_exception_ports
|
|
(
|
|
mach_msg_type_number_t *masksCnt,
|
|
exception_handler_array_t old_handlers,
|
|
exception_flavor_array_t old_flavors
|
|
);
|
|
|
|
void GC_dirty_init()
|
|
{
|
|
task_get_exception_ports(GC_old_exc_ports.masks,
|
|
GC_old_exc_ports.ports,
|
|
GC_old_exc_ports.flavors);
|
|
}
|