diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-08-30 14:05:50 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-08-30 14:05:50 +0000 |
commit | 5be93c2a24a4c19c8cc335e38f6f6712469004c4 (patch) | |
tree | cc2f910c25746765290a9b0945a3dbd82855edb4 /cpukit | |
parent | 2011-08-30 Peter Dufault <dufault@hda.com> (diff) | |
download | rtems-5be93c2a24a4c19c8cc335e38f6f6712469004c4.tar.bz2 |
2011-08-30 Peter Dufault <dufault@hda.com>
* rtems/score/cpu.h: Add more context access functionality. Needed to
get GDB debugger hooks working.
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/score/cpu/powerpc/ChangeLog | 5 | ||||
-rw-r--r-- | cpukit/score/cpu/powerpc/rtems/score/cpu.h | 28 |
2 files changed, 33 insertions, 0 deletions
diff --git a/cpukit/score/cpu/powerpc/ChangeLog b/cpukit/score/cpu/powerpc/ChangeLog index 9d1a241b2a..f3ca1e4479 100644 --- a/cpukit/score/cpu/powerpc/ChangeLog +++ b/cpukit/score/cpu/powerpc/ChangeLog @@ -1,3 +1,8 @@ +2011-08-30 Peter Dufault <dufault@hda.com> + + * rtems/score/cpu.h: Add more context access functionality. Needed to + get GDB debugger hooks working. + 2011-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de> * rtems/powerpc/registers.h: Renamed defines XER in PPC_XER, LR in diff --git a/cpukit/score/cpu/powerpc/rtems/score/cpu.h b/cpukit/score/cpu/powerpc/rtems/score/cpu.h index 4b7cb91291..fa0ed90391 100644 --- a/cpukit/score/cpu/powerpc/rtems/score/cpu.h +++ b/cpukit/score/cpu/powerpc/rtems/score/cpu.h @@ -309,11 +309,25 @@ typedef struct { (_context)->gpr1 = _sp; \ } while (0) + #define PPC_CONTEXT_GET_CR( _context ) \ + (_context)->cr + + #define PPC_CONTEXT_GET_MSR( _context ) \ + (_context)->msr + #define PPC_CONTEXT_SET_MSR( _context, _msr ) \ do { \ (_context)->msr = _msr; \ } while (0) + #define PPC_CONTEXT_FIRST_SAVED_GPR 13 + + #define PPC_CONTEXT_GET_FIRST_SAVED( _context ) \ + (_context)->gpr13 + + #define PPC_CONTEXT_GET_PC( _context ) \ + (_context)->pc + #define PPC_CONTEXT_SET_PC( _context, _pc ) \ do { \ (_context)->pc = _pc; \ @@ -361,11 +375,25 @@ typedef struct { PPC_CONTEXT_FIELD( _context, PPC_CONTEXT_OFFSET_SP ) = _sp; \ } while (0) + #define PPC_CONTEXT_GET_CR( _context ) \ + PPC_CONTEXT_FIELD( _context, PPC_CONTEXT_OFFSET_CR ) + + #define PPC_CONTEXT_GET_MSR( _context ) \ + PPC_CONTEXT_FIELD( _context, PPC_CONTEXT_OFFSET_MSR ) + #define PPC_CONTEXT_SET_MSR( _context, _msr ) \ do { \ PPC_CONTEXT_FIELD( _context, PPC_CONTEXT_OFFSET_MSR ) = _msr; \ } while (0) + #define PPC_CONTEXT_FIRST_SAVED_GPR 14 + + #define PPC_CONTEXT_GET_FIRST_SAVED( _context ) \ + PPC_CONTEXT_FIELD( _context, PPC_CONTEXT_OFFSET_GPR14 ) + + #define PPC_CONTEXT_GET_PC( _context ) \ + PPC_CONTEXT_FIELD( _context, PPC_CONTEXT_OFFSET_LR ) + #define PPC_CONTEXT_SET_PC( _context, _pc ) \ do { \ PPC_CONTEXT_FIELD( _context, PPC_CONTEXT_OFFSET_LR ) = _pc; \ |