Added CryptohomeDoAutomaticFreeDiskSpaceControl()
and CryptohomeAsyncDoAutomaticFreeDiskSpaceControl()
This is Cros part for Cryptohome change: http://codereview.chromium.org/6598074/
Change-Id: I932ca04f217f1b1311d4db93e22495c8c2cb97cb
BUG=chromium-os:12713
TEST=none
Review URL: http://codereview.chromium.org/6602089
diff --git a/chromeos_cros_api.h b/chromeos_cros_api.h
index 6b19ec2..b3debf7 100644
--- a/chromeos_cros_api.h
+++ b/chromeos_cros_api.h
@@ -190,12 +190,14 @@
// 108: Move types, RequestWifiServicePath, RequestScan, EnableNetworkDevice
// to deprecated. Add RequestHiddenWifiNetwork, RequestNetworkScan,
// RequestNetworkDeviceEnable.
+// 109: Added CryptohomeDoAutomaticFreeDiskSpaceControl and
+// CryptohomeAsyncDoAutomaticFreeDiskSpaceControl
namespace chromeos { // NOLINT
enum CrosAPIVersion {
kCrosAPIMinVersion = 104,
- kCrosAPIVersion = 108
+ kCrosAPIVersion = 109
};
// Default path to pass to LoadCros: "/opt/google/chrome/chromeos/libcros.so"
diff --git a/chromeos_cryptohome.cc b/chromeos_cryptohome.cc
index fba3d91..26ebde3 100644
--- a/chromeos_cryptohome.cc
+++ b/chromeos_cryptohome.cc
@@ -568,6 +568,55 @@
}
extern "C"
+bool ChromeOSCryptohomeDoAutomaticFreeDiskSpaceControl() {
+ dbus::BusConnection bus = dbus::GetSystemBusConnection();
+ dbus::Proxy proxy(bus,
+ cryptohome::kCryptohomeServiceName,
+ cryptohome::kCryptohomeServicePath,
+ cryptohome::kCryptohomeInterface);
+ gboolean done = false;
+ glib::ScopedError error;
+
+ if (!::dbus_g_proxy_call(
+ proxy.gproxy(),
+ cryptohome::kCryptohomeDoAutomaticFreeDiskSpaceControl,
+ &Resetter(&error).lvalue(),
+ G_TYPE_INVALID,
+ G_TYPE_BOOLEAN,
+ &done,
+ G_TYPE_INVALID)) {
+ LOG(WARNING) << cryptohome::kCryptohomeDoAutomaticFreeDiskSpaceControl
+ << " failed: "
+ << (error->message ? error->message : "Unknown Error.");
+ }
+ return done;
+}
+
+extern "C"
+int ChromeOSCryptohomeAsyncDoAutomaticFreeDiskSpaceControl() {
+ dbus::BusConnection bus = dbus::GetSystemBusConnection();
+ dbus::Proxy proxy(bus,
+ cryptohome::kCryptohomeServiceName,
+ cryptohome::kCryptohomeServicePath,
+ cryptohome::kCryptohomeInterface);
+ gint async_call_id = 0;
+ glib::ScopedError error;
+
+ if (!::dbus_g_proxy_call(proxy.gproxy(),
+ cryptohome::kCryptohomeAsyncDoAutomaticFreeDiskSpaceControl,
+ &Resetter(&error).lvalue(),
+ G_TYPE_INVALID,
+ G_TYPE_INT,
+ &async_call_id,
+ G_TYPE_INVALID)) {
+ LOG(WARNING) << cryptohome::kCryptohomeAsyncDoAutomaticFreeDiskSpaceControl
+ << " failed: "
+ << (error->message ? error->message : "Unknown Error.");
+ }
+ return async_call_id;
+}
+
+extern "C"
bool ChromeOSCryptohomeTpmIsReady() {
dbus::BusConnection bus = dbus::GetSystemBusConnection();
dbus::Proxy proxy(bus,
diff --git a/chromeos_cryptohome.h b/chromeos_cryptohome.h
index b5c1c36..613cc2f 100644
--- a/chromeos_cryptohome.h
+++ b/chromeos_cryptohome.h
@@ -80,6 +80,8 @@
extern bool (*CryptohomeUnmount)();
extern bool (*CryptohomeRemoveTrackedSubdirectories)();
extern int (*CryptohomeAsyncRemoveTrackedSubdirectories)();
+extern bool (*CryptohomeDoAutomaticFreeDiskSpaceControl)();
+extern int (*CryptohomeAsyncDoAutomaticFreeDiskSpaceControl)();
extern bool (*CryptohomeTpmIsReady)();
extern bool (*CryptohomeTpmIsEnabled)();
extern bool (*CryptohomeTpmIsOwned)();
diff --git a/load.cc b/load.cc
index 7391492..11a15da 100644
--- a/load.cc
+++ b/load.cc
@@ -339,6 +339,8 @@
DECL_FUNC_0(CryptohomeUnmount, bool);
DECL_FUNC_0(CryptohomeRemoveTrackedSubdirectories, bool);
DECL_FUNC_0(CryptohomeAsyncRemoveTrackedSubdirectories, int);
+DECL_FUNC_0(CryptohomeDoAutomaticFreeDiskSpaceControl, bool);
+DECL_FUNC_0(CryptohomeAsyncDoAutomaticFreeDiskSpaceControl, int);
DECL_FUNC_0(CryptohomeTpmIsReady, bool);
DECL_FUNC_0(CryptohomeTpmIsEnabled, bool);
DECL_FUNC_0(CryptohomeTpmIsOwned, bool);
@@ -617,6 +619,8 @@
INIT_FUNC(CryptohomeUnmount);
INIT_FUNC(CryptohomeRemoveTrackedSubdirectories);
INIT_FUNC(CryptohomeAsyncRemoveTrackedSubdirectories);
+ INIT_FUNC(CryptohomeDoAutomaticFreeDiskSpaceControl);
+ INIT_FUNC(CryptohomeAsyncDoAutomaticFreeDiskSpaceControl);
INIT_FUNC(CryptohomeTpmIsReady);
INIT_FUNC(CryptohomeTpmIsEnabled);
INIT_FUNC(CryptohomeTpmIsOwned);