189e18f5599cb4cd462cb1ed324addd7388fb4d60rossberg@chromium.org// Copyright 2012 the V8 project authors. All rights reserved.
2769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// Redistribution and use in source and binary forms, with or without
3769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// modification, are permitted provided that the following conditions are
4769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// met:
5769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com//
6769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com//     * Redistributions of source code must retain the above copyright
7769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com//       notice, this list of conditions and the following disclaimer.
8769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com//     * Redistributions in binary form must reproduce the above
9769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com//       copyright notice, this list of conditions and the following
10769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com//       disclaimer in the documentation and/or other materials provided
11769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com//       with the distribution.
12769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com//     * Neither the name of Google Inc. nor the names of its
13769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com//       contributors may be used to endorse or promote products derived
14769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com//       from this software without specific prior written permission.
15769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com//
16769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
28769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// Platform specific code for NULLOS goes here
29769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
30769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// Minimal include to get access to abort, fprintf and friends for bootstrapping
31769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// messages.
32769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com#include <stdio.h>
33769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com#include <stdlib.h>
34769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
35769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com#include "v8.h"
36769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
37769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com#include "platform.h"
38a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include "vm-state-inl.h"
39769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
40769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
4171affb54842da76b24f0bb3184e9f0960523f89dkasperl@chromium.orgnamespace v8 {
4271affb54842da76b24f0bb3184e9f0960523f89dkasperl@chromium.orgnamespace internal {
43769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
44769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// Give V8 the opportunity to override the default ceil behaviour.
45769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comdouble ceiling(double x) {
46769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
47769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return 0;
48769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
49769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
50769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
513811b436bf328d2ace6fe79ce99aeda71f9f06d3ager@chromium.org// Give V8 the opportunity to override the default fmod behavior.
523811b436bf328d2ace6fe79ce99aeda71f9f06d3ager@chromium.orgdouble modulo(double x, double y) {
533811b436bf328d2ace6fe79ce99aeda71f9f06d3ager@chromium.org  UNIMPLEMENTED();
543811b436bf328d2ace6fe79ce99aeda71f9f06d3ager@chromium.org  return 0;
553811b436bf328d2ace6fe79ce99aeda71f9f06d3ager@chromium.org}
563811b436bf328d2ace6fe79ce99aeda71f9f06d3ager@chromium.org
573811b436bf328d2ace6fe79ce99aeda71f9f06d3ager@chromium.org
589a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.orgdouble fast_sin(double x) {
599a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org  UNIMPLEMENTED();
609a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org  return 0;
619a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org}
629a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org
639a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org
649a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.orgdouble fast_cos(double x) {
659a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org  UNIMPLEMENTED();
669a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org  return 0;
679a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org}
689a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org
699a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org
709a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.orgdouble fast_tan(double x) {
719a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org  UNIMPLEMENTED();
729a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org  return 0;
739a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org}
749a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org
759a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org
769a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.orgdouble fast_log(double x) {
779a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org  UNIMPLEMENTED();
789a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org  return 0;
799a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org}
809a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org
819a21ec41a2007f01ba18cf5fa48f7987e40e5109ulan@chromium.org
82769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// Initialize OS class early in the V8 startup.
83f2038fb01417bcf7698b87a5dfaa4a861539618aerik.corry@gmail.comvoid OS::SetUp() {
84769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  // Seed the random number generator.
85769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
86769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
87769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
88769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
898c0a43f09f145d9fc6f969d559873018176eeb6adanno@chromium.orgvoid OS::PostSetUp() {
908c0a43f09f145d9fc6f969d559873018176eeb6adanno@chromium.org  UNIMPLEMENTED();
918c0a43f09f145d9fc6f969d559873018176eeb6adanno@chromium.org}
928c0a43f09f145d9fc6f969d559873018176eeb6adanno@chromium.org
938c0a43f09f145d9fc6f969d559873018176eeb6adanno@chromium.org
94ed49e965b5cafa35395084dbfb79f4e07930f10ferik.corry@gmail.comvoid OS::TearDown() {
95ed49e965b5cafa35395084dbfb79f4e07930f10ferik.corry@gmail.com  UNIMPLEMENTED();
96ed49e965b5cafa35395084dbfb79f4e07930f10ferik.corry@gmail.com}
97ed49e965b5cafa35395084dbfb79f4e07930f10ferik.corry@gmail.com
98ed49e965b5cafa35395084dbfb79f4e07930f10ferik.corry@gmail.com
99769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// Returns the accumulated user time for thread.
100769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comint OS::GetUserTime(uint32_t* secs,  uint32_t* usecs) {
101769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
102769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  *secs = 0;
103769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  *usecs = 0;
104769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return 0;
105769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
106769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
107769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
108769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// Returns current time as the number of milliseconds since
109769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// 00:00:00 UTC, January 1, 1970.
110769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comdouble OS::TimeCurrentMillis() {
111769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
112769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return 0;
113769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
114769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
115769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
116769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// Returns ticks in microsecond resolution.
117769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comint64_t OS::Ticks() {
118769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
119769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return 0;
120769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
121769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
122769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
123769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// Returns a string identifying the current timezone taking into
124769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// account daylight saving.
125b9d7da12d4486aa0a9d6660de46d977198076e77sgjesse@chromium.orgconst char* OS::LocalTimezone(double time) {
126769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
127769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return "<none>";
128769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
129769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
130769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
131769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// Returns the daylight savings offset in milliseconds for the given time.
132769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comdouble OS::DaylightSavingsOffset(double time) {
133769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
134769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return 0;
135769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
136769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
137769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
138ea4f62e1df22417fc8dc2c2425485dca98b13d07ager@chromium.orgint OS::GetLastError() {
139ea4f62e1df22417fc8dc2c2425485dca98b13d07ager@chromium.org  UNIMPLEMENTED();
140ea4f62e1df22417fc8dc2c2425485dca98b13d07ager@chromium.org  return 0;
141ea4f62e1df22417fc8dc2c2425485dca98b13d07ager@chromium.org}
142ea4f62e1df22417fc8dc2c2425485dca98b13d07ager@chromium.org
143ea4f62e1df22417fc8dc2c2425485dca98b13d07ager@chromium.org
144769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// Returns the local time offset in milliseconds east of UTC without
145769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// taking daylight savings time into account.
146769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comdouble OS::LocalTimeOffset() {
147769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
148769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return 0;
149769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
150769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
151769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
152769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// Print (debug) message to console.
153769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid OS::Print(const char* format, ...) {
154769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
155769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
156769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
157769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
158769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// Print (debug) message to console.
159769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid OS::VPrint(const char* format, va_list args) {
160769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  // Minimalistic implementation for bootstrapping.
161769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  vfprintf(stdout, format, args);
162023421e6892b2ba6dcd2bbee117e0bfb24545cf7whesse@chromium.org}
163023421e6892b2ba6dcd2bbee117e0bfb24545cf7whesse@chromium.org
164023421e6892b2ba6dcd2bbee117e0bfb24545cf7whesse@chromium.org
165023421e6892b2ba6dcd2bbee117e0bfb24545cf7whesse@chromium.orgvoid OS::FPrint(FILE* out, const char* format, ...) {
166023421e6892b2ba6dcd2bbee117e0bfb24545cf7whesse@chromium.org  va_list args;
167023421e6892b2ba6dcd2bbee117e0bfb24545cf7whesse@chromium.org  va_start(args, format);
168023421e6892b2ba6dcd2bbee117e0bfb24545cf7whesse@chromium.org  VFPrint(out, format, args);
169023421e6892b2ba6dcd2bbee117e0bfb24545cf7whesse@chromium.org  va_end(args);
170023421e6892b2ba6dcd2bbee117e0bfb24545cf7whesse@chromium.org}
171023421e6892b2ba6dcd2bbee117e0bfb24545cf7whesse@chromium.org
172023421e6892b2ba6dcd2bbee117e0bfb24545cf7whesse@chromium.org
173023421e6892b2ba6dcd2bbee117e0bfb24545cf7whesse@chromium.orgvoid OS::VFPrint(FILE* out, const char* format, va_list args) {
174023421e6892b2ba6dcd2bbee117e0bfb24545cf7whesse@chromium.org  vfprintf(out, format, args);
175769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
176769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
177769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
178769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// Print error message to console.
179769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid OS::PrintError(const char* format, ...) {
180769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  // Minimalistic implementation for bootstrapping.
181769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  va_list args;
182769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  va_start(args, format);
183769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  VPrintError(format, args);
184769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  va_end(args);
185769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
186769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
187769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
188769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com// Print error message to console.
189769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid OS::VPrintError(const char* format, va_list args) {
190769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  // Minimalistic implementation for bootstrapping.
191769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  vfprintf(stderr, format, args);
192769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
193769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
194769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
195769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comint OS::SNPrintF(char* str, size_t size, const char* format, ...) {
196769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
197769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return 0;
198769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
199769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
200769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
201769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comint OS::VSNPrintF(char* str, size_t size, const char* format, va_list args) {
202769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
203769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return 0;
204769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
205769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
206769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
207c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.orguint64_t OS::CpuFeaturesImpliedByPlatform() {
208c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org  return 0;
209c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org}
210c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org
211c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org
212769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comdouble OS::nan_value() {
213769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
214769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return 0;
215769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
216769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
217c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org
21889e18f5599cb4cd462cb1ed324addd7388fb4d60rossberg@chromium.orgCpuImplementer OS::GetCpuImplementer() {
21989e18f5599cb4cd462cb1ed324addd7388fb4d60rossberg@chromium.org  UNIMPLEMENTED();
22089e18f5599cb4cd462cb1ed324addd7388fb4d60rossberg@chromium.org}
22189e18f5599cb4cd462cb1ed324addd7388fb4d60rossberg@chromium.org
22289e18f5599cb4cd462cb1ed324addd7388fb4d60rossberg@chromium.org
223169691d93a961c8b511f8ac8fd8ee33d081ca10fdanno@chromium.orgCpuPart OS::GetCpuPart(CpuImplementer implementer) {
224169691d93a961c8b511f8ac8fd8ee33d081ca10fdanno@chromium.org  UNIMPLEMENTED();
225169691d93a961c8b511f8ac8fd8ee33d081ca10fdanno@chromium.org}
226169691d93a961c8b511f8ac8fd8ee33d081ca10fdanno@chromium.org
227169691d93a961c8b511f8ac8fd8ee33d081ca10fdanno@chromium.org
228c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.orgbool OS::ArmCpuHasFeature(CpuFeature feature) {
229c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org  UNIMPLEMENTED();
230c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org}
231c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org
232c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org
2338e8294a88dc7d58f579aee0ba08c19fc8a616e2dsgjesse@chromium.orgbool OS::ArmUsingHardFloat() {
2348e8294a88dc7d58f579aee0ba08c19fc8a616e2dsgjesse@chromium.org  UNIMPLEMENTED();
2358e8294a88dc7d58f579aee0ba08c19fc8a616e2dsgjesse@chromium.org}
2368e8294a88dc7d58f579aee0ba08c19fc8a616e2dsgjesse@chromium.org
2378e8294a88dc7d58f579aee0ba08c19fc8a616e2dsgjesse@chromium.org
238769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.combool OS::IsOutsideAllocatedSpace(void* address) {
239769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
240769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return false;
241769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
242769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
243769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
244769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comsize_t OS::AllocateAlignment() {
245769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
246769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return 0;
247769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
248769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
249769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
250769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid* OS::Allocate(const size_t requested,
251769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com                   size_t* allocated,
252769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com                   bool executable) {
253769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
254769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return NULL;
255769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
256769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
257769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
258769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid OS::Free(void* buf, const size_t length) {
259769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  // TODO(1240712): potential system call return value which is ignored here.
260769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
261769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
262769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
263769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
264717967fd64e99e759ff094df6f069440cc866266rossberg@chromium.orgvoid OS::Guard(void* address, const size_t size) {
265717967fd64e99e759ff094df6f069440cc866266rossberg@chromium.org  UNIMPLEMENTED();
266717967fd64e99e759ff094df6f069440cc866266rossberg@chromium.org}
267717967fd64e99e759ff094df6f069440cc866266rossberg@chromium.org
268717967fd64e99e759ff094df6f069440cc866266rossberg@chromium.org
269769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid OS::Sleep(int milliseconds) {
270769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
271769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
272769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
273769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
274c03a1924dcc113678c0ebe58aa7d3c855a657719yangguo@chromium.orgint OS::NumberOfCores() {
275c03a1924dcc113678c0ebe58aa7d3c855a657719yangguo@chromium.org  UNIMPLEMENTED();
276c03a1924dcc113678c0ebe58aa7d3c855a657719yangguo@chromium.org  return 0;
277c03a1924dcc113678c0ebe58aa7d3c855a657719yangguo@chromium.org}
278c03a1924dcc113678c0ebe58aa7d3c855a657719yangguo@chromium.org
279c03a1924dcc113678c0ebe58aa7d3c855a657719yangguo@chromium.org
280769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid OS::Abort() {
281769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  // Minimalistic implementation for bootstrapping.
282769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  abort();
283769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
284769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
285769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
286769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid OS::DebugBreak() {
287769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
288769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
289769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
290769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
291a6bbcc801f63c451f814d6da77a1a48fba3d36c6yangguo@chromium.orgvoid OS::DumpBacktrace() {
292a6bbcc801f63c451f814d6da77a1a48fba3d36c6yangguo@chromium.org  // Currently unsupported.
293a6bbcc801f63c451f814d6da77a1a48fba3d36c6yangguo@chromium.org}
294a6bbcc801f63c451f814d6da77a1a48fba3d36c6yangguo@chromium.org
295a6bbcc801f63c451f814d6da77a1a48fba3d36c6yangguo@chromium.org
2960a4e901cdfb5505a896d30aa8c2e04fce0fbe069vegorov@chromium.orgOS::MemoryMappedFile* OS::MemoryMappedFile::open(const char* name) {
2970a4e901cdfb5505a896d30aa8c2e04fce0fbe069vegorov@chromium.org  UNIMPLEMENTED();
2980a4e901cdfb5505a896d30aa8c2e04fce0fbe069vegorov@chromium.org  return NULL;
2990a4e901cdfb5505a896d30aa8c2e04fce0fbe069vegorov@chromium.org}
3000a4e901cdfb5505a896d30aa8c2e04fce0fbe069vegorov@chromium.org
3010a4e901cdfb5505a896d30aa8c2e04fce0fbe069vegorov@chromium.org
302769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comOS::MemoryMappedFile* OS::MemoryMappedFile::create(const char* name, int size,
303769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com    void* initial) {
304769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
305769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return NULL;
306769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
307769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
308769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
309769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid OS::LogSharedLibraryAddresses() {
310769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
311769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
312769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
313769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
3144a5224e84636d192e82f288bfab0d308bdae5c37whesse@chromium.orgvoid OS::SignalCodeMovingGC() {
3154a5224e84636d192e82f288bfab0d308bdae5c37whesse@chromium.org  UNIMPLEMENTED();
3164a5224e84636d192e82f288bfab0d308bdae5c37whesse@chromium.org}
3174a5224e84636d192e82f288bfab0d308bdae5c37whesse@chromium.org
3184a5224e84636d192e82f288bfab0d308bdae5c37whesse@chromium.org
31965dad4b091d2925543c6326db635d0f7cf9e1edcager@chromium.orgint OS::StackWalk(Vector<OS::StackFrame> frames) {
320769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
321769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return 0;
322769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
323769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
324769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
325e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.orgVirtualMemory::VirtualMemory() {
326e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org  UNIMPLEMENTED();
327e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org}
328e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
329e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
330e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.orgVirtualMemory::VirtualMemory(size_t size) {
331e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org  UNIMPLEMENTED();
332e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org}
333e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
334e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
335769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comVirtualMemory::VirtualMemory(size_t size, void* address_hint) {
336769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
337769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
338769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
339769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
340769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comVirtualMemory::~VirtualMemory() {
341769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
342769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
343769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
344769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
345769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.combool VirtualMemory::IsReserved() {
346769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
347769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return false;
348769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
349769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
350769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
351e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.orgvoid VirtualMemory::Reset() {
352e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org  UNIMPLEMENTED();
353e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org}
354e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
355e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
356769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.combool VirtualMemory::Commit(void* address, size_t size, bool executable) {
357769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
358769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return false;
359769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
360769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
361769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
362769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.combool VirtualMemory::Uncommit(void* address, size_t size) {
363769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
364769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return false;
365769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
366769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
367769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
368ab30bb83bf3dae0053739c57b1db9ad13c1f9e3ayangguo@chromium.orgbool VirtualMemory::Guard(void* address) {
369ab30bb83bf3dae0053739c57b1db9ad13c1f9e3ayangguo@chromium.org  UNIMPLEMENTED();
370ab30bb83bf3dae0053739c57b1db9ad13c1f9e3ayangguo@chromium.org  return false;
371ab30bb83bf3dae0053739c57b1db9ad13c1f9e3ayangguo@chromium.org}
372ab30bb83bf3dae0053739c57b1db9ad13c1f9e3ayangguo@chromium.org
373ab30bb83bf3dae0053739c57b1db9ad13c1f9e3ayangguo@chromium.org
374e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.orgvoid* VirtualMemory::ReserveRegion(size_t size) {
375e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org  UNIMPLEMENTED();
376e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org  return NULL;
377e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org}
378e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
379e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
380e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.orgbool VirtualMemory::CommitRegion(void* base, size_t size, bool is_executable) {
381e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org  UNIMPLEMENTED();
382e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org  return false;
383e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org}
384e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
385e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
386e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.orgbool VirtualMemory::UncommitRegion(void* base, size_t size) {
387e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org  UNIMPLEMENTED();
388e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org  return false;
389e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org}
390e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
391e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
392e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.orgbool VirtualMemory::ReleaseRegion(void* base, size_t size) {
393e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org  UNIMPLEMENTED();
394e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org  return false;
395e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org}
396e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
397e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
39872204d59e7fb1b8a0e9012e1fac5ef160351e8e4danno@chromium.orgbool VirtualMemory::HasLazyCommits() {
39972204d59e7fb1b8a0e9012e1fac5ef160351e8e4danno@chromium.org  // TODO(alph): implement for the platform.
40072204d59e7fb1b8a0e9012e1fac5ef160351e8e4danno@chromium.org  return false;
40172204d59e7fb1b8a0e9012e1fac5ef160351e8e4danno@chromium.org}
40272204d59e7fb1b8a0e9012e1fac5ef160351e8e4danno@chromium.org
40372204d59e7fb1b8a0e9012e1fac5ef160351e8e4danno@chromium.org
404a9aa5fa8ae2a2b43a94e6462ded2cd51445e9ee3ager@chromium.orgclass Thread::PlatformData : public Malloced {
405769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com public:
406a9aa5fa8ae2a2b43a94e6462ded2cd51445e9ee3ager@chromium.org  PlatformData() {
407769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com    UNIMPLEMENTED();
408769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  }
409769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
410769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  void* pd_data_;
411769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com};
412769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
413769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
4146d786c9805481bd13ecb29c3155540f2f32950e1svenpanne@chromium.orgThread::Thread(const Options& options)
415a9aa5fa8ae2a2b43a94e6462ded2cd51445e9ee3ager@chromium.org    : data_(new PlatformData()),
416e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org      stack_size_(options.stack_size),
417e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org      start_semaphore_(NULL) {
418ea88ce93dcb41a9200ec8747ae7642a5db1f4ce7sgjesse@chromium.org  set_name(options.name);
4195d00b60c201d860c74821f553fdc34f4e057b411lrn@chromium.org  UNIMPLEMENTED();
4205d00b60c201d860c74821f553fdc34f4e057b411lrn@chromium.org}
4215d00b60c201d860c74821f553fdc34f4e057b411lrn@chromium.org
4225d00b60c201d860c74821f553fdc34f4e057b411lrn@chromium.org
4236d786c9805481bd13ecb29c3155540f2f32950e1svenpanne@chromium.orgThread::Thread(const char* name)
424a9aa5fa8ae2a2b43a94e6462ded2cd51445e9ee3ager@chromium.org    : data_(new PlatformData()),
425ea88ce93dcb41a9200ec8747ae7642a5db1f4ce7sgjesse@chromium.org      stack_size_(0) {
4265d00b60c201d860c74821f553fdc34f4e057b411lrn@chromium.org  set_name(name);
427769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
428769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
429769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
430769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
431769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comThread::~Thread() {
432a9aa5fa8ae2a2b43a94e6462ded2cd51445e9ee3ager@chromium.org  delete data_;
433769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
434769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
435769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
436769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
4375d00b60c201d860c74821f553fdc34f4e057b411lrn@chromium.orgvoid Thread::set_name(const char* name) {
4385d00b60c201d860c74821f553fdc34f4e057b411lrn@chromium.org  strncpy(name_, name, sizeof(name_));
4395d00b60c201d860c74821f553fdc34f4e057b411lrn@chromium.org  name_[sizeof(name_) - 1] = '\0';
4405d00b60c201d860c74821f553fdc34f4e057b411lrn@chromium.org}
4415d00b60c201d860c74821f553fdc34f4e057b411lrn@chromium.org
4425d00b60c201d860c74821f553fdc34f4e057b411lrn@chromium.org
443769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid Thread::Start() {
444769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
445769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
446769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
447769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
448769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid Thread::Join() {
449769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
450769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
451769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
452769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
453769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comThread::LocalStorageKey Thread::CreateThreadLocalKey() {
454769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
455769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return static_cast<LocalStorageKey>(0);
456769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
457769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
458769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
459769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid Thread::DeleteThreadLocalKey(LocalStorageKey key) {
460769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
461769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
462769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
463769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
464769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid* Thread::GetThreadLocal(LocalStorageKey key) {
465769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
466769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return NULL;
467769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
468769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
469769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
470769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid Thread::SetThreadLocal(LocalStorageKey key, void* value) {
471769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
472769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
473769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
474769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
475769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid Thread::YieldCPU() {
476769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
477769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
478769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
479769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
480769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comclass NullMutex : public Mutex {
481769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com public:
482769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  NullMutex() : data_(NULL) {
483769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com    UNIMPLEMENTED();
484769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  }
485769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
486769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  virtual ~NullMutex() {
487769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com    UNIMPLEMENTED();
488769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  }
489769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
490769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  virtual int Lock() {
491769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com    UNIMPLEMENTED();
492769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com    return 0;
493769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  }
494769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
495769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  virtual int Unlock() {
496769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com    UNIMPLEMENTED();
497769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com    return 0;
498769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  }
499769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
500769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com private:
501769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  void* data_;
502769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com};
503769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
504769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
505769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comMutex* OS::CreateMutex() {
506769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
507769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return new NullMutex();
508769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
509769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
510769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
511769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comclass NullSemaphore : public Semaphore {
512769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com public:
513769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  explicit NullSemaphore(int count) : data_(NULL) {
514769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com    UNIMPLEMENTED();
515769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  }
516769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
517769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  virtual ~NullSemaphore() {
518769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com    UNIMPLEMENTED();
519769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  }
520769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
521769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  virtual void Wait() {
522769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com    UNIMPLEMENTED();
523769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  }
524769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
525769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  virtual void Signal() {
526769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com    UNIMPLEMENTED();
527769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  }
528769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com private:
529769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  void* data_;
530769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com};
531769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
532769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
533769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comSemaphore* OS::CreateSemaphore(int count) {
534769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
535769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  return new NullSemaphore(count);
536769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
537769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
538769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
539769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comclass ProfileSampler::PlatformData  : public Malloced {
540769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com public:
541769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  PlatformData() {
542769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com    UNIMPLEMENTED();
543769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  }
544769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com};
545769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
546769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
547769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comProfileSampler::ProfileSampler(int interval) {
548769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
549769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  // Shared setup follows.
550769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  data_ = new PlatformData();
551769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  interval_ = interval;
552769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  active_ = false;
553769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
554769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
555769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
556769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comProfileSampler::~ProfileSampler() {
557769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
558769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  // Shared tear down follows.
559769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  delete data_;
560769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
561769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
562769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
563769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid ProfileSampler::Start() {
564769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
565769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
566769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
567769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
568769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.comvoid ProfileSampler::Stop() {
569769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com  UNIMPLEMENTED();
570769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com}
571769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
572769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com
573769cc962a043dd8d92cc010dd2c50bc26f652c94mads.s.ager@gmail.com} }  // namespace v8::internal
574