#include <mach-o/dyld.h>
#include "bsd-os.h"
+#ifdef LISP_FEATURE_SB_THREAD
+#error "Define threading support functions"
+#else
+int arch_os_thread_init(struct thread *thread) {
+ return 1; /* success */
+}
+int arch_os_thread_cleanup(struct thread *thread) {
+ return 1; /* success */
+}
+#endif
+
os_context_register_t *
os_context_register_addr(os_context_t *context, int offset)
{
return &context->uc_mcontext->ss.lr;
}
+os_context_register_t *
+os_context_pc_addr(os_context_t *context)
+{
+ return &context->uc_mcontext->ss.srr0;
+}
+
void
os_flush_icache(os_vm_address_t address, os_vm_size_t length)
{
ppc_flush_icache(address,length);
}
-char *
-os_get_runtime_executable_path()
-{
- char path[PATH_MAX + 1];
- uint32_t size = sizeof(path);
-
- if (_NSGetExecutablePath(path, &size) == -1)
- return NULL;
- else
- path[size] = '\0';
-
- return copied_string(path);
-}