1a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Copyright 2006-2008 the V8 project authors. All rights reserved. 2a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Redistribution and use in source and binary forms, with or without 3a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// modification, are permitted provided that the following conditions are 4a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// met: 5a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// 6a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// * Redistributions of source code must retain the above copyright 7a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// notice, this list of conditions and the following disclaimer. 8a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// * Redistributions in binary form must reproduce the above 9a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// copyright notice, this list of conditions and the following 10a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// disclaimer in the documentation and/or other materials provided 11a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// with the distribution. 12a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// * Neither the name of Google Inc. nor the names of its 13a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// contributors may be used to endorse or promote products derived 14a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// from this software without specific prior written permission. 15a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// 16a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 17a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 18a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 19a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 20a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 28a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Platform specific code for NULLOS goes here 29a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 30a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Minimal include to get access to abort, fprintf and friends for bootstrapping 31a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// messages. 32a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block#include <stdio.h> 33a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block#include <stdlib.h> 34a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 35a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block#include "v8.h" 36a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 37a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block#include "platform.h" 38b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch#include "vm-state-inl.h" 39a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 40a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 41a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blocknamespace v8 { 42a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blocknamespace internal { 43a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 44a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Give V8 the opportunity to override the default ceil behaviour. 45a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockdouble ceiling(double x) { 46a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 47a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return 0; 48a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 49a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 50a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 513ce2e2076e8e3e60cf1810eec160ea2d8557e9e7Steve Block// Give V8 the opportunity to override the default fmod behavior. 523ce2e2076e8e3e60cf1810eec160ea2d8557e9e7Steve Blockdouble modulo(double x, double y) { 533ce2e2076e8e3e60cf1810eec160ea2d8557e9e7Steve Block UNIMPLEMENTED(); 543ce2e2076e8e3e60cf1810eec160ea2d8557e9e7Steve Block return 0; 553ce2e2076e8e3e60cf1810eec160ea2d8557e9e7Steve Block} 563ce2e2076e8e3e60cf1810eec160ea2d8557e9e7Steve Block 573ce2e2076e8e3e60cf1810eec160ea2d8557e9e7Steve Block 583ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochdouble fast_sin(double x) { 593ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch UNIMPLEMENTED(); 603ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch return 0; 613ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch} 623ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 633ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 643ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochdouble fast_cos(double x) { 653ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch UNIMPLEMENTED(); 663ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch return 0; 673ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch} 683ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 693ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 703ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochdouble fast_tan(double x) { 713ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch UNIMPLEMENTED(); 723ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch return 0; 733ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch} 743ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 753ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 763ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochdouble fast_log(double x) { 773ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch UNIMPLEMENTED(); 783ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch return 0; 793ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch} 803ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 813ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 82a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Initialize OS class early in the V8 startup. 833ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochvoid OS::SetUp() { 84a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block // Seed the random number generator. 85a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 86a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 87a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 88a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 893ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochvoid OS::PostSetUp() { 903ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch UNIMPLEMENTED(); 913ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch} 923ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 933ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 94a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Returns the accumulated user time for thread. 95a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockint OS::GetUserTime(uint32_t* secs, uint32_t* usecs) { 96a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 97a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block *secs = 0; 98a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block *usecs = 0; 99a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return 0; 100a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 101a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 102a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 103a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Returns current time as the number of milliseconds since 104a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// 00:00:00 UTC, January 1, 1970. 105a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockdouble OS::TimeCurrentMillis() { 106a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 107a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return 0; 108a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 109a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 110a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 111a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Returns ticks in microsecond resolution. 112a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockint64_t OS::Ticks() { 113a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 114a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return 0; 115a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 116a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 117a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 118a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Returns a string identifying the current timezone taking into 119a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// account daylight saving. 120a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst char* OS::LocalTimezone(double time) { 121a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 122a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return "<none>"; 123a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 124a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 125a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 126a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Returns the daylight savings offset in milliseconds for the given time. 127a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockdouble OS::DaylightSavingsOffset(double time) { 128a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 129a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return 0; 130a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 131a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 132a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 133756813857a4c2a4d8ad2e805969d5768d3cf43a0Iain Merrickint OS::GetLastError() { 134756813857a4c2a4d8ad2e805969d5768d3cf43a0Iain Merrick UNIMPLEMENTED(); 135756813857a4c2a4d8ad2e805969d5768d3cf43a0Iain Merrick return 0; 136756813857a4c2a4d8ad2e805969d5768d3cf43a0Iain Merrick} 137756813857a4c2a4d8ad2e805969d5768d3cf43a0Iain Merrick 138756813857a4c2a4d8ad2e805969d5768d3cf43a0Iain Merrick 139a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Returns the local time offset in milliseconds east of UTC without 140a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// taking daylight savings time into account. 141a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockdouble OS::LocalTimeOffset() { 142a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 143a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return 0; 144a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 145a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 146a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 147a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Print (debug) message to console. 148a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid OS::Print(const char* format, ...) { 149a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 150a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 151a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 152a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 153a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Print (debug) message to console. 154a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid OS::VPrint(const char* format, va_list args) { 155a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block // Minimalistic implementation for bootstrapping. 156a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block vfprintf(stdout, format, args); 157b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch} 158b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch 159b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch 160b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdochvoid OS::FPrint(FILE* out, const char* format, ...) { 161b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch va_list args; 162b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch va_start(args, format); 163b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch VFPrint(out, format, args); 164b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch va_end(args); 165b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch} 166b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch 167b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch 168b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdochvoid OS::VFPrint(FILE* out, const char* format, va_list args) { 169b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch vfprintf(out, format, args); 170a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 171a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 172a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 173a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Print error message to console. 174a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid OS::PrintError(const char* format, ...) { 175a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block // Minimalistic implementation for bootstrapping. 176a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block va_list args; 177a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block va_start(args, format); 178a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block VPrintError(format, args); 179a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block va_end(args); 180a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 181a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 182a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 183a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Print error message to console. 184a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid OS::VPrintError(const char* format, va_list args) { 185a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block // Minimalistic implementation for bootstrapping. 186a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block vfprintf(stderr, format, args); 187a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 188a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 189a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 190a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockint OS::SNPrintF(char* str, size_t size, const char* format, ...) { 191a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 192a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return 0; 193a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 194a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 195a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 196a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockint OS::VSNPrintF(char* str, size_t size, const char* format, va_list args) { 197a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 198a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return 0; 199a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 200a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 201a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 202d0582a6c46733687d045e4188a1bcd0123c758a1Steve Blockuint64_t OS::CpuFeaturesImpliedByPlatform() { 203d0582a6c46733687d045e4188a1bcd0123c758a1Steve Block return 0; 204d0582a6c46733687d045e4188a1bcd0123c758a1Steve Block} 205d0582a6c46733687d045e4188a1bcd0123c758a1Steve Block 206d0582a6c46733687d045e4188a1bcd0123c758a1Steve Block 207a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockdouble OS::nan_value() { 208a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 209a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return 0; 210a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 211a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 212d0582a6c46733687d045e4188a1bcd0123c758a1Steve Block 213d0582a6c46733687d045e4188a1bcd0123c758a1Steve Blockbool OS::ArmCpuHasFeature(CpuFeature feature) { 214d0582a6c46733687d045e4188a1bcd0123c758a1Steve Block UNIMPLEMENTED(); 215d0582a6c46733687d045e4188a1bcd0123c758a1Steve Block} 216d0582a6c46733687d045e4188a1bcd0123c758a1Steve Block 217d0582a6c46733687d045e4188a1bcd0123c758a1Steve Block 218257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdochbool OS::ArmUsingHardFloat() { 219257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch UNIMPLEMENTED(); 220257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch} 221257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch 222257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch 223a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockbool OS::IsOutsideAllocatedSpace(void* address) { 224a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 225a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return false; 226a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 227a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 228a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 229a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blocksize_t OS::AllocateAlignment() { 230a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 231a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return 0; 232a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 233a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 234a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 235a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid* OS::Allocate(const size_t requested, 236a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block size_t* allocated, 237a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block bool executable) { 238a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 239a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return NULL; 240a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 241a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 242a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 243a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid OS::Free(void* buf, const size_t length) { 244a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block // TODO(1240712): potential system call return value which is ignored here. 245a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 246a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 247a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 248a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 2493fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdochvoid OS::Guard(void* address, const size_t size) { 250a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 251a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 252a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 253a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 254a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid OS::Sleep(int milliseconds) { 255a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 256a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 257a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 258a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 259a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid OS::Abort() { 260a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block // Minimalistic implementation for bootstrapping. 261a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block abort(); 262a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 263a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 264a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 265a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid OS::DebugBreak() { 266a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 267a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 268a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 269a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 2701e0659c275bb392c045087af4f6b0d7565cb3d77Steve BlockOS::MemoryMappedFile* OS::MemoryMappedFile::open(const char* name) { 2711e0659c275bb392c045087af4f6b0d7565cb3d77Steve Block UNIMPLEMENTED(); 2721e0659c275bb392c045087af4f6b0d7565cb3d77Steve Block return NULL; 2731e0659c275bb392c045087af4f6b0d7565cb3d77Steve Block} 2741e0659c275bb392c045087af4f6b0d7565cb3d77Steve Block 2751e0659c275bb392c045087af4f6b0d7565cb3d77Steve Block 276a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockOS::MemoryMappedFile* OS::MemoryMappedFile::create(const char* name, int size, 277a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block void* initial) { 278a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 279a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return NULL; 280a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 281a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 282a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 283a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid OS::LogSharedLibraryAddresses() { 284a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 285a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 286a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 287a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 288f87a203d89e1bbb6708282e0b64dbd13d59b723dBen Murdochvoid OS::SignalCodeMovingGC() { 289f87a203d89e1bbb6708282e0b64dbd13d59b723dBen Murdoch UNIMPLEMENTED(); 290f87a203d89e1bbb6708282e0b64dbd13d59b723dBen Murdoch} 291f87a203d89e1bbb6708282e0b64dbd13d59b723dBen Murdoch 292f87a203d89e1bbb6708282e0b64dbd13d59b723dBen Murdoch 293a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockint OS::StackWalk(Vector<OS::StackFrame> frames) { 294a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 295a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return 0; 296a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 297a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 298a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 299a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockVirtualMemory::VirtualMemory(size_t size, void* address_hint) { 300a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 301a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 302a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 303a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 304a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockVirtualMemory::~VirtualMemory() { 305a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 306a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 307a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 308a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 309a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockbool VirtualMemory::IsReserved() { 310a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 311a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return false; 312a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 313a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 314a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 315a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockbool VirtualMemory::Commit(void* address, size_t size, bool executable) { 316a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 317a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return false; 318a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 319a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 320a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 321a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockbool VirtualMemory::Uncommit(void* address, size_t size) { 322a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 323a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return false; 324a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 325a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 326a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 3273ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochbool VirtualMemory::Guard(void* address) { 3283ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch UNIMPLEMENTED(); 3293ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch return false; 3303ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch} 3313ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 3323ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 3338b112d2025046f85ef7f6be087c6129c872ebad2Ben Murdochclass Thread::PlatformData : public Malloced { 334a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block public: 3358b112d2025046f85ef7f6be087c6129c872ebad2Ben Murdoch PlatformData() { 336a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 337a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block } 338a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 339a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block void* pd_data_; 340a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block}; 341a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 342a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 3433fb3ca8c7ca439d408449a395897395c0faae8d1Ben MurdochThread::Thread(const Options& options) 3448b112d2025046f85ef7f6be087c6129c872ebad2Ben Murdoch : data_(new PlatformData()), 34544f0eee88ff00398ff7f715fab053374d808c90dSteve Block stack_size_(options.stack_size) { 34644f0eee88ff00398ff7f715fab053374d808c90dSteve Block set_name(options.name); 3479fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block UNIMPLEMENTED(); 3489fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 3499fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 3509fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 3513fb3ca8c7ca439d408449a395897395c0faae8d1Ben MurdochThread::Thread(const char* name) 3528b112d2025046f85ef7f6be087c6129c872ebad2Ben Murdoch : data_(new PlatformData()), 35344f0eee88ff00398ff7f715fab053374d808c90dSteve Block stack_size_(0) { 3549fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block set_name(name); 355a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 356a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 357a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 358a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 359a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockThread::~Thread() { 3608b112d2025046f85ef7f6be087c6129c872ebad2Ben Murdoch delete data_; 361a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 362a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 363a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 364a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 3659fac840a46e8b7e26894f4792ba26dde14c56b04Steve Blockvoid Thread::set_name(const char* name) { 3669fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block strncpy(name_, name, sizeof(name_)); 3679fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block name_[sizeof(name_) - 1] = '\0'; 3689fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 3699fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 3709fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 371a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid Thread::Start() { 372a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 373a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 374a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 375a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 376a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid Thread::Join() { 377a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 378a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 379a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 380a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 381a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockThread::LocalStorageKey Thread::CreateThreadLocalKey() { 382a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 383a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return static_cast<LocalStorageKey>(0); 384a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 385a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 386a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 387a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid Thread::DeleteThreadLocalKey(LocalStorageKey key) { 388a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 389a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 390a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 391a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 392a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid* Thread::GetThreadLocal(LocalStorageKey key) { 393a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 394a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return NULL; 395a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 396a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 397a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 398a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid Thread::SetThreadLocal(LocalStorageKey key, void* value) { 399a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 400a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 401a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 402a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 403a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid Thread::YieldCPU() { 404a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 405a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 406a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 407a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 408a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockclass NullMutex : public Mutex { 409a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block public: 410a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block NullMutex() : data_(NULL) { 411a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 412a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block } 413a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 414a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block virtual ~NullMutex() { 415a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 416a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block } 417a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 418a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block virtual int Lock() { 419a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 420a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return 0; 421a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block } 422a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 423a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block virtual int Unlock() { 424a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 425a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return 0; 426a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block } 427a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 428a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block private: 429a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block void* data_; 430a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block}; 431a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 432a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 433a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockMutex* OS::CreateMutex() { 434a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 435a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return new NullMutex(); 436a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 437a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 438a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 439a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockclass NullSemaphore : public Semaphore { 440a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block public: 441a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block explicit NullSemaphore(int count) : data_(NULL) { 442a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 443a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block } 444a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 445a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block virtual ~NullSemaphore() { 446a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 447a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block } 448a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 449a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block virtual void Wait() { 450a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 451a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block } 452a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 453a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block virtual void Signal() { 454a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 455a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block } 456a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block private: 457a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block void* data_; 458a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block}; 459a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 460a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 461a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockSemaphore* OS::CreateSemaphore(int count) { 462a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 463a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block return new NullSemaphore(count); 464a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 465a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 466a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 467a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockclass ProfileSampler::PlatformData : public Malloced { 468a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block public: 469a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block PlatformData() { 470a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 471a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block } 472a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block}; 473a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 474a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 475a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockProfileSampler::ProfileSampler(int interval) { 476a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 477a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block // Shared setup follows. 478a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block data_ = new PlatformData(); 479a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block interval_ = interval; 480a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block active_ = false; 481a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 482a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 483a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 484a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockProfileSampler::~ProfileSampler() { 485a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 486a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block // Shared tear down follows. 487a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block delete data_; 488a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 489a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 490a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 491a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid ProfileSampler::Start() { 492a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 493a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 494a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 495a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 496a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockvoid ProfileSampler::Stop() { 497a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block UNIMPLEMENTED(); 498a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} 499a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 500a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 501a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block} } // namespace v8::internal 502