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