1c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Copyright (c) 2009 The Chromium Authors. All rights reserved.
2c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Use of this source code is governed by a BSD-style license that can be
3c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// found in the LICENSE file.
4c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
5c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "base/sys_info.h"
6c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <sys/param.h>
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <sys/sysctl.h>
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
10c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "base/logging.h"
11c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
12c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottnamespace base {
13c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
14c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottint SysInfo::NumberOfProcessors() {
15c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  int mib[] = { CTL_HW, HW_NCPU };
16c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  int ncpu;
17c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  size_t size = sizeof(ncpu);
18c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  if (sysctl(mib, 2, &ncpu, &size, NULL, 0) == -1) {
19c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott    NOTREACHED();
20c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott    return 1;
21c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  }
22c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  return ncpu;
23c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}
24c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
25c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}  // namespace base
26