X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fx86-linux-os.c;h=f02ea8d79612c995391c8344ad934e313b45c134;hb=893dd75069ad851efd19e3d0fa5a4de9e84b4868;hp=9b461076466ea5a8eb018f3c608b3668eded6061;hpb=3537df0868f37c98475405b6dea497d053ac06f7;p=sbcl.git diff --git a/src/runtime/x86-linux-os.c b/src/runtime/x86-linux-os.c index 9b46107..f02ea8d 100644 --- a/src/runtime/x86-linux-os.c +++ b/src/runtime/x86-linux-os.c @@ -20,6 +20,7 @@ #include #include #include +#include #include "./signal.h" #include "os.h" @@ -120,13 +121,18 @@ struct thread *arch_os_get_current_thread() { #ifdef LISP_FEATURE_SB_THREAD register struct thread *me=0; if(all_threads) - __asm__ ("movl %%fs:%c1,%0" : "=r" (me) + __asm__ __volatile__ ("movl %%fs:%c1,%0" : "=r" (me) : "i" (offsetof (struct thread,this))); return me; #else return all_threads; #endif } +struct thread *debug_get_fs() { + register u32 fs; + __asm__ __volatile__ ("movl %%fs,%0" : "=r" (fs) : ); + return fs; +} /* free any arch/os-specific resources used by thread, which is now * defunct. Not called on live threads