X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/9bccf70c0258c7cac2dcb80011b2a964d884c552..e5568f75972dfc723778653c11cb6b4dc825716a:/osfmk/ppc/low_trace.h diff --git a/osfmk/ppc/low_trace.h b/osfmk/ppc/low_trace.h index 30bbf3f98..1fd7b0bdd 100644 --- a/osfmk/ppc/low_trace.h +++ b/osfmk/ppc/low_trace.h @@ -36,6 +36,7 @@ #ifndef _LOW_TRACE_H_ #define _LOW_TRACE_H_ +#pragma pack(4) /* Make sure the structure stays as we defined it */ typedef struct LowTraceRecord { unsigned short LTR_cpu; /* 0000 - CPU address */ @@ -43,22 +44,29 @@ typedef struct LowTraceRecord { unsigned int LTR_timeHi; /* 0004 - High order time */ unsigned int LTR_timeLo; /* 0008 - Low order time */ unsigned int LTR_cr; /* 000C - CR */ - unsigned int LTR_srr0; /* 0010 - SRR0 */ - unsigned int LTR_srr1; /* 0014 - SRR1 */ - unsigned int LTR_dar; /* 0018 - DAR */ - unsigned int LTR_save; /* 001C - savearea */ - - unsigned int LTR_lr; /* 0020 - LR */ - unsigned int LTR_ctr; /* 0024 - CTR */ - unsigned int LTR_r0; /* 0028 - R0 */ - unsigned int LTR_r1; /* 002C - R1 */ - unsigned int LTR_r2; /* 0030 - R2 */ - unsigned int LTR_r3; /* 0034 - R3 */ - unsigned int LTR_r4; /* 0038 - R4 */ - unsigned int LTR_r5; /* 003C - R5 */ + unsigned int LTR_dsisr; /* 0010 - DSISR */ + unsigned int LTR_rsvd0; /* 0014 - reserved */ + uint64_t LTR_srr0; /* 0018 - SRR0 */ + + uint64_t LTR_srr1; /* 0020 - SRR1 */ + uint64_t LTR_dar; /* 0028 - DAR */ + uint64_t LTR_save; /* 0030 - savearea */ + uint64_t LTR_lr; /* 0038 - LR */ + + uint64_t LTR_ctr; /* 0040 - CTR */ + uint64_t LTR_r0; /* 0048 - R0 */ + uint64_t LTR_r1; /* 0050 - R1 */ + uint64_t LTR_r2; /* 0058 - R2 */ + + uint64_t LTR_r3; /* 0060 - R3 */ + uint64_t LTR_r4; /* 0068 - R4 */ + uint64_t LTR_r5; /* 0070 - R5 */ + uint64_t LTR_r6; /* 0078 - R6 */ } LowTraceRecord; +#pragma pack() +#pragma pack(4) /* Make sure the structure stays as we defined it */ typedef struct traceWork { unsigned int traceCurr; /* Address of next slot */ @@ -66,8 +74,10 @@ typedef struct traceWork { unsigned int traceStart; /* Start of trace table */ unsigned int traceEnd; /* End of trace table */ unsigned int traceMsnd; /* Saved trace mask */ - unsigned int traceGas[3]; + unsigned int traceSize; /* Size of trace table. Min 1 page */ + unsigned int traceGas[2]; } traceWork; +#pragma pack() extern traceWork trcWork; extern unsigned int lastTrace; /* Value of low-level exception trace controls */