16d786c9805481bd13ecb29c3155540f2f32950e1svenpanne@chromium.org// Copyright 2011 the V8 project authors. All rights reserved. 20040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// Redistribution and use in source and binary forms, with or without 30040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// modification, are permitted provided that the following conditions are 40040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// met: 50040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// 60040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// * Redistributions of source code must retain the above copyright 70040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// notice, this list of conditions and the following disclaimer. 80040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// * Redistributions in binary form must reproduce the above 90040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// copyright notice, this list of conditions and the following 100040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// disclaimer in the documentation and/or other materials provided 110040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// with the distribution. 120040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// * Neither the name of Google Inc. nor the names of its 130040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// contributors may be used to endorse or promote products derived 140040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// from this software without specific prior written permission. 150040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// 160040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 170040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 180040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 190040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 200040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 210040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 220040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 230040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 240040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 250040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 260040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 270040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org 280040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org#ifndef V8_PREPARSE_DATA_FORMAT_H_ 290040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org#define V8_PREPARSE_DATA_FORMAT_H_ 300040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org 310040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.orgnamespace v8 { 320040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.orgnamespace internal { 330040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org 340040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org// Generic and general data used by preparse data recorders and readers. 350040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org 360040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.orgstruct PreparseDataConstants { 370040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org public: 380040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org // Layout and constants of the preparse data exchange format. 390040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org static const unsigned kMagicNumber = 0xBadDead; 406d786c9805481bd13ecb29c3155540f2f32950e1svenpanne@chromium.org static const unsigned kCurrentVersion = 7; 410040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org 420040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org static const int kMagicOffset = 0; 430040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org static const int kVersionOffset = 1; 440040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org static const int kHasErrorOffset = 2; 450040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org static const int kFunctionsSizeOffset = 3; 460040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org static const int kSymbolCountOffset = 4; 470040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org static const int kSizeOffset = 5; 480040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org static const int kHeaderSize = 6; 490040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org 500040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org // If encoding a message, the following positions are fixed. 510040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org static const int kMessageStartPos = 0; 520040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org static const int kMessageEndPos = 1; 530040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org static const int kMessageArgCountPos = 2; 540040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org static const int kMessageTextPos = 3; 550040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org 560040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org static const unsigned char kNumberTerminator = 0x80u; 570040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org}; 580040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org 590040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org 600040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org} } // namespace v8::internal. 610040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org 620040ca93e7ca9c0968f7bc27088ce045cb32c402lrn@chromium.org#endif // V8_PREPARSE_DATA_FORMAT_H_ 63