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