ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/SheepShaver/src/Unix/sigregs.h
(Generate patch)

Comparing SheepShaver/src/Unix/sigregs.h (file contents):
Revision 1.1 by gbeauche, 2005-07-04T05:34:33Z vs.
Revision 1.3 by asvitkine, 2009-02-11T19:22:16Z

# Line 1 | Line 1
1   /*
2   *  sigregs.h - Extract machine registers from a signal frame
3   *
4 < *  SheepShaver (C) 1997-2005 Christian Bauer and Marc Hellwig
4 > *  SheepShaver (C) 1997-2008 Christian Bauer and Marc Hellwig
5   *
6   *  This program is free software; you can redistribute it and/or modify
7   *  it under the terms of the GNU General Public License as published by
# Line 79 | Line 79 | struct machine_regs : public mcontext_t
79   // Extract machine registers from Darwin signal frame
80   #if defined(__APPLE__) && defined(__MACH__)
81   #include <sys/signal.h>
82 extern "C" int sigaltstack(const struct sigaltstack *ss, struct sigaltstack *oss);
82  
84 #include <sys/ucontext.h>
83   #define MACHINE_REGISTERS(scp)  ((machine_regs *)(((ucontext_t *)scp)->uc_mcontext))
84  
85 + #if __DARWIN_UNIX03
86 + #define __(x)   __CONCAT(__,x)
87 + #else
88 + #define __(x)   x
89 + #endif
90 +
91 + #include <sys/ucontext.h>
92 +
93 + #if __DARWIN_UNIX03
94 + struct machine_regs : public __darwin_mcontext
95 + #else
96   struct machine_regs : public mcontext
97 + #endif
98   {
99 <        uint32 & cr()                           { return ss.cr; }
100 <        uint32 cr() const                       { return ss.cr; }
101 <        uint32 lr() const                       { return ss.lr; }
102 <        uint32 ctr() const                      { return ss.ctr; }
103 <        uint32 xer() const                      { return ss.xer; }
104 <        uint32 msr() const                      { return ss.srr1; }
105 <        uint32 dar() const                      { return es.dar; }
106 <        uint32 & pc()                           { return ss.srr0; }
107 <        uint32 pc() const                       { return ss.srr0; }
108 <        uint32 & gpr(int i)                     { return (&ss.r0)[i]; }
109 <        uint32 gpr(int i) const         { return (&ss.r0)[i]; }
99 >        uint32 & cr()                           { return __(ss).__(cr); }
100 >        uint32 cr() const                       { return __(ss).__(cr); }
101 >        uint32 lr() const                       { return __(ss).__(lr); }
102 >        uint32 ctr() const                      { return __(ss).__(ctr); }
103 >        uint32 xer() const                      { return __(ss).__(xer); }
104 >        uint32 msr() const                      { return __(ss).__(srr1); }
105 >        uint32 dar() const                      { return __(es).__(dar); }
106 >        uint32 & pc()                           { return __(ss).__(srr0); }
107 >        uint32 pc() const                       { return __(ss).__(srr0); }
108 >        uint32 & gpr(int i)                     { return (&__(ss).__(r0))[i]; }
109 >        uint32 gpr(int i) const         { return (&__(ss).__(r0))[i]; }
110   };
111   #endif
112  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines