#ifndef _X86_BSD_OS_H
#define _X86_BSD_OS_H
-static inline os_context_t *arch_os_get_context(void **void_context) {
+#ifdef LISP_FEATURE_FREEBSD
+#include <machine/segments.h>
+#include <machine/cpufunc.h>
+#endif
+
+typedef int os_context_register_t;
+
+static inline os_context_t *arch_os_get_context(void **void_context)
+{
return (os_context_t *) *void_context;
}
#error unsupported BSD variant
#endif
-#if defined(LISP_FEATURE_SB_THREAD)
-
#if defined LISP_FEATURE_FREEBSD
-/* FIXME: why is this only done for SB-THREAD? */
+#if defined(LISP_FEATURE_RESTORE_TLS_SEGMENT_REGISTER_FROM_CONTEXT)
+void os_restore_tls_segment_register(os_context_t *context);
+#endif
#define RESTORE_FP_CONTROL_FROM_CONTEXT
void os_restore_fp_control(os_context_t *context);
#endif
+#if defined LISP_FEATURE_OPENBSD
+#define RESTORE_FP_CONTROL_FROM_CONTEXT
+void os_restore_fp_control(os_context_t *context);
#endif
#endif /* _X86_BSD_OS_H */