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