18c2aff776a775d34a4c9893a4c72e0434d68e36artem/***************************************************************************
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * CVSID: $Id$
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * libhal-storage.h : HAL convenience library for storage devices and volumes
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * Copyright (C) 2004 Red Hat, Inc.
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * Author: David Zeuthen <davidz@redhat.com>
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * Licensed under the Academic Free License version 2.1
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * This program is free software; you can redistribute it and/or modify
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * it under the terms of the GNU General Public License as published by
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * the Free Software Foundation; either version 2 of the License, or
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * (at your option) any later version.
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * This program is distributed in the hope that it will be useful,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * but WITHOUT ANY WARRANTY; without even the implied warranty of
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * GNU General Public License for more details.
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * You should have received a copy of the GNU General Public License
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * along with this program; if not, write to the Free Software
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18c2aff776a775d34a4c9893a4c72e0434d68e36artem **************************************************************************/
18c2aff776a775d34a4c9893a4c72e0434d68e36artemextern "C" {
18c2aff776a775d34a4c9893a4c72e0434d68e36artem} /* shut up emacs indenting */
18c2aff776a775d34a4c9893a4c72e0434d68e36artemtypedef struct LibHalStoragePolicy_s LibHalStoragePolicy;
18c2aff776a775d34a4c9893a4c72e0434d68e36artemtypedef enum {
18c2aff776a775d34a4c9893a4c72e0434d68e36artem LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_IDE = 0x10001,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_SCSI = 0x10002,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_USB = 0x10003,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_IEEE1394 = 0x10004,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem LIBHAL_STORAGE_ICON_DRIVE_PORTABLE_AUDIO_PLAYER = 0x10a00,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_IDE = 0x20001,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_SCSI = 0x20002,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_USB = 0x20003,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_IEEE1394 = 0x20004,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem LIBHAL_STORAGE_ICON_VOLUME_PORTABLE_AUDIO_PLAYER = 0x20a00,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemtypedef struct {
18c2aff776a775d34a4c9893a4c72e0434d68e36artemLibHalStoragePolicy *libhal_storage_policy_new (void) LIBHAL_DEPRECATED;
18c2aff776a775d34a4c9893a4c72e0434d68e36artemvoid libhal_storage_policy_free (LibHalStoragePolicy *policy) LIBHAL_DEPRECATED;
18c2aff776a775d34a4c9893a4c72e0434d68e36artemvoid libhal_storage_policy_set_icon_path (LibHalStoragePolicy *policy,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemvoid libhal_storage_policy_set_icon_mapping (LibHalStoragePolicy *policy,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem LibHalStoragePolicyIconPair *pairs) LIBHAL_DEPRECATED;
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_storage_policy_lookup_icon (LibHalStoragePolicy *policy,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemtypedef enum {
18c2aff776a775d34a4c9893a4c72e0434d68e36artemtypedef enum {
18c2aff776a775d34a4c9893a4c72e0434d68e36artemtypedef enum {
18c2aff776a775d34a4c9893a4c72e0434d68e36artemLibHalDrive *libhal_drive_from_udi (LibHalContext *hal_ctx,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem const char *udi);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemLibHalDrive *libhal_drive_from_device_file (LibHalContext *hal_ctx,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem const char *device_file);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_drive_is_hotpluggable (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_drive_uses_removable_media (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_drive_is_media_detected (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_uint64_t libhal_drive_get_size (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_uint64_t libhal_drive_get_media_size (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_drive_get_partition_scheme (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_drive_no_partitions_hint (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_drive_requires_eject (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemLibHalDriveType libhal_drive_get_type (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemLibHalDriveBus libhal_drive_get_bus (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemLibHalDriveCdromCaps libhal_drive_get_cdrom_caps (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemunsigned int libhal_drive_get_device_major (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemunsigned int libhal_drive_get_device_minor (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_drive_get_type_textual (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_drive_get_device_file (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_drive_get_serial (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_drive_get_firmware_version (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_drive_get_model (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_drive_get_vendor (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_drive_get_physical_device_udi (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_drive_get_dedicated_icon_drive (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_drive_get_dedicated_icon_volume (LibHalDrive *drive);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemchar *libhal_drive_policy_compute_display_name (LibHalDrive *drive,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemchar *libhal_drive_policy_compute_icon_name (LibHalDrive *drive,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_drive_policy_is_mountable (LibHalDrive *drive,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_drive_policy_get_desired_mount_point (LibHalDrive *drive,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_drive_policy_get_mount_options (LibHalDrive *drive,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_drive_policy_get_mount_fs (LibHalDrive *drive,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemchar **libhal_drive_find_all_volumes (LibHalContext *hal_ctx,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemchar *libhal_drive_policy_default_get_mount_root (LibHalContext *hal_ctx) LIBHAL_DEPRECATED;
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_drive_policy_default_use_managed_keyword (LibHalContext *hal_ctx) LIBHAL_DEPRECATED;
18c2aff776a775d34a4c9893a4c72e0434d68e36artemchar *libhal_drive_policy_default_get_managed_keyword_primary (LibHalContext *hal_ctx) LIBHAL_DEPRECATED;
18c2aff776a775d34a4c9893a4c72e0434d68e36artemchar *libhal_drive_policy_default_get_managed_keyword_secondary (LibHalContext *hal_ctx) LIBHAL_DEPRECATED;
18c2aff776a775d34a4c9893a4c72e0434d68e36artemtypedef enum {
18c2aff776a775d34a4c9893a4c72e0434d68e36artemtypedef enum {
18c2aff776a775d34a4c9893a4c72e0434d68e36artemLibHalVolume *libhal_volume_from_udi (LibHalContext *hal_ctx,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem const char *udi);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemLibHalVolume *libhal_volume_from_device_file (LibHalContext *hal_ctx,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem const char *device_file);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_uint64_t libhal_volume_get_size (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_uint64_t libhal_volume_get_disc_capacity (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_get_udi (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_get_device_file (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemunsigned int libhal_volume_get_device_major (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemunsigned int libhal_volume_get_device_minor (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_get_fstype (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_get_fsversion (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemLibHalVolumeUsage libhal_volume_get_fsusage (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_volume_is_mounted (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_volume_is_mounted_read_only (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_volume_is_partition (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_volume_is_disc (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_get_partition_scheme (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_get_partition_type (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_get_partition_label (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_get_partition_uuid (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char **libhal_volume_get_partition_flags (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemunsigned int libhal_volume_get_partition_number (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_uint64_t libhal_volume_get_partition_start_offset (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_uint64_t libhal_volume_get_partition_media_size (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_get_label (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_get_mount_point (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_get_uuid (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_get_storage_device_udi (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_crypto_get_backing_volume_udi (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemchar *libhal_volume_crypto_get_clear_volume_udi (LibHalContext *hal_ctx, LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_volume_disc_has_audio (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_volume_disc_has_data (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_volume_disc_is_blank (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_volume_disc_is_rewritable (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_volume_disc_is_appendable (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemLibHalVolumeDiscType libhal_volume_get_disc_type (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemint libhal_volume_get_msdos_part_table_type (LibHalVolume *volume) LIBHAL_DEPRECATED;
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_uint64_t libhal_volume_get_msdos_part_table_start (LibHalVolume *volume) LIBHAL_DEPRECATED;
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_uint64_t libhal_volume_get_msdos_part_table_size (LibHalVolume *volume) LIBHAL_DEPRECATED;
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_volume_should_ignore (LibHalVolume *volume);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemchar *libhal_volume_policy_compute_size_as_string (LibHalVolume *volume) LIBHAL_DEPRECATED;
18c2aff776a775d34a4c9893a4c72e0434d68e36artemchar *libhal_volume_policy_compute_display_name (LibHalDrive *drive,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemchar *libhal_volume_policy_compute_icon_name (LibHalDrive *drive,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_volume_policy_should_be_visible (LibHalDrive *drive,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdbus_bool_t libhal_volume_policy_is_mountable (LibHalDrive *drive,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_policy_get_desired_mount_point (LibHalDrive *drive,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_policy_get_mount_options (LibHalDrive *drive,
18c2aff776a775d34a4c9893a4c72e0434d68e36artemconst char *libhal_volume_policy_get_mount_fs (LibHalDrive *drive,
18c2aff776a775d34a4c9893a4c72e0434d68e36artem#endif /* LIBHAL_STORAGE_H */