diff options
author | mmentovai <mmentovai@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2006-09-22 01:10:25 +0000 |
---|---|---|
committer | mmentovai <mmentovai@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2006-09-22 01:10:25 +0000 |
commit | 3402cae5e58f7503adc4d9de6d9ea69e725ddcb2 (patch) | |
tree | 8b35e29094057df5938145f622c017f09692c1cd /src/processor/minidump_format.h | |
parent | Handle frame pointer omission (#21), part 2: PostfixEvaluator. r=bryner. (diff) | |
download | breakpad-3402cae5e58f7503adc4d9de6d9ea69e725ddcb2.tar.xz |
Add ppc support to minidump reader (#27). r=bryner.
- Uses new MDRawContextPPC structure from #25.
- Interface change: (MinidumpContext).context() replaced with
GetContextCPU to determine CPU type and GetContextX86/GetContextPPC to
get CPU-specific context.
http://groups.google.com/group/airbag-dev/browse_thread/thread/f6c2e9cab2832b4c
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@33 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/processor/minidump_format.h')
-rw-r--r-- | src/processor/minidump_format.h | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/processor/minidump_format.h b/src/processor/minidump_format.h index 0d1e4b36..b3661d8d 100644 --- a/src/processor/minidump_format.h +++ b/src/processor/minidump_format.h @@ -198,6 +198,8 @@ typedef struct { #define MD_CONTEXT_MIPS 0x00010000 /* CONTEXT_R4000 (same value as x86?) */ #define MD_CONTEXT_ALPHA 0x00020000 /* CONTEXT_ALPHA */ +#define MD_CONTEXT_CPU_MASK 0xffffffc0 + /* * Airbag minidump extension for PowerPC support. Based on Darwin/Mac OS X' @@ -205,6 +207,14 @@ typedef struct { */ +/* This is a base type for MDRawContextX86 and MDRawContextPPC. This + * structure should never be allocated directly. The actual structure type + * can be determined by examining the context_flags field. */ +typedef struct { + u_int32_t context_flags; +} MDRawContextBase; + + #define MD_FLOATINGSAVEAREA_PPC_FPR_COUNT 32 typedef struct { @@ -219,13 +229,13 @@ typedef struct { #define MD_VECTORSAVEAREA_PPC_VR_COUNT 32 typedef struct { - /* Vector registers are 128 bits, but mach/ppc/_types.h exposes them as - * four 32-bit quantities. */ - u_int32_t save_vr[MD_VECTORSAVEAREA_PPC_VR_COUNT][4]; - u_int32_t save_vscr[4]; /* Status/control */ - u_int32_t save_pad5[4]; - u_int32_t save_vrvalid; /* Identifies which vector registers are saved */ - u_int32_t save_pad6[7]; + /* Vector registers (including vscr) are 128 bits, but mach/ppc/_types.h + * exposes them as four 32-bit quantities. */ + u_int128_t save_vr[MD_VECTORSAVEAREA_PPC_VR_COUNT]; + u_int128_t save_vscr; /* Status/control */ + u_int32_t save_pad5[4]; + u_int32_t save_vrvalid; /* Identifies which vector registers are saved */ + u_int32_t save_pad6[7]; } MDVectorSaveAreaPPC; /* ppc_vector_state */ |