1 | /* GIO - GLib Input, Output and Streaming Library |
2 | * |
3 | * Copyright (C) 2006-2007 Red Hat, Inc. |
4 | * |
5 | * This library is free software; you can redistribute it and/or |
6 | * modify it under the terms of the GNU Lesser General Public |
7 | * License as published by the Free Software Foundation; either |
8 | * version 2.1 of the License, or (at your option) any later version. |
9 | * |
10 | * This library 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 GNU |
13 | * Lesser General Public License for more details. |
14 | * |
15 | * You should have received a copy of the GNU Lesser General |
16 | * Public License along with this library; if not, see <http://www.gnu.org/licenses/>. |
17 | * |
18 | * Author: Alexander Larsson <alexl@redhat.com> |
19 | */ |
20 | |
21 | #ifndef __G_UNIX_MOUNTS_H__ |
22 | #define __G_UNIX_MOUNTS_H__ |
23 | |
24 | #include <gio/gio.h> |
25 | |
26 | G_BEGIN_DECLS |
27 | |
28 | /** |
29 | * GUnixMountEntry: |
30 | * |
31 | * Defines a Unix mount entry (e.g. <filename>/media/cdrom</filename>). |
32 | * This corresponds roughly to a mtab entry. |
33 | **/ |
34 | typedef struct _GUnixMountEntry GUnixMountEntry; |
35 | |
36 | #define G_TYPE_UNIX_MOUNT_ENTRY (g_unix_mount_entry_get_type ()) |
37 | GLIB_AVAILABLE_IN_2_54 |
38 | GType g_unix_mount_entry_get_type (void) G_GNUC_CONST; |
39 | |
40 | /** |
41 | * GUnixMountPoint: |
42 | * |
43 | * Defines a Unix mount point (e.g. <filename>/dev</filename>). |
44 | * This corresponds roughly to a fstab entry. |
45 | **/ |
46 | typedef struct _GUnixMountPoint GUnixMountPoint; |
47 | |
48 | #define G_TYPE_UNIX_MOUNT_POINT (g_unix_mount_point_get_type ()) |
49 | GLIB_AVAILABLE_IN_2_54 |
50 | GType g_unix_mount_point_get_type (void) G_GNUC_CONST; |
51 | |
52 | /** |
53 | * GUnixMountMonitor: |
54 | * |
55 | * Watches #GUnixMounts for changes. |
56 | **/ |
57 | typedef struct _GUnixMountMonitor GUnixMountMonitor; |
58 | typedef struct _GUnixMountMonitorClass GUnixMountMonitorClass; |
59 | |
60 | #define G_TYPE_UNIX_MOUNT_MONITOR (g_unix_mount_monitor_get_type ()) |
61 | #define G_UNIX_MOUNT_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_UNIX_MOUNT_MONITOR, GUnixMountMonitor)) |
62 | #define G_UNIX_MOUNT_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_UNIX_MOUNT_MONITOR, GUnixMountMonitorClass)) |
63 | #define G_IS_UNIX_MOUNT_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_UNIX_MOUNT_MONITOR)) |
64 | #define G_IS_UNIX_MOUNT_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_UNIX_MOUNT_MONITOR)) |
65 | G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixMountMonitor, g_object_unref) |
66 | |
67 | GLIB_AVAILABLE_IN_ALL |
68 | void g_unix_mount_free (GUnixMountEntry *mount_entry); |
69 | GLIB_AVAILABLE_IN_2_54 |
70 | GUnixMountEntry *g_unix_mount_copy (GUnixMountEntry *mount_entry); |
71 | GLIB_AVAILABLE_IN_ALL |
72 | void g_unix_mount_point_free (GUnixMountPoint *mount_point); |
73 | GLIB_AVAILABLE_IN_2_54 |
74 | GUnixMountPoint *g_unix_mount_point_copy (GUnixMountPoint *mount_point); |
75 | GLIB_AVAILABLE_IN_ALL |
76 | gint g_unix_mount_compare (GUnixMountEntry *mount1, |
77 | GUnixMountEntry *mount2); |
78 | GLIB_AVAILABLE_IN_ALL |
79 | const char * g_unix_mount_get_mount_path (GUnixMountEntry *mount_entry); |
80 | GLIB_AVAILABLE_IN_ALL |
81 | const char * g_unix_mount_get_device_path (GUnixMountEntry *mount_entry); |
82 | GLIB_AVAILABLE_IN_2_60 |
83 | const char * g_unix_mount_get_root_path (GUnixMountEntry *mount_entry); |
84 | GLIB_AVAILABLE_IN_ALL |
85 | const char * g_unix_mount_get_fs_type (GUnixMountEntry *mount_entry); |
86 | GLIB_AVAILABLE_IN_2_58 |
87 | const char * g_unix_mount_get_options (GUnixMountEntry *mount_entry); |
88 | GLIB_AVAILABLE_IN_ALL |
89 | gboolean g_unix_mount_is_readonly (GUnixMountEntry *mount_entry); |
90 | GLIB_AVAILABLE_IN_ALL |
91 | gboolean g_unix_mount_is_system_internal (GUnixMountEntry *mount_entry); |
92 | GLIB_AVAILABLE_IN_ALL |
93 | gboolean g_unix_mount_guess_can_eject (GUnixMountEntry *mount_entry); |
94 | GLIB_AVAILABLE_IN_ALL |
95 | gboolean g_unix_mount_guess_should_display (GUnixMountEntry *mount_entry); |
96 | GLIB_AVAILABLE_IN_ALL |
97 | char * g_unix_mount_guess_name (GUnixMountEntry *mount_entry); |
98 | GLIB_AVAILABLE_IN_ALL |
99 | GIcon * g_unix_mount_guess_icon (GUnixMountEntry *mount_entry); |
100 | GLIB_AVAILABLE_IN_ALL |
101 | GIcon * g_unix_mount_guess_symbolic_icon (GUnixMountEntry *mount_entry); |
102 | |
103 | G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixMountEntry, g_unix_mount_free) |
104 | G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixMountPoint, g_unix_mount_point_free) |
105 | |
106 | GLIB_AVAILABLE_IN_ALL |
107 | gint g_unix_mount_point_compare (GUnixMountPoint *mount1, |
108 | GUnixMountPoint *mount2); |
109 | GLIB_AVAILABLE_IN_ALL |
110 | const char * g_unix_mount_point_get_mount_path (GUnixMountPoint *mount_point); |
111 | GLIB_AVAILABLE_IN_ALL |
112 | const char * g_unix_mount_point_get_device_path (GUnixMountPoint *mount_point); |
113 | GLIB_AVAILABLE_IN_ALL |
114 | const char * g_unix_mount_point_get_fs_type (GUnixMountPoint *mount_point); |
115 | GLIB_AVAILABLE_IN_2_32 |
116 | const char * g_unix_mount_point_get_options (GUnixMountPoint *mount_point); |
117 | GLIB_AVAILABLE_IN_ALL |
118 | gboolean g_unix_mount_point_is_readonly (GUnixMountPoint *mount_point); |
119 | GLIB_AVAILABLE_IN_ALL |
120 | gboolean g_unix_mount_point_is_user_mountable (GUnixMountPoint *mount_point); |
121 | GLIB_AVAILABLE_IN_ALL |
122 | gboolean g_unix_mount_point_is_loopback (GUnixMountPoint *mount_point); |
123 | GLIB_AVAILABLE_IN_ALL |
124 | gboolean g_unix_mount_point_guess_can_eject (GUnixMountPoint *mount_point); |
125 | GLIB_AVAILABLE_IN_ALL |
126 | char * g_unix_mount_point_guess_name (GUnixMountPoint *mount_point); |
127 | GLIB_AVAILABLE_IN_ALL |
128 | GIcon * g_unix_mount_point_guess_icon (GUnixMountPoint *mount_point); |
129 | GLIB_AVAILABLE_IN_ALL |
130 | GIcon * g_unix_mount_point_guess_symbolic_icon (GUnixMountPoint *mount_point); |
131 | |
132 | |
133 | GLIB_AVAILABLE_IN_ALL |
134 | GList * g_unix_mount_points_get (guint64 *time_read); |
135 | GLIB_AVAILABLE_IN_2_66 |
136 | GUnixMountPoint *g_unix_mount_point_at (const char *mount_path, |
137 | guint64 *time_read); |
138 | GLIB_AVAILABLE_IN_ALL |
139 | GList * g_unix_mounts_get (guint64 *time_read); |
140 | GLIB_AVAILABLE_IN_ALL |
141 | GUnixMountEntry *g_unix_mount_at (const char *mount_path, |
142 | guint64 *time_read); |
143 | GLIB_AVAILABLE_IN_2_52 |
144 | GUnixMountEntry *g_unix_mount_for (const char *file_path, |
145 | guint64 *time_read); |
146 | GLIB_AVAILABLE_IN_ALL |
147 | gboolean g_unix_mounts_changed_since (guint64 time); |
148 | GLIB_AVAILABLE_IN_ALL |
149 | gboolean g_unix_mount_points_changed_since (guint64 time); |
150 | |
151 | GLIB_AVAILABLE_IN_ALL |
152 | GType g_unix_mount_monitor_get_type (void) G_GNUC_CONST; |
153 | GLIB_AVAILABLE_IN_2_44 |
154 | GUnixMountMonitor *g_unix_mount_monitor_get (void); |
155 | GLIB_DEPRECATED_IN_2_44_FOR(g_unix_mount_monitor_get) |
156 | GUnixMountMonitor *g_unix_mount_monitor_new (void); |
157 | GLIB_DEPRECATED_IN_2_44 |
158 | void g_unix_mount_monitor_set_rate_limit (GUnixMountMonitor *mount_monitor, |
159 | int limit_msec); |
160 | |
161 | GLIB_AVAILABLE_IN_ALL |
162 | gboolean g_unix_is_mount_path_system_internal (const char *mount_path); |
163 | GLIB_AVAILABLE_IN_2_56 |
164 | gboolean g_unix_is_system_fs_type (const char *fs_type); |
165 | GLIB_AVAILABLE_IN_2_56 |
166 | gboolean g_unix_is_system_device_path (const char *device_path); |
167 | |
168 | G_END_DECLS |
169 | |
170 | #endif /* __G_UNIX_MOUNTS_H__ */ |
171 | |