118c2aff7Sartem /*************************************************************************** 218c2aff7Sartem * CVSID: $Id$ 318c2aff7Sartem * 418c2aff7Sartem * libhal-storage.h : HAL convenience library for storage devices and volumes 518c2aff7Sartem * 618c2aff7Sartem * Copyright (C) 2004 Red Hat, Inc. 718c2aff7Sartem * 818c2aff7Sartem * Author: David Zeuthen <davidz@redhat.com> 918c2aff7Sartem * 1018c2aff7Sartem * Licensed under the Academic Free License version 2.1 1118c2aff7Sartem * 1218c2aff7Sartem * This program is free software; you can redistribute it and/or modify 1318c2aff7Sartem * it under the terms of the GNU General Public License as published by 1418c2aff7Sartem * the Free Software Foundation; either version 2 of the License, or 1518c2aff7Sartem * (at your option) any later version. 1618c2aff7Sartem * 1718c2aff7Sartem * This program is distributed in the hope that it will be useful, 1818c2aff7Sartem * but WITHOUT ANY WARRANTY; without even the implied warranty of 1918c2aff7Sartem * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 2018c2aff7Sartem * GNU General Public License for more details. 2118c2aff7Sartem * 2218c2aff7Sartem * You should have received a copy of the GNU General Public License 2318c2aff7Sartem * along with this program; if not, write to the Free Software 2418c2aff7Sartem * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 2518c2aff7Sartem * 2618c2aff7Sartem **************************************************************************/ 2718c2aff7Sartem 2818c2aff7Sartem #ifndef LIBHAL_STORAGE_H 2918c2aff7Sartem #define LIBHAL_STORAGE_H 3018c2aff7Sartem 3118c2aff7Sartem #include <libhal.h> 3218c2aff7Sartem 3318c2aff7Sartem #if defined(__cplusplus) 3418c2aff7Sartem extern "C" { 3518c2aff7Sartem #if 0 3618c2aff7Sartem } /* shut up emacs indenting */ 3718c2aff7Sartem #endif 3818c2aff7Sartem #endif 3918c2aff7Sartem 4018c2aff7Sartem struct LibHalDrive_s; 4118c2aff7Sartem typedef struct LibHalDrive_s LibHalDrive; 4218c2aff7Sartem struct LibHalVolume_s; 4318c2aff7Sartem typedef struct LibHalVolume_s LibHalVolume; 4418c2aff7Sartem struct LibHalStoragePolicy_s; 4518c2aff7Sartem typedef struct LibHalStoragePolicy_s LibHalStoragePolicy; 4618c2aff7Sartem 4718c2aff7Sartem 4818c2aff7Sartem typedef enum { 4918c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK = 0x10000, 5018c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_IDE = 0x10001, 5118c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_SCSI = 0x10002, 5218c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_USB = 0x10003, 5318c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_IEEE1394 = 0x10004, 5418c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_DISK = 0x10100, 5518c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_DISK_IDE = 0x10101, 5618c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_DISK_SCSI = 0x10102, 5718c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_DISK_USB = 0x10103, 5818c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_DISK_IEEE1394 = 0x10104, 5918c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_CDROM = 0x10200, 6018c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_CDROM_IDE = 0x10201, 6118c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_CDROM_SCSI = 0x10202, 6218c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_CDROM_USB = 0x10203, 6318c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_CDROM_IEEE1394 = 0x10204, 6418c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_FLOPPY = 0x10300, 6518c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_FLOPPY_IDE = 0x10301, 6618c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_FLOPPY_SCSI = 0x10302, 6718c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_FLOPPY_USB = 0x10303, 6818c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_FLOPPY_IEEE1394 = 0x10304, 6918c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_TAPE = 0x10400, 7018c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_COMPACT_FLASH = 0x10500, 7118c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_MEMORY_STICK = 0x10600, 7218c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_SMART_MEDIA = 0x10700, 7318c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_SD_MMC = 0x10800, 7418c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_CAMERA = 0x10900, 7518c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_PORTABLE_AUDIO_PLAYER = 0x10a00, 7618c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_ZIP = 0x10b00, 7718c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_JAZ = 0x10c00, 7818c2aff7Sartem LIBHAL_STORAGE_ICON_DRIVE_FLASH_KEY = 0x10d00, 7918c2aff7Sartem 8018c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK = 0x20000, 8118c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_IDE = 0x20001, 8218c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_SCSI = 0x20002, 8318c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_USB = 0x20003, 8418c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_IEEE1394 = 0x20004, 8518c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_DISK = 0x20100, 8618c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_DISK_IDE = 0x20101, 8718c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_DISK_SCSI = 0x20102, 8818c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_DISK_USB = 0x20103, 8918c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_DISK_IEEE1394 = 0x20104, 9018c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_CDROM = 0x20200, 9118c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_CDROM_IDE = 0x20201, 9218c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_CDROM_SCSI = 0x20202, 9318c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_CDROM_USB = 0x20203, 9418c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_CDROM_IEEE1394 = 0x20204, 9518c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_FLOPPY = 0x20300, 9618c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_FLOPPY_IDE = 0x20301, 9718c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_FLOPPY_SCSI = 0x20302, 9818c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_FLOPPY_USB = 0x20303, 9918c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_FLOPPY_IEEE1394 = 0x20304, 10018c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_TAPE = 0x20400, 10118c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_COMPACT_FLASH = 0x20500, 10218c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_MEMORY_STICK = 0x20600, 10318c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_SMART_MEDIA = 0x20700, 10418c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_SD_MMC = 0x20800, 10518c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_CAMERA = 0x20900, 10618c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_PORTABLE_AUDIO_PLAYER = 0x20a00, 10718c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_ZIP = 0x20b00, 10818c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_JAZ = 0x20c00, 10918c2aff7Sartem LIBHAL_STORAGE_ICON_VOLUME_FLASH_KEY = 0x20d00, 11018c2aff7Sartem 11118c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_CDROM = 0x30000, 11218c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_CDR = 0x30001, 11318c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_CDRW = 0x30002, 11418c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_DVDROM = 0x30003, 11518c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_DVDRAM = 0x30004, 11618c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_DVDR = 0x30005, 11718c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_DVDRW = 0x30006, 11818c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_DVDPLUSR = 0x30007, 11918c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_DVDPLUSRW = 0x30008, 12018c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_DVDPLUSRWDL = 0x30009, 12118c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_BDROM = 0x3000a, 12218c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_BDR = 0x3000b, 12318c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_BDRE = 0x3000c, 12418c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_HDDVDROM = 0x3000d, 12518c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_HDDVDR = 0x3000e, 12618c2aff7Sartem LIBHAL_STORAGE_ICON_DISC_HDDVDRW = 0x3000f 12718c2aff7Sartem } LibHalStoragePolicyIcon; 12818c2aff7Sartem 12918c2aff7Sartem typedef struct { 13018c2aff7Sartem LibHalStoragePolicyIcon icon; 13118c2aff7Sartem const char *icon_path; 13218c2aff7Sartem } LibHalStoragePolicyIconPair; 13318c2aff7Sartem 13418c2aff7Sartem LibHalStoragePolicy *libhal_storage_policy_new (void) LIBHAL_DEPRECATED; 13518c2aff7Sartem void libhal_storage_policy_free (LibHalStoragePolicy *policy) LIBHAL_DEPRECATED; 13618c2aff7Sartem 137*55fea89dSDan Cross void libhal_storage_policy_set_icon_path (LibHalStoragePolicy *policy, 13818c2aff7Sartem LibHalStoragePolicyIcon icon, 13918c2aff7Sartem const char *path) LIBHAL_DEPRECATED; 14018c2aff7Sartem 141*55fea89dSDan Cross void libhal_storage_policy_set_icon_mapping (LibHalStoragePolicy *policy, 14218c2aff7Sartem LibHalStoragePolicyIconPair *pairs) LIBHAL_DEPRECATED; 143*55fea89dSDan Cross const char *libhal_storage_policy_lookup_icon (LibHalStoragePolicy *policy, 14418c2aff7Sartem LibHalStoragePolicyIcon icon) LIBHAL_DEPRECATED; 14518c2aff7Sartem 14618c2aff7Sartem typedef enum { 14718c2aff7Sartem LIBHAL_DRIVE_BUS_UNKNOWN = 0x00, 14818c2aff7Sartem LIBHAL_DRIVE_BUS_IDE = 0x01, 14918c2aff7Sartem LIBHAL_DRIVE_BUS_SCSI = 0x02, 15018c2aff7Sartem LIBHAL_DRIVE_BUS_USB = 0x03, 15118c2aff7Sartem LIBHAL_DRIVE_BUS_IEEE1394 = 0x04, 15218c2aff7Sartem LIBHAL_DRIVE_BUS_CCW = 0x05 15318c2aff7Sartem } LibHalDriveBus; 15418c2aff7Sartem 15518c2aff7Sartem typedef enum { 15618c2aff7Sartem LIBHAL_DRIVE_TYPE_REMOVABLE_DISK = 0x00, 15718c2aff7Sartem LIBHAL_DRIVE_TYPE_DISK = 0x01, 15818c2aff7Sartem LIBHAL_DRIVE_TYPE_CDROM = 0x02, 15918c2aff7Sartem LIBHAL_DRIVE_TYPE_FLOPPY = 0x03, 16018c2aff7Sartem LIBHAL_DRIVE_TYPE_TAPE = 0x04, 16118c2aff7Sartem LIBHAL_DRIVE_TYPE_COMPACT_FLASH = 0x05, 16218c2aff7Sartem LIBHAL_DRIVE_TYPE_MEMORY_STICK = 0x06, 16318c2aff7Sartem LIBHAL_DRIVE_TYPE_SMART_MEDIA = 0x07, 16418c2aff7Sartem LIBHAL_DRIVE_TYPE_SD_MMC = 0x08, 16518c2aff7Sartem LIBHAL_DRIVE_TYPE_CAMERA = 0x09, 16618c2aff7Sartem LIBHAL_DRIVE_TYPE_PORTABLE_AUDIO_PLAYER = 0x0a, 16718c2aff7Sartem LIBHAL_DRIVE_TYPE_ZIP = 0x0b, 16818c2aff7Sartem LIBHAL_DRIVE_TYPE_JAZ = 0x0c, 16918c2aff7Sartem LIBHAL_DRIVE_TYPE_FLASHKEY = 0x0d 17018c2aff7Sartem } LibHalDriveType; 17118c2aff7Sartem 17218c2aff7Sartem typedef enum { 17318c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_CDROM = 0x00001, 17418c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_CDR = 0x00002, 17518c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_CDRW = 0x00004, 17618c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_DVDRAM = 0x00008, 17718c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_DVDROM = 0x00010, 17818c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_DVDR = 0x00020, 17918c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_DVDRW = 0x00040, 18018c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSR = 0x00080, 18118c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRW = 0x00100, 18218c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRDL = 0x00200, 18318c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRWDL = 0x00400, 18418c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_BDROM = 0x00800, 18518c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_BDR = 0x01000, 18618c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_BDRE = 0x02000, 18718c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_HDDVDROM = 0x04000, 18818c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_HDDVDR = 0x08000, 18918c2aff7Sartem LIBHAL_DRIVE_CDROM_CAPS_HDDVDRW = 0x10000 19018c2aff7Sartem } LibHalDriveCdromCaps; 19118c2aff7Sartem 192*55fea89dSDan Cross LibHalDrive *libhal_drive_from_udi (LibHalContext *hal_ctx, 19318c2aff7Sartem const char *udi); 194*55fea89dSDan Cross LibHalDrive *libhal_drive_from_device_file (LibHalContext *hal_ctx, 19518c2aff7Sartem const char *device_file); 19618c2aff7Sartem void libhal_drive_free (LibHalDrive *drive); 19718c2aff7Sartem 19818c2aff7Sartem dbus_bool_t libhal_drive_is_hotpluggable (LibHalDrive *drive); 19918c2aff7Sartem dbus_bool_t libhal_drive_uses_removable_media (LibHalDrive *drive); 20018c2aff7Sartem dbus_bool_t libhal_drive_is_media_detected (LibHalDrive *drive); 20118c2aff7Sartem dbus_uint64_t libhal_drive_get_size (LibHalDrive *drive); 20218c2aff7Sartem dbus_uint64_t libhal_drive_get_media_size (LibHalDrive *drive); 20318c2aff7Sartem const char *libhal_drive_get_partition_scheme (LibHalDrive *drive); 20418c2aff7Sartem dbus_bool_t libhal_drive_no_partitions_hint (LibHalDrive *drive); 20518c2aff7Sartem dbus_bool_t libhal_drive_requires_eject (LibHalDrive *drive); 20618c2aff7Sartem LibHalDriveType libhal_drive_get_type (LibHalDrive *drive); 20718c2aff7Sartem LibHalDriveBus libhal_drive_get_bus (LibHalDrive *drive); 20818c2aff7Sartem LibHalDriveCdromCaps libhal_drive_get_cdrom_caps (LibHalDrive *drive); 20918c2aff7Sartem unsigned int libhal_drive_get_device_major (LibHalDrive *drive); 21018c2aff7Sartem unsigned int libhal_drive_get_device_minor (LibHalDrive *drive); 21118c2aff7Sartem const char *libhal_drive_get_type_textual (LibHalDrive *drive); 21218c2aff7Sartem const char *libhal_drive_get_device_file (LibHalDrive *drive); 21318c2aff7Sartem const char *libhal_drive_get_udi (LibHalDrive *drive); 21418c2aff7Sartem const char *libhal_drive_get_serial (LibHalDrive *drive); 21518c2aff7Sartem const char *libhal_drive_get_firmware_version (LibHalDrive *drive); 21618c2aff7Sartem const char *libhal_drive_get_model (LibHalDrive *drive); 21718c2aff7Sartem const char *libhal_drive_get_vendor (LibHalDrive *drive); 21818c2aff7Sartem const char *libhal_drive_get_physical_device_udi (LibHalDrive *drive); 21918c2aff7Sartem 22018c2aff7Sartem const char *libhal_drive_get_dedicated_icon_drive (LibHalDrive *drive); 22118c2aff7Sartem const char *libhal_drive_get_dedicated_icon_volume (LibHalDrive *drive); 22218c2aff7Sartem 223*55fea89dSDan Cross char *libhal_drive_policy_compute_display_name (LibHalDrive *drive, 224*55fea89dSDan Cross LibHalVolume *volume, 22518c2aff7Sartem LibHalStoragePolicy *policy) LIBHAL_DEPRECATED; 226*55fea89dSDan Cross char *libhal_drive_policy_compute_icon_name (LibHalDrive *drive, 227*55fea89dSDan Cross LibHalVolume *volume, 22818c2aff7Sartem LibHalStoragePolicy *policy) LIBHAL_DEPRECATED; 22918c2aff7Sartem 230*55fea89dSDan Cross dbus_bool_t libhal_drive_policy_is_mountable (LibHalDrive *drive, 23118c2aff7Sartem LibHalStoragePolicy *policy) LIBHAL_DEPRECATED; 232*55fea89dSDan Cross const char *libhal_drive_policy_get_desired_mount_point (LibHalDrive *drive, 23318c2aff7Sartem LibHalStoragePolicy *policy) LIBHAL_DEPRECATED; 234*55fea89dSDan Cross const char *libhal_drive_policy_get_mount_options (LibHalDrive *drive, 23518c2aff7Sartem LibHalStoragePolicy *policy) LIBHAL_DEPRECATED; 236*55fea89dSDan Cross const char *libhal_drive_policy_get_mount_fs (LibHalDrive *drive, 23718c2aff7Sartem LibHalStoragePolicy *policy) LIBHAL_DEPRECATED; 23818c2aff7Sartem 239*55fea89dSDan Cross char **libhal_drive_find_all_volumes (LibHalContext *hal_ctx, 24018c2aff7Sartem LibHalDrive *drive, 24118c2aff7Sartem int *num_volumes); 24218c2aff7Sartem 24318c2aff7Sartem 24418c2aff7Sartem char *libhal_drive_policy_default_get_mount_root (LibHalContext *hal_ctx) LIBHAL_DEPRECATED; 24518c2aff7Sartem dbus_bool_t libhal_drive_policy_default_use_managed_keyword (LibHalContext *hal_ctx) LIBHAL_DEPRECATED; 24618c2aff7Sartem char *libhal_drive_policy_default_get_managed_keyword_primary (LibHalContext *hal_ctx) LIBHAL_DEPRECATED; 24718c2aff7Sartem char *libhal_drive_policy_default_get_managed_keyword_secondary (LibHalContext *hal_ctx) LIBHAL_DEPRECATED; 24818c2aff7Sartem 24918c2aff7Sartem 25018c2aff7Sartem typedef enum { 25118c2aff7Sartem LIBHAL_VOLUME_USAGE_MOUNTABLE_FILESYSTEM, 25218c2aff7Sartem LIBHAL_VOLUME_USAGE_PARTITION_TABLE, 25318c2aff7Sartem LIBHAL_VOLUME_USAGE_RAID_MEMBER, 25418c2aff7Sartem LIBHAL_VOLUME_USAGE_CRYPTO, 25518c2aff7Sartem LIBHAL_VOLUME_USAGE_UNKNOWN, 25618c2aff7Sartem LIBHAL_VOLUME_USAGE_OTHER 25718c2aff7Sartem } LibHalVolumeUsage; 25818c2aff7Sartem 25918c2aff7Sartem typedef enum { 26018c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_CDROM = 0x00, 26118c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_CDR = 0x01, 26218c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_CDRW = 0x02, 26318c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_DVDROM = 0x03, 26418c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_DVDRAM = 0x04, 26518c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_DVDR = 0x05, 26618c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_DVDRW = 0x06, 26718c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR = 0x07, 26818c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_DVDPLUSRW = 0x08, 26918c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR_DL = 0x09, 27018c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_BDROM = 0x0a, 27118c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_BDR = 0x0b, 27218c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_BDRE = 0x0c, 27318c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_HDDVDROM = 0x0d, 27418c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_HDDVDR = 0x0e, 27518c2aff7Sartem LIBHAL_VOLUME_DISC_TYPE_HDDVDRW = 0x0f 27618c2aff7Sartem } LibHalVolumeDiscType; 27718c2aff7Sartem 278*55fea89dSDan Cross LibHalVolume *libhal_volume_from_udi (LibHalContext *hal_ctx, 27918c2aff7Sartem const char *udi); 280*55fea89dSDan Cross LibHalVolume *libhal_volume_from_device_file (LibHalContext *hal_ctx, 28118c2aff7Sartem const char *device_file); 28218c2aff7Sartem void libhal_volume_free (LibHalVolume *volume); 28318c2aff7Sartem dbus_uint64_t libhal_volume_get_size (LibHalVolume *volume); 28418c2aff7Sartem dbus_uint64_t libhal_volume_get_disc_capacity (LibHalVolume *volume); 28518c2aff7Sartem 28618c2aff7Sartem const char *libhal_volume_get_udi (LibHalVolume *volume); 28718c2aff7Sartem const char *libhal_volume_get_device_file (LibHalVolume *volume); 28818c2aff7Sartem unsigned int libhal_volume_get_device_major (LibHalVolume *volume); 28918c2aff7Sartem unsigned int libhal_volume_get_device_minor (LibHalVolume *volume); 29018c2aff7Sartem const char *libhal_volume_get_fstype (LibHalVolume *volume); 29118c2aff7Sartem const char *libhal_volume_get_fsversion (LibHalVolume *volume); 29218c2aff7Sartem LibHalVolumeUsage libhal_volume_get_fsusage (LibHalVolume *volume); 29318c2aff7Sartem dbus_bool_t libhal_volume_is_mounted (LibHalVolume *volume); 29418c2aff7Sartem dbus_bool_t libhal_volume_is_mounted_read_only (LibHalVolume *volume); 29518c2aff7Sartem dbus_bool_t libhal_volume_is_partition (LibHalVolume *volume); 29618c2aff7Sartem dbus_bool_t libhal_volume_is_disc (LibHalVolume *volume); 29718c2aff7Sartem 29818c2aff7Sartem const char *libhal_volume_get_partition_scheme (LibHalVolume *volume); 29918c2aff7Sartem const char *libhal_volume_get_partition_type (LibHalVolume *volume); 30018c2aff7Sartem const char *libhal_volume_get_partition_label (LibHalVolume *volume); 30118c2aff7Sartem const char *libhal_volume_get_partition_uuid (LibHalVolume *volume); 30218c2aff7Sartem const char **libhal_volume_get_partition_flags (LibHalVolume *volume); 30318c2aff7Sartem unsigned int libhal_volume_get_partition_number (LibHalVolume *volume); 30418c2aff7Sartem dbus_uint64_t libhal_volume_get_partition_start_offset (LibHalVolume *volume); 30518c2aff7Sartem dbus_uint64_t libhal_volume_get_partition_media_size (LibHalVolume *volume); 30618c2aff7Sartem 30718c2aff7Sartem const char *libhal_volume_get_label (LibHalVolume *volume); 30818c2aff7Sartem const char *libhal_volume_get_mount_point (LibHalVolume *volume); 30918c2aff7Sartem const char *libhal_volume_get_uuid (LibHalVolume *volume); 31018c2aff7Sartem const char *libhal_volume_get_storage_device_udi (LibHalVolume *volume); 31118c2aff7Sartem 31218c2aff7Sartem const char *libhal_volume_crypto_get_backing_volume_udi (LibHalVolume *volume); 31318c2aff7Sartem char *libhal_volume_crypto_get_clear_volume_udi (LibHalContext *hal_ctx, LibHalVolume *volume); 31418c2aff7Sartem 31518c2aff7Sartem 31618c2aff7Sartem dbus_bool_t libhal_volume_disc_has_audio (LibHalVolume *volume); 31718c2aff7Sartem dbus_bool_t libhal_volume_disc_has_data (LibHalVolume *volume); 31818c2aff7Sartem dbus_bool_t libhal_volume_disc_is_blank (LibHalVolume *volume); 31918c2aff7Sartem dbus_bool_t libhal_volume_disc_is_rewritable (LibHalVolume *volume); 32018c2aff7Sartem dbus_bool_t libhal_volume_disc_is_appendable (LibHalVolume *volume); 32118c2aff7Sartem LibHalVolumeDiscType libhal_volume_get_disc_type (LibHalVolume *volume); 32218c2aff7Sartem 32318c2aff7Sartem int libhal_volume_get_msdos_part_table_type (LibHalVolume *volume) LIBHAL_DEPRECATED; 32418c2aff7Sartem dbus_uint64_t libhal_volume_get_msdos_part_table_start (LibHalVolume *volume) LIBHAL_DEPRECATED; 32518c2aff7Sartem dbus_uint64_t libhal_volume_get_msdos_part_table_size (LibHalVolume *volume) LIBHAL_DEPRECATED; 326*55fea89dSDan Cross 32718c2aff7Sartem 32818c2aff7Sartem dbus_bool_t libhal_volume_should_ignore (LibHalVolume *volume); 32918c2aff7Sartem 33018c2aff7Sartem char *libhal_volume_policy_compute_size_as_string (LibHalVolume *volume) LIBHAL_DEPRECATED; 33118c2aff7Sartem 332*55fea89dSDan Cross char *libhal_volume_policy_compute_display_name (LibHalDrive *drive, 333*55fea89dSDan Cross LibHalVolume *volume, 33418c2aff7Sartem LibHalStoragePolicy *policy) LIBHAL_DEPRECATED; 335*55fea89dSDan Cross char *libhal_volume_policy_compute_icon_name (LibHalDrive *drive, 336*55fea89dSDan Cross LibHalVolume *volume, 33718c2aff7Sartem LibHalStoragePolicy *policy) LIBHAL_DEPRECATED; 33818c2aff7Sartem 339*55fea89dSDan Cross dbus_bool_t libhal_volume_policy_should_be_visible (LibHalDrive *drive, 340*55fea89dSDan Cross LibHalVolume *volume, 341*55fea89dSDan Cross LibHalStoragePolicy *policy, 34218c2aff7Sartem const char *target_mount_point) LIBHAL_DEPRECATED; 34318c2aff7Sartem 344*55fea89dSDan Cross dbus_bool_t libhal_volume_policy_is_mountable (LibHalDrive *drive, 345*55fea89dSDan Cross LibHalVolume *volume, 34618c2aff7Sartem LibHalStoragePolicy *policy) LIBHAL_DEPRECATED; 347*55fea89dSDan Cross const char *libhal_volume_policy_get_desired_mount_point (LibHalDrive *drive, 348*55fea89dSDan Cross LibHalVolume *volume, 34918c2aff7Sartem LibHalStoragePolicy *policy) LIBHAL_DEPRECATED; 350*55fea89dSDan Cross const char *libhal_volume_policy_get_mount_options (LibHalDrive *drive, 351*55fea89dSDan Cross LibHalVolume *volume, 35218c2aff7Sartem LibHalStoragePolicy *policy) LIBHAL_DEPRECATED; 353*55fea89dSDan Cross const char *libhal_volume_policy_get_mount_fs (LibHalDrive *drive, 354*55fea89dSDan Cross LibHalVolume *volume, 35518c2aff7Sartem LibHalStoragePolicy *policy) LIBHAL_DEPRECATED; 35618c2aff7Sartem 35718c2aff7Sartem 35818c2aff7Sartem #if defined(__cplusplus) 35918c2aff7Sartem } 36018c2aff7Sartem #endif 36118c2aff7Sartem 36218c2aff7Sartem #endif /* LIBHAL_STORAGE_H */ 363