xref: /onnv-gate/usr/src/lib/hal/libhal-storage/common/libhal-storage.h (revision 2912:85ea316d9c18)
1*2912Sartem /***************************************************************************
2*2912Sartem  * CVSID: $Id$
3*2912Sartem  *
4*2912Sartem  * libhal-storage.h : HAL convenience library for storage devices and volumes
5*2912Sartem  *
6*2912Sartem  * Copyright (C) 2004 Red Hat, Inc.
7*2912Sartem  *
8*2912Sartem  * Author: David Zeuthen <davidz@redhat.com>
9*2912Sartem  *
10*2912Sartem  * Licensed under the Academic Free License version 2.1
11*2912Sartem  *
12*2912Sartem  * This program is free software; you can redistribute it and/or modify
13*2912Sartem  * it under the terms of the GNU General Public License as published by
14*2912Sartem  * the Free Software Foundation; either version 2 of the License, or
15*2912Sartem  * (at your option) any later version.
16*2912Sartem  *
17*2912Sartem  * This program is distributed in the hope that it will be useful,
18*2912Sartem  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19*2912Sartem  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20*2912Sartem  * GNU General Public License for more details.
21*2912Sartem  *
22*2912Sartem  * You should have received a copy of the GNU General Public License
23*2912Sartem  * along with this program; if not, write to the Free Software
24*2912Sartem  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
25*2912Sartem  *
26*2912Sartem  **************************************************************************/
27*2912Sartem 
28*2912Sartem #ifndef LIBHAL_STORAGE_H
29*2912Sartem #define LIBHAL_STORAGE_H
30*2912Sartem 
31*2912Sartem #include <libhal.h>
32*2912Sartem 
33*2912Sartem #if defined(__cplusplus)
34*2912Sartem extern "C" {
35*2912Sartem #if 0
36*2912Sartem } /* shut up emacs indenting */
37*2912Sartem #endif
38*2912Sartem #endif
39*2912Sartem 
40*2912Sartem struct LibHalDrive_s;
41*2912Sartem typedef struct LibHalDrive_s LibHalDrive;
42*2912Sartem struct LibHalVolume_s;
43*2912Sartem typedef struct LibHalVolume_s LibHalVolume;
44*2912Sartem struct LibHalStoragePolicy_s;
45*2912Sartem typedef struct LibHalStoragePolicy_s LibHalStoragePolicy;
46*2912Sartem 
47*2912Sartem 
48*2912Sartem typedef enum {
49*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK           = 0x10000,
50*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_IDE       = 0x10001,
51*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_SCSI      = 0x10002,
52*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_USB       = 0x10003,
53*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_IEEE1394  = 0x10004,
54*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_DISK                     = 0x10100,
55*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_DISK_IDE                 = 0x10101,
56*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_DISK_SCSI                = 0x10102,
57*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_DISK_USB                 = 0x10103,
58*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_DISK_IEEE1394            = 0x10104,
59*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_CDROM                    = 0x10200,
60*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_CDROM_IDE                = 0x10201,
61*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_CDROM_SCSI               = 0x10202,
62*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_CDROM_USB                = 0x10203,
63*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_CDROM_IEEE1394           = 0x10204,
64*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_FLOPPY                   = 0x10300,
65*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_FLOPPY_IDE               = 0x10301,
66*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_FLOPPY_SCSI              = 0x10302,
67*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_FLOPPY_USB               = 0x10303,
68*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_FLOPPY_IEEE1394          = 0x10304,
69*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_TAPE                     = 0x10400,
70*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_COMPACT_FLASH            = 0x10500,
71*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_MEMORY_STICK             = 0x10600,
72*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_SMART_MEDIA              = 0x10700,
73*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_SD_MMC                   = 0x10800,
74*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_CAMERA                   = 0x10900,
75*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_PORTABLE_AUDIO_PLAYER    = 0x10a00,
76*2912Sartem 	LIBHAL_STORAGE_ICON_DRIVE_ZIP                      = 0x10b00,
77*2912Sartem         LIBHAL_STORAGE_ICON_DRIVE_JAZ                      = 0x10c00,
78*2912Sartem         LIBHAL_STORAGE_ICON_DRIVE_FLASH_KEY                = 0x10d00,
79*2912Sartem 
80*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK          = 0x20000,
81*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_IDE      = 0x20001,
82*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_SCSI     = 0x20002,
83*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_USB      = 0x20003,
84*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_IEEE1394 = 0x20004,
85*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_DISK                    = 0x20100,
86*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_DISK_IDE                = 0x20101,
87*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_DISK_SCSI               = 0x20102,
88*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_DISK_USB                = 0x20103,
89*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_DISK_IEEE1394           = 0x20104,
90*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_CDROM                   = 0x20200,
91*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_CDROM_IDE               = 0x20201,
92*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_CDROM_SCSI              = 0x20202,
93*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_CDROM_USB               = 0x20203,
94*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_CDROM_IEEE1394          = 0x20204,
95*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_FLOPPY                  = 0x20300,
96*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_FLOPPY_IDE              = 0x20301,
97*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_FLOPPY_SCSI             = 0x20302,
98*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_FLOPPY_USB              = 0x20303,
99*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_FLOPPY_IEEE1394         = 0x20304,
100*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_TAPE                    = 0x20400,
101*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_COMPACT_FLASH           = 0x20500,
102*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_MEMORY_STICK            = 0x20600,
103*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_SMART_MEDIA             = 0x20700,
104*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_SD_MMC                  = 0x20800,
105*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_CAMERA                  = 0x20900,
106*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_PORTABLE_AUDIO_PLAYER   = 0x20a00,
107*2912Sartem 	LIBHAL_STORAGE_ICON_VOLUME_ZIP                     = 0x20b00,
108*2912Sartem         LIBHAL_STORAGE_ICON_VOLUME_JAZ                     = 0x20c00,
109*2912Sartem         LIBHAL_STORAGE_ICON_VOLUME_FLASH_KEY               = 0x20d00,
110*2912Sartem 
111*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_CDROM                     = 0x30000,
112*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_CDR                       = 0x30001,
113*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_CDRW                      = 0x30002,
114*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_DVDROM                    = 0x30003,
115*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_DVDRAM                    = 0x30004,
116*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_DVDR                      = 0x30005,
117*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_DVDRW                     = 0x30006,
118*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_DVDPLUSR                  = 0x30007,
119*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_DVDPLUSRW                 = 0x30008,
120*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_DVDPLUSRWDL               = 0x30009,
121*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_BDROM                     = 0x3000a,
122*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_BDR                       = 0x3000b,
123*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_BDRE                      = 0x3000c,
124*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_HDDVDROM                  = 0x3000d,
125*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_HDDVDR                    = 0x3000e,
126*2912Sartem 	LIBHAL_STORAGE_ICON_DISC_HDDVDRW                   = 0x3000f
127*2912Sartem } LibHalStoragePolicyIcon;
128*2912Sartem 
129*2912Sartem typedef struct {
130*2912Sartem 	LibHalStoragePolicyIcon icon;
131*2912Sartem 	const char *icon_path;
132*2912Sartem } LibHalStoragePolicyIconPair;
133*2912Sartem 
134*2912Sartem LibHalStoragePolicy *libhal_storage_policy_new		    (void) LIBHAL_DEPRECATED;
135*2912Sartem void                 libhal_storage_policy_free		    (LibHalStoragePolicy *policy) LIBHAL_DEPRECATED;
136*2912Sartem 
137*2912Sartem void                 libhal_storage_policy_set_icon_path    (LibHalStoragePolicy *policy,
138*2912Sartem 		   					     LibHalStoragePolicyIcon icon,
139*2912Sartem 							     const char *path) LIBHAL_DEPRECATED;
140*2912Sartem 
141*2912Sartem void                 libhal_storage_policy_set_icon_mapping (LibHalStoragePolicy *policy,
142*2912Sartem 							     LibHalStoragePolicyIconPair *pairs) LIBHAL_DEPRECATED;
143*2912Sartem const char  	    *libhal_storage_policy_lookup_icon	    (LibHalStoragePolicy *policy,
144*2912Sartem 						  	     LibHalStoragePolicyIcon icon) LIBHAL_DEPRECATED;
145*2912Sartem 
146*2912Sartem typedef enum {
147*2912Sartem 	LIBHAL_DRIVE_BUS_UNKNOWN     = 0x00,
148*2912Sartem 	LIBHAL_DRIVE_BUS_IDE         = 0x01,
149*2912Sartem 	LIBHAL_DRIVE_BUS_SCSI        = 0x02,
150*2912Sartem 	LIBHAL_DRIVE_BUS_USB         = 0x03,
151*2912Sartem 	LIBHAL_DRIVE_BUS_IEEE1394    = 0x04,
152*2912Sartem 	LIBHAL_DRIVE_BUS_CCW         = 0x05
153*2912Sartem } LibHalDriveBus;
154*2912Sartem 
155*2912Sartem typedef enum {
156*2912Sartem 	LIBHAL_DRIVE_TYPE_REMOVABLE_DISK        = 0x00,
157*2912Sartem 	LIBHAL_DRIVE_TYPE_DISK                  = 0x01,
158*2912Sartem 	LIBHAL_DRIVE_TYPE_CDROM                 = 0x02,
159*2912Sartem 	LIBHAL_DRIVE_TYPE_FLOPPY                = 0x03,
160*2912Sartem 	LIBHAL_DRIVE_TYPE_TAPE                  = 0x04,
161*2912Sartem 	LIBHAL_DRIVE_TYPE_COMPACT_FLASH         = 0x05,
162*2912Sartem 	LIBHAL_DRIVE_TYPE_MEMORY_STICK          = 0x06,
163*2912Sartem 	LIBHAL_DRIVE_TYPE_SMART_MEDIA           = 0x07,
164*2912Sartem 	LIBHAL_DRIVE_TYPE_SD_MMC                = 0x08,
165*2912Sartem 	LIBHAL_DRIVE_TYPE_CAMERA                = 0x09,
166*2912Sartem 	LIBHAL_DRIVE_TYPE_PORTABLE_AUDIO_PLAYER = 0x0a,
167*2912Sartem 	LIBHAL_DRIVE_TYPE_ZIP                   = 0x0b,
168*2912Sartem 	LIBHAL_DRIVE_TYPE_JAZ                   = 0x0c,
169*2912Sartem 	LIBHAL_DRIVE_TYPE_FLASHKEY              = 0x0d
170*2912Sartem } LibHalDriveType;
171*2912Sartem 
172*2912Sartem typedef enum {
173*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_CDROM       = 0x00001,
174*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_CDR         = 0x00002,
175*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_CDRW        = 0x00004,
176*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_DVDRAM      = 0x00008,
177*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_DVDROM      = 0x00010,
178*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_DVDR        = 0x00020,
179*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_DVDRW       = 0x00040,
180*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSR    = 0x00080,
181*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRW   = 0x00100,
182*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRDL  = 0x00200,
183*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRWDL = 0x00400,
184*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_BDROM       = 0x00800,
185*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_BDR         = 0x01000,
186*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_BDRE        = 0x02000,
187*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_HDDVDROM    = 0x04000,
188*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_HDDVDR      = 0x08000,
189*2912Sartem 	LIBHAL_DRIVE_CDROM_CAPS_HDDVDRW     = 0x10000
190*2912Sartem } LibHalDriveCdromCaps;
191*2912Sartem 
192*2912Sartem LibHalDrive         *libhal_drive_from_udi                    (LibHalContext *hal_ctx,
193*2912Sartem 							       const char *udi);
194*2912Sartem LibHalDrive         *libhal_drive_from_device_file            (LibHalContext *hal_ctx,
195*2912Sartem 							       const char *device_file);
196*2912Sartem void                 libhal_drive_free                        (LibHalDrive *drive);
197*2912Sartem 
198*2912Sartem dbus_bool_t          libhal_drive_is_hotpluggable          (LibHalDrive      *drive);
199*2912Sartem dbus_bool_t          libhal_drive_uses_removable_media     (LibHalDrive      *drive);
200*2912Sartem dbus_bool_t          libhal_drive_is_media_detected        (LibHalDrive      *drive);
201*2912Sartem dbus_uint64_t        libhal_drive_get_size                 (LibHalDrive      *drive);
202*2912Sartem dbus_uint64_t        libhal_drive_get_media_size           (LibHalDrive      *drive);
203*2912Sartem const char          *libhal_drive_get_partition_scheme     (LibHalDrive      *drive);
204*2912Sartem dbus_bool_t          libhal_drive_no_partitions_hint       (LibHalDrive      *drive);
205*2912Sartem dbus_bool_t          libhal_drive_requires_eject           (LibHalDrive      *drive);
206*2912Sartem LibHalDriveType      libhal_drive_get_type                 (LibHalDrive      *drive);
207*2912Sartem LibHalDriveBus       libhal_drive_get_bus                  (LibHalDrive      *drive);
208*2912Sartem LibHalDriveCdromCaps libhal_drive_get_cdrom_caps           (LibHalDrive      *drive);
209*2912Sartem unsigned int         libhal_drive_get_device_major         (LibHalDrive      *drive);
210*2912Sartem unsigned int         libhal_drive_get_device_minor         (LibHalDrive      *drive);
211*2912Sartem const char          *libhal_drive_get_type_textual         (LibHalDrive      *drive);
212*2912Sartem const char          *libhal_drive_get_device_file          (LibHalDrive      *drive);
213*2912Sartem const char          *libhal_drive_get_udi                  (LibHalDrive      *drive);
214*2912Sartem const char          *libhal_drive_get_serial               (LibHalDrive      *drive);
215*2912Sartem const char          *libhal_drive_get_firmware_version     (LibHalDrive      *drive);
216*2912Sartem const char          *libhal_drive_get_model                (LibHalDrive      *drive);
217*2912Sartem const char          *libhal_drive_get_vendor               (LibHalDrive      *drive);
218*2912Sartem const char          *libhal_drive_get_physical_device_udi  (LibHalDrive      *drive);
219*2912Sartem 
220*2912Sartem const char          *libhal_drive_get_dedicated_icon_drive    (LibHalDrive      *drive);
221*2912Sartem const char          *libhal_drive_get_dedicated_icon_volume   (LibHalDrive      *drive);
222*2912Sartem 
223*2912Sartem char                *libhal_drive_policy_compute_display_name (LibHalDrive        *drive,
224*2912Sartem 							       LibHalVolume        *volume,
225*2912Sartem 							       LibHalStoragePolicy *policy) LIBHAL_DEPRECATED;
226*2912Sartem char                *libhal_drive_policy_compute_icon_name    (LibHalDrive         *drive,
227*2912Sartem 							       LibHalVolume        *volume,
228*2912Sartem 							       LibHalStoragePolicy *policy) LIBHAL_DEPRECATED;
229*2912Sartem 
230*2912Sartem dbus_bool_t          libhal_drive_policy_is_mountable            (LibHalDrive         *drive,
231*2912Sartem 								  LibHalStoragePolicy *policy) LIBHAL_DEPRECATED;
232*2912Sartem const char          *libhal_drive_policy_get_desired_mount_point (LibHalDrive         *drive,
233*2912Sartem 								  LibHalStoragePolicy *policy) LIBHAL_DEPRECATED;
234*2912Sartem const char          *libhal_drive_policy_get_mount_options       (LibHalDrive         *drive,
235*2912Sartem 							          LibHalStoragePolicy *policy) LIBHAL_DEPRECATED;
236*2912Sartem const char          *libhal_drive_policy_get_mount_fs            (LibHalDrive      *drive,
237*2912Sartem 								  LibHalStoragePolicy *policy) LIBHAL_DEPRECATED;
238*2912Sartem 
239*2912Sartem char               **libhal_drive_find_all_volumes (LibHalContext *hal_ctx,
240*2912Sartem 						    LibHalDrive   *drive,
241*2912Sartem 						    int 	  *num_volumes);
242*2912Sartem 
243*2912Sartem 
244*2912Sartem char        *libhal_drive_policy_default_get_mount_root                (LibHalContext *hal_ctx) LIBHAL_DEPRECATED;
245*2912Sartem dbus_bool_t  libhal_drive_policy_default_use_managed_keyword           (LibHalContext *hal_ctx) LIBHAL_DEPRECATED;
246*2912Sartem char        *libhal_drive_policy_default_get_managed_keyword_primary   (LibHalContext *hal_ctx) LIBHAL_DEPRECATED;
247*2912Sartem char        *libhal_drive_policy_default_get_managed_keyword_secondary (LibHalContext *hal_ctx) LIBHAL_DEPRECATED;
248*2912Sartem 
249*2912Sartem 
250*2912Sartem typedef enum {
251*2912Sartem 	LIBHAL_VOLUME_USAGE_MOUNTABLE_FILESYSTEM,
252*2912Sartem 	LIBHAL_VOLUME_USAGE_PARTITION_TABLE,
253*2912Sartem 	LIBHAL_VOLUME_USAGE_RAID_MEMBER,
254*2912Sartem 	LIBHAL_VOLUME_USAGE_CRYPTO,
255*2912Sartem 	LIBHAL_VOLUME_USAGE_UNKNOWN,
256*2912Sartem 	LIBHAL_VOLUME_USAGE_OTHER
257*2912Sartem } LibHalVolumeUsage;
258*2912Sartem 
259*2912Sartem typedef enum {
260*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_CDROM       = 0x00,
261*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_CDR         = 0x01,
262*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_CDRW        = 0x02,
263*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_DVDROM      = 0x03,
264*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_DVDRAM      = 0x04,
265*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_DVDR        = 0x05,
266*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_DVDRW       = 0x06,
267*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR    = 0x07,
268*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_DVDPLUSRW   = 0x08,
269*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR_DL = 0x09,
270*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_BDROM       = 0x0a,
271*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_BDR         = 0x0b,
272*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_BDRE        = 0x0c,
273*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_HDDVDROM    = 0x0d,
274*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_HDDVDR      = 0x0e,
275*2912Sartem 	LIBHAL_VOLUME_DISC_TYPE_HDDVDRW     = 0x0f
276*2912Sartem } LibHalVolumeDiscType;
277*2912Sartem 
278*2912Sartem LibHalVolume     *libhal_volume_from_udi                      (LibHalContext *hal_ctx,
279*2912Sartem 							       const char *udi);
280*2912Sartem LibHalVolume     *libhal_volume_from_device_file              (LibHalContext *hal_ctx,
281*2912Sartem 							       const char *device_file);
282*2912Sartem void              libhal_volume_free                          (LibHalVolume     *volume);
283*2912Sartem dbus_uint64_t     libhal_volume_get_size                      (LibHalVolume     *volume);
284*2912Sartem dbus_uint64_t     libhal_volume_get_disc_capacity             (LibHalVolume     *volume);
285*2912Sartem 
286*2912Sartem const char          *libhal_volume_get_udi                       (LibHalVolume     *volume);
287*2912Sartem const char          *libhal_volume_get_device_file               (LibHalVolume     *volume);
288*2912Sartem unsigned int         libhal_volume_get_device_major              (LibHalVolume     *volume);
289*2912Sartem unsigned int         libhal_volume_get_device_minor              (LibHalVolume     *volume);
290*2912Sartem const char          *libhal_volume_get_fstype                    (LibHalVolume     *volume);
291*2912Sartem const char          *libhal_volume_get_fsversion                 (LibHalVolume     *volume);
292*2912Sartem LibHalVolumeUsage    libhal_volume_get_fsusage                   (LibHalVolume     *volume);
293*2912Sartem dbus_bool_t          libhal_volume_is_mounted                    (LibHalVolume     *volume);
294*2912Sartem dbus_bool_t          libhal_volume_is_mounted_read_only          (LibHalVolume     *volume);
295*2912Sartem dbus_bool_t          libhal_volume_is_partition                  (LibHalVolume     *volume);
296*2912Sartem dbus_bool_t          libhal_volume_is_disc                       (LibHalVolume     *volume);
297*2912Sartem 
298*2912Sartem const char          *libhal_volume_get_partition_scheme          (LibHalVolume     *volume);
299*2912Sartem const char          *libhal_volume_get_partition_type            (LibHalVolume     *volume);
300*2912Sartem const char          *libhal_volume_get_partition_label           (LibHalVolume     *volume);
301*2912Sartem const char          *libhal_volume_get_partition_uuid            (LibHalVolume     *volume);
302*2912Sartem const char         **libhal_volume_get_partition_flags           (LibHalVolume     *volume);
303*2912Sartem unsigned int         libhal_volume_get_partition_number          (LibHalVolume     *volume);
304*2912Sartem dbus_uint64_t        libhal_volume_get_partition_start_offset    (LibHalVolume     *volume);
305*2912Sartem dbus_uint64_t        libhal_volume_get_partition_media_size      (LibHalVolume     *volume);
306*2912Sartem 
307*2912Sartem const char          *libhal_volume_get_label                     (LibHalVolume     *volume);
308*2912Sartem const char          *libhal_volume_get_mount_point               (LibHalVolume     *volume);
309*2912Sartem const char          *libhal_volume_get_uuid                      (LibHalVolume     *volume);
310*2912Sartem const char          *libhal_volume_get_storage_device_udi        (LibHalVolume     *volume);
311*2912Sartem 
312*2912Sartem const char          *libhal_volume_crypto_get_backing_volume_udi (LibHalVolume     *volume);
313*2912Sartem char                *libhal_volume_crypto_get_clear_volume_udi   (LibHalContext    *hal_ctx, LibHalVolume *volume);
314*2912Sartem 
315*2912Sartem 
316*2912Sartem dbus_bool_t          libhal_volume_disc_has_audio             (LibHalVolume     *volume);
317*2912Sartem dbus_bool_t          libhal_volume_disc_has_data              (LibHalVolume     *volume);
318*2912Sartem dbus_bool_t          libhal_volume_disc_is_blank              (LibHalVolume     *volume);
319*2912Sartem dbus_bool_t          libhal_volume_disc_is_rewritable         (LibHalVolume     *volume);
320*2912Sartem dbus_bool_t          libhal_volume_disc_is_appendable         (LibHalVolume     *volume);
321*2912Sartem LibHalVolumeDiscType libhal_volume_get_disc_type              (LibHalVolume     *volume);
322*2912Sartem 
323*2912Sartem int               libhal_volume_get_msdos_part_table_type     (LibHalVolume     *volume)  LIBHAL_DEPRECATED;
324*2912Sartem dbus_uint64_t     libhal_volume_get_msdos_part_table_start    (LibHalVolume     *volume)  LIBHAL_DEPRECATED;
325*2912Sartem dbus_uint64_t     libhal_volume_get_msdos_part_table_size     (LibHalVolume     *volume)  LIBHAL_DEPRECATED;
326*2912Sartem 
327*2912Sartem 
328*2912Sartem dbus_bool_t       libhal_volume_should_ignore 	              (LibHalVolume     *volume);
329*2912Sartem 
330*2912Sartem char             *libhal_volume_policy_compute_size_as_string (LibHalVolume     *volume) LIBHAL_DEPRECATED;
331*2912Sartem 
332*2912Sartem char             *libhal_volume_policy_compute_display_name   (LibHalDrive         *drive,
333*2912Sartem 							       LibHalVolume        *volume,
334*2912Sartem 							       LibHalStoragePolicy *policy) LIBHAL_DEPRECATED;
335*2912Sartem char             *libhal_volume_policy_compute_icon_name      (LibHalDrive         *drive,
336*2912Sartem 							       LibHalVolume        *volume,
337*2912Sartem 							       LibHalStoragePolicy *policy) LIBHAL_DEPRECATED;
338*2912Sartem 
339*2912Sartem dbus_bool_t       libhal_volume_policy_should_be_visible      (LibHalDrive         *drive,
340*2912Sartem 							       LibHalVolume        *volume,
341*2912Sartem 							       LibHalStoragePolicy *policy,
342*2912Sartem 							       const char          *target_mount_point) LIBHAL_DEPRECATED;
343*2912Sartem 
344*2912Sartem dbus_bool_t       libhal_volume_policy_is_mountable		(LibHalDrive         *drive,
345*2912Sartem 								 LibHalVolume        *volume,
346*2912Sartem 								 LibHalStoragePolicy *policy) LIBHAL_DEPRECATED;
347*2912Sartem const char       *libhal_volume_policy_get_desired_mount_point  (LibHalDrive         *drive,
348*2912Sartem 								 LibHalVolume        *volume,
349*2912Sartem 								 LibHalStoragePolicy *policy) LIBHAL_DEPRECATED;
350*2912Sartem const char       *libhal_volume_policy_get_mount_options   	(LibHalDrive         *drive,
351*2912Sartem 							    	 LibHalVolume        *volume,
352*2912Sartem 							    	 LibHalStoragePolicy *policy) LIBHAL_DEPRECATED;
353*2912Sartem const char       *libhal_volume_policy_get_mount_fs        	(LibHalDrive         *drive,
354*2912Sartem 							    	 LibHalVolume        *volume,
355*2912Sartem 							    	 LibHalStoragePolicy *policy) LIBHAL_DEPRECATED;
356*2912Sartem 
357*2912Sartem 
358*2912Sartem #if defined(__cplusplus)
359*2912Sartem }
360*2912Sartem #endif
361*2912Sartem 
362*2912Sartem #endif /* LIBHAL_STORAGE_H */
363