Mercurial > projects > ldc
view druntime/import/stdc/posix/ucontext.d @ 760:6f33b427bfd1
Seems like hg ignores .di files, so I missed a bunch of stuff. complete druntime should be there now :)
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Wed, 12 Nov 2008 00:19:18 +0100 |
parents | |
children |
line wrap: on
line source
/** * D header file for POSIX. * * Copyright: Public Domain * License: Public Domain * Authors: Sean Kelly * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition */ module stdc.posix.ucontext; private import stdc.posix.config; public import stdc.posix.signal; // for sigset_t, stack_t extern (C): // // XOpen (XSI) // /* mcontext_t struct ucontext_t { ucontext_t* uc_link; sigset_t uc_sigmask; stack_t uc_stack; mcontext_t uc_mcontext; } */ version( linux ) { version( X86_64 ) { private { struct _libc_fpxreg { ushort[4] significand; ushort exponent; ushort[3] padding; } struct _libc_xmmreg { uint[4] element; } struct _libc_fpstate { ushort cwd; ushort swd; ushort ftw; ushort fop; ulong rip; ulong rdp; uint mxcsr; uint mxcr_mask; _libc_fpxreg[8] _st; _libc_xmmreg[16] _xmm; uint[24] padding; } const NGREG = 23; alias c_long greg_t; alias greg_t[NGREG] gregset_t; alias _libc_fpstate* fpregset_t; } struct mcontext_t { gregset_t gregs; fpregset_t fpregs; c_ulong[8] __reserved1; } struct ucontext_t { c_ulong uc_flags; ucontext_t* uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; _libc_fpstate __fpregs_mem; } } else version( X86 ) { private { struct _libc_fpreg { ushort[4] significand; ushort exponent; } struct _libc_fpstate { c_ulong cw; c_ulong sw; c_ulong tag; c_ulong ipoff; c_ulong cssel; c_ulong dataoff; c_ulong datasel; _libc_fpreg[8] _st; c_ulong status; } const NGREG = 19; alias int greg_t; alias greg_t[NGREG] gregset_t; alias _libc_fpstate* fpregset_t; } struct mcontext_t { gregset_t gregs; fpregset_t fpregs; c_ulong oldmask; c_ulong cr2; } struct ucontext_t { c_ulong uc_flags; ucontext_t* uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; _libc_fpstate __fpregs_mem; } } } // // Obsolescent (OB) // /* int getcontext(ucontext_t*); void makecontext(ucontext_t*, void function(), int, ...); int setcontext(in ucontext_t*); int swapcontext(ucontext_t*, in ucontext_t*); */ static if( is( ucontext_t ) ) { int getcontext(ucontext_t*); void makecontext(ucontext_t*, void function(), int, ...); int setcontext(in ucontext_t*); int swapcontext(ucontext_t*, in ucontext_t*); }