1 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- 2 * 3 * Copyright (C) 2007-2010 David Zeuthen <zeuthen@gmail.com> 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 * 19 */ 20 21 #ifndef __UDISKS_DAEMON_H__ 22 #define __UDISKS_DAEMON_H__ 23 24 #include "config.h" 25 #include "udisksdaemontypes.h" 26 27 G_BEGIN_DECLS 28 29 #define UDISKS_TYPE_DAEMON (udisks_daemon_get_type ()) 30 #define UDISKS_DAEMON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), UDISKS_TYPE_DAEMON, UDisksDaemon)) 31 #define UDISKS_IS_DAEMON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), UDISKS_TYPE_DAEMON)) 32 33 GType udisks_daemon_get_type (void) G_GNUC_CONST; 34 UDisksDaemon *udisks_daemon_new (GDBusConnection *connection, 35 gboolean disable_modules, 36 gboolean force_load_modules, 37 gboolean uninstalled, 38 gboolean enable_tcrypt); 39 GDBusConnection *udisks_daemon_get_connection (UDisksDaemon *daemon); 40 GDBusObjectManagerServer *udisks_daemon_get_object_manager (UDisksDaemon *daemon); 41 UDisksMountMonitor *udisks_daemon_get_mount_monitor (UDisksDaemon *daemon); 42 UDisksCrypttabMonitor *udisks_daemon_get_crypttab_monitor (UDisksDaemon *daemon); 43 #ifdef HAVE_LIBMOUNT_UTAB 44 UDisksUtabMonitor *udisks_daemon_get_utab_monitor (UDisksDaemon *daemon); 45 #endif 46 UDisksLinuxProvider *udisks_daemon_get_linux_provider (UDisksDaemon *daemon); 47 PolkitAuthority *udisks_daemon_get_authority (UDisksDaemon *daemon); 48 UDisksState *udisks_daemon_get_state (UDisksDaemon *daemon); 49 UDisksModuleManager *udisks_daemon_get_module_manager (UDisksDaemon *daemon); 50 UDisksConfigManager *udisks_daemon_get_config_manager (UDisksDaemon *daemon); 51 gboolean udisks_daemon_get_disable_modules (UDisksDaemon *daemon); 52 gboolean udisks_daemon_get_force_load_modules(UDisksDaemon *daemon); 53 gboolean udisks_daemon_get_uninstalled (UDisksDaemon *daemon); 54 gboolean udisks_daemon_get_enable_tcrypt (UDisksDaemon *daemon); 55 const gchar *udisks_daemon_get_uuid (UDisksDaemon *daemon); 56 57 /** 58 * UDisksDaemonWaitFunc: 59 * @daemon: A #UDisksDaemon. 60 * @user_data: The #gpointer passed to udisks_daemon_wait_for_object_sync(). 61 * 62 * Type for callback function used with udisks_daemon_wait_for_object_sync(). 63 * 64 * Returns: (transfer full): %NULL if the object to wait for was not found, otherwise a full reference to a #UDisksObject. 65 */ 66 typedef gpointer (*UDisksDaemonWaitFuncGeneric) (UDisksDaemon *daemon, 67 gpointer user_data); 68 typedef UDisksObject *(*UDisksDaemonWaitFuncObject) (UDisksDaemon *daemon, 69 gpointer user_data); 70 typedef UDisksObject **(*UDisksDaemonWaitFuncObjects) (UDisksDaemon *daemon, 71 gpointer user_data); 72 73 UDisksObject *udisks_daemon_wait_for_object_sync (UDisksDaemon *daemon, 74 UDisksDaemonWaitFuncObject wait_func, 75 gpointer user_data, 76 GDestroyNotify user_data_free_func, 77 guint timeout_seconds, 78 GError **error); 79 80 UDisksObject **udisks_daemon_wait_for_objects_sync (UDisksDaemon *daemon, 81 UDisksDaemonWaitFuncObjects wait_func, 82 gpointer user_data, 83 GDestroyNotify user_data_free_func, 84 guint timeout_seconds, 85 GError **error); 86 87 gboolean udisks_daemon_wait_for_object_to_disappear_sync (UDisksDaemon *daemon, 88 UDisksDaemonWaitFuncObject wait_func, 89 gpointer user_data, 90 GDestroyNotify user_data_free_func, 91 guint timeout_seconds, 92 GError **error); 93 94 GList *udisks_daemon_get_objects (UDisksDaemon *daemon); 95 96 UDisksObject *udisks_daemon_find_block (UDisksDaemon *daemon, 97 dev_t block_device_number); 98 99 UDisksObject *udisks_daemon_find_block_by_device_file (UDisksDaemon *daemon, 100 const gchar *device_file); 101 102 UDisksObject *udisks_daemon_find_block_by_sysfs_path (UDisksDaemon *daemon, 103 const gchar *sysfs_path); 104 105 UDisksObject *udisks_daemon_find_object (UDisksDaemon *daemon, 106 const gchar *object_path); 107 108 UDisksBaseJob *udisks_daemon_launch_simple_job (UDisksDaemon *daemon, 109 UDisksObject *object, 110 const gchar *job_operation, 111 uid_t job_started_by_uid, 112 GCancellable *cancellable); 113 UDisksBaseJob *udisks_daemon_launch_spawned_job (UDisksDaemon *daemon, 114 UDisksObject *object, 115 const gchar *job_operation, 116 uid_t job_started_by_uid, 117 GCancellable *cancellable, 118 uid_t run_as_uid, 119 uid_t run_as_euid, 120 const gchar *input_string, 121 const gchar *command_line_format, 122 ...) G_GNUC_PRINTF (9, 10); 123 gboolean udisks_daemon_launch_spawned_job_sync (UDisksDaemon *daemon, 124 UDisksObject *object, 125 const gchar *job_operation, 126 uid_t job_started_by_uid, 127 GCancellable *cancellable, 128 uid_t run_as_uid, 129 uid_t run_as_euid, 130 gint *out_status, 131 gchar **out_message, 132 const gchar *input_string, 133 const gchar *command_line_format, 134 ...) G_GNUC_PRINTF (11, 12); 135 UDisksBaseJob *udisks_daemon_launch_spawned_job_gstring (UDisksDaemon *daemon, 136 UDisksObject *object, 137 const gchar *job_operation, 138 uid_t job_started_by_uid, 139 GCancellable *cancellable, 140 uid_t run_as_uid, 141 uid_t run_as_euid, 142 GString *input_string, 143 const gchar *command_line_format, 144 ...) G_GNUC_PRINTF (9, 10); 145 gboolean udisks_daemon_launch_spawned_job_gstring_sync (UDisksDaemon *daemon, 146 UDisksObject *object, 147 const gchar *job_operation, 148 uid_t job_started_by_uid, 149 GCancellable *cancellable, 150 uid_t run_as_uid, 151 uid_t run_as_euid, 152 gint *out_status, 153 gchar **out_message, 154 GString *input_string, 155 const gchar *command_line_format, 156 ...) G_GNUC_PRINTF (11, 12); 157 UDisksBaseJob *udisks_daemon_launch_threaded_job (UDisksDaemon *daemon, 158 UDisksObject *object, 159 const gchar *job_operation, 160 uid_t job_started_by_uid, 161 UDisksThreadedJobFunc job_func, 162 gpointer user_data, 163 GDestroyNotify user_data_free_func, 164 GCancellable *cancellable); 165 166 gboolean udisks_daemon_launch_threaded_job_sync (UDisksDaemon *daemon, 167 UDisksObject *object, 168 const gchar *job_operation, 169 uid_t job_started_by_uid, 170 UDisksThreadedJobFunc job_func, 171 gpointer user_data, 172 GDestroyNotify user_data_free_func, 173 GCancellable *cancellable, 174 GError **error); 175 176 void udisks_bd_thread_set_progress_for_job (UDisksJob *job); 177 void udisks_bd_thread_disable_progress (void); 178 179 gchar *udisks_daemon_get_parent_for_tracking (UDisksDaemon *daemon, 180 const gchar *path, 181 gchar **uuid); 182 183 G_END_DECLS 184 185 #endif /* __UDISKS_DAEMON_H__ */ 186