1b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// Copyright 2014 the V8 project authors. All rights reserved.
2b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// found in the LICENSE file.
4b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
5b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#ifndef V8_BASE_SYS_INFO_H_
6b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#define V8_BASE_SYS_INFO_H_
7b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
8b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#include "include/v8stdint.h"
9b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#include "src/base/compiler-specific.h"
10b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
11b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochnamespace v8 {
12b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochnamespace base {
13b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
14b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochclass SysInfo FINAL {
15b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch public:
16b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  // Returns the number of logical processors/core on the current machine.
17b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  static int NumberOfProcessors();
18b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
19b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  // Returns the number of bytes of physical memory on the current machine.
20b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  static int64_t AmountOfPhysicalMemory();
21b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
22b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  // Returns the number of bytes of virtual memory of this process. A return
23b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  // value of zero means that there is no limit on the available virtual memory.
24b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch  static int64_t AmountOfVirtualMemory();
25b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch};
26b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
27b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch}  // namespace base
28b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch}  // namespace v8
29b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
30b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#endif  // V8_BASE_SYS_INFO_H_
31