Wed, 31 Dec 2014 06:55:50 +0100
Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2
michael@0 | 1 | /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- |
michael@0 | 2 | * vim: sw=2 ts=8 et : |
michael@0 | 3 | */ |
michael@0 | 4 | /* This Source Code Form is subject to the terms of the Mozilla Public |
michael@0 | 5 | * License, v. 2.0. If a copy of the MPL was not distributed with this file, |
michael@0 | 6 | * You can obtain one at http://mozilla.org/MPL/2.0/. */ |
michael@0 | 7 | |
michael@0 | 8 | #include <stdio.h> |
michael@0 | 9 | #include "Hal.h" |
michael@0 | 10 | |
michael@0 | 11 | namespace mozilla { |
michael@0 | 12 | namespace hal_impl { |
michael@0 | 13 | |
michael@0 | 14 | uint32_t |
michael@0 | 15 | GetTotalSystemMemory() |
michael@0 | 16 | { |
michael@0 | 17 | static uint32_t sTotalMemory; |
michael@0 | 18 | static bool sTotalMemoryObtained = false; |
michael@0 | 19 | |
michael@0 | 20 | if (!sTotalMemoryObtained) { |
michael@0 | 21 | sTotalMemoryObtained = true; |
michael@0 | 22 | |
michael@0 | 23 | FILE* fd = fopen("/proc/meminfo", "r"); |
michael@0 | 24 | if (!fd) { |
michael@0 | 25 | return 0; |
michael@0 | 26 | } |
michael@0 | 27 | |
michael@0 | 28 | int rv = fscanf(fd, "MemTotal: %i kB", &sTotalMemory); |
michael@0 | 29 | |
michael@0 | 30 | if (fclose(fd) || rv != 1) { |
michael@0 | 31 | return 0; |
michael@0 | 32 | } |
michael@0 | 33 | } |
michael@0 | 34 | |
michael@0 | 35 | return sTotalMemory * 1024; |
michael@0 | 36 | } |
michael@0 | 37 | |
michael@0 | 38 | } // namespace hal_impl |
michael@0 | 39 | } // namespace mozilla |