mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-06-16 14:29:46 +00:00
57 lines
1.7 KiB
C
57 lines
1.7 KiB
C
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
* vim: set ts=8 sts=4 et sw=4 tw=99:
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef gc_GCTraceFormat_h
|
|
#define gc_GCTraceFormat_h
|
|
|
|
/*
|
|
* Each trace is stored as a 64-bit word with the following format:
|
|
*
|
|
* 56 48 0
|
|
* +----------------+----------------+-----------------------------------------+
|
|
* | Event type | Optional extra | Optional payload |
|
|
* +----------------+----------------+-----------------------------------------+
|
|
*/
|
|
|
|
enum GCTraceEvent {
|
|
// Events
|
|
TraceEventInit,
|
|
TraceEventThingSize,
|
|
TraceEventNurseryAlloc,
|
|
TraceEventTenuredAlloc,
|
|
TraceEventClassInfo,
|
|
TraceEventTypeInfo,
|
|
TraceEventTypeNewScript,
|
|
TraceEventCreateObject,
|
|
TraceEventMinorGCStart,
|
|
TraceEventPromoteToTenured,
|
|
TraceEventMinorGCEnd,
|
|
TraceEventMajorGCStart,
|
|
TraceEventTenuredFinalize,
|
|
TraceEventMajorGCEnd,
|
|
|
|
TraceDataAddress, // following TraceEventPromote
|
|
TraceDataInt, // following TraceEventClassInfo
|
|
TraceDataString, // following TraceEventClassInfo
|
|
|
|
GCTraceEventCount
|
|
};
|
|
|
|
const unsigned TraceFormatVersion = 1;
|
|
|
|
const unsigned TracePayloadBits = 48;
|
|
|
|
const unsigned TraceExtraShift = 48;
|
|
const unsigned TraceExtraBits = 8;
|
|
|
|
const unsigned TraceEventShift = 56;
|
|
const unsigned TraceEventBits = 8;
|
|
|
|
const unsigned AllocKinds = 22;
|
|
const unsigned LastObjectAllocKind = 11;
|
|
|
|
#endif
|