block: Add GetStatvfs dbus method 73/171273/5 accepted/tizen/unified/20180307.071336 submit/tizen/20180306.082630
authorpr.jung <pr.jung@samsung.com>
Tue, 27 Feb 2018 09:08:34 +0000 (18:08 +0900)
committerpr.jung <pr.jung@samsung.com>
Tue, 6 Mar 2018 08:10:04 +0000 (17:10 +0900)
Change-Id: I2d6f6fa61a8785638624e93ee02992c880da3f70
Signed-off-by: pr.jung <pr.jung@samsung.com>
src/storage/storage.c

index b18f6db..9e7b368 100644 (file)
@@ -320,9 +320,35 @@ static GVariant *dbus_get_storage_status(GDBusConnection *conn,
        return g_variant_new("(tt)", dTotal, dAvail);
 }
 
+static GVariant *dbus_getstatvfs(GDBusConnection *conn,
+               const gchar *sender, const gchar *path, const gchar *iface, const gchar *name,
+               GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data)
+{
+       char *str_path;
+       pid_t pid;
+       struct statvfs s;
+
+       g_variant_get(param, "(s)", &str_path);
+
+       storage_get_memory_size(str_path, &s);
+
+       pid = dbus_handle_get_sender_pid(NULL, sender);
+
+       _D("[request %d] path %s", pid, str_path);
+
+       g_free(str_path);
+
+       return g_variant_new("(ttttttttttt)", (guint64)(s.f_bsize), (guint64)(s.f_frsize),
+                       (guint64)(s.f_blocks), (guint64)(s.f_bfree), (guint64)(s.f_bavail),
+                       (guint64)(s.f_files), (guint64)(s.f_ffree), (guint64)(s.f_favail),
+                       (guint64)(s.f_fsid), (guint64)(s.f_flag), (guint64)(s.f_namemax));
+
+}
+
 static const dbus_method_s storage_methods[] = {
        { "getstorage", NULL, "tt", dbus_getstatus },
        { "GetStatus",   "s", "tt", dbus_get_storage_status},
+       { "GetStatvfs",  "s", "ttttttttttt", dbus_getstatvfs },
        /* Add methods here */
 };