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