X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/b4c24cb9d3df001f2892dc4ed451bc769ff28a9f..d7e50217d7adf6e52786a38bcaa4cd698cb9a79e:/osfmk/ppc/low_trace.h?ds=inline diff --git a/osfmk/ppc/low_trace.h b/osfmk/ppc/low_trace.h index 30bbf3f98..389852db9 100644 --- a/osfmk/ppc/low_trace.h +++ b/osfmk/ppc/low_trace.h @@ -3,19 +3,22 @@ * * @APPLE_LICENSE_HEADER_START@ * - * The contents of this file constitute Original Code as defined in and - * are subject to the Apple Public Source License Version 1.1 (the - * "License"). You may not use this file except in compliance with the - * License. Please obtain a copy of the License at - * http://www.apple.com/publicsource and read it before using this file. + * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved. * - * This Original Code and all software distributed under the License are - * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the - * License for the specific language governing rights and limitations - * under the License. + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. * * @APPLE_LICENSE_HEADER_END@ */ @@ -36,6 +39,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 +47,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 +77,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 */