diff -r 000000000000 -r 6474c204b198 dom/system/gonk/nsVolumeStat.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/system/gonk/nsVolumeStat.cpp Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,39 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsVolumeStat.h" +#include "nsString.h" + +namespace mozilla { +namespace system { + +NS_IMPL_ISUPPORTS(nsVolumeStat, nsIVolumeStat) + +nsVolumeStat::nsVolumeStat(const nsAString& aPath) +{ + if (statfs(NS_ConvertUTF16toUTF8(aPath).get(), &mStat) != 0) { + memset(&mStat, 0, sizeof(mStat)); + } +} + +nsVolumeStat::~nsVolumeStat() +{ +} + +/* readonly attribute long long totalBytes; */ +NS_IMETHODIMP nsVolumeStat::GetTotalBytes(int64_t* aTotalBytes) +{ + *aTotalBytes = mStat.f_blocks * mStat.f_bsize; + return NS_OK; +} + +/* readonly attribute long long freeBytes; */ +NS_IMETHODIMP nsVolumeStat::GetFreeBytes(int64_t* aFreeBytes) +{ + *aFreeBytes = mStat.f_bfree * mStat.f_bsize; + return NS_OK; +} + +} // system +} // mozilla