From 01fd99fd71637eacc7082e5b1937d917fdd62a29 Mon Sep 17 00:00:00 2001 From: slava <slava@solaris.(none)> Date: Sat, 29 Mar 2008 05:30:25 -0500 Subject: [PATCH] Starting work on Solaris port --- vm/os-solaris-x86.32.h | 10 ++++++++++ vm/os-solaris-x86.64.h | 10 ++++++++++ vm/os-solaris.h | 2 ++ vm/platform.h | 10 +++++++++- 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 vm/os-solaris-x86.32.h create mode 100644 vm/os-solaris-x86.64.h diff --git a/vm/os-solaris-x86.32.h b/vm/os-solaris-x86.32.h new file mode 100644 index 0000000000..1f4ec74e17 --- /dev/null +++ b/vm/os-solaris-x86.32.h @@ -0,0 +1,10 @@ +#include <ucontext.h> + +INLINE void *ucontext_stack_pointer(void *uap) +{ + ucontext_t *ucontext = (ucontext_t *)uap; + return (void *)ucontext->uc_mcontext.gregs[ESP]; +} + +#define UAP_PROGRAM_COUNTER(ucontext) \ + (((ucontext_t *)(ucontext))->uc_mcontext.gregs[EIP]) diff --git a/vm/os-solaris-x86.64.h b/vm/os-solaris-x86.64.h new file mode 100644 index 0000000000..54d1866d50 --- /dev/null +++ b/vm/os-solaris-x86.64.h @@ -0,0 +1,10 @@ +#include <ucontext.h> + +INLINE void *ucontext_stack_pointer(void *uap) +{ + ucontext_t *ucontext = (ucontext_t *)uap; + return (void *)ucontext->uc_mcontext.gregs[RSP]; +} + +#define UAP_PROGRAM_COUNTER(ucontext) \ + (((ucontext_t *)(ucontext))->uc_mcontext.gregs[RIP]) diff --git a/vm/os-solaris.h b/vm/os-solaris.h index 788a78090b..909cc3f4e9 100644 --- a/vm/os-solaris.h +++ b/vm/os-solaris.h @@ -1,2 +1,4 @@ #define UNKNOWN_TYPE_P(file) 1 #define DIRECTORY_P(file) 0 + +extern char **environ; diff --git a/vm/platform.h b/vm/platform.h index 7678d483d6..a8c8ba756f 100644 --- a/vm/platform.h +++ b/vm/platform.h @@ -95,8 +95,16 @@ #endif #elif defined(__SVR4) && defined(sun) #define FACTOR_OS_STRING "solaris" + + #if defined(FACTOR_X86) + #include "os-solaris-x86.32.h" + #elif defined(FACTOR_AMD64) + #incluide "os-solaris-x86.64.h" + #else + #error "Unsupported Solaris flavor" + #endif + #include "os-solaris.h" - #include "os-unix-ucontext.h" #else #error "Unsupported OS" #endif