Annotation of embedaddon/smartmontools/knowndrives.h, revision 1.1
1.1 ! misho 1: /*
! 2: * knowndrives.h
! 3: *
! 4: * Home page of code is: http://smartmontools.sourceforge.net
! 5: * Address of support mailing list: smartmontools-support@lists.sourceforge.net
! 6: *
! 7: * Copyright (C) 2003-11 Philip Williams, Bruce Allen
! 8: * Copyright (C) 2008-11 Christian Franke <smartmontools-support@lists.sourceforge.net>
! 9: *
! 10: * This program is free software; you can redistribute it and/or modify
! 11: * it under the terms of the GNU General Public License as published by
! 12: * the Free Software Foundation; either version 2, or (at your option)
! 13: * any later version.
! 14: *
! 15: * You should have received a copy of the GNU General Public License
! 16: * (for example COPYING); if not, write to the Free
! 17: * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
! 18: *
! 19: */
! 20:
! 21: #ifndef KNOWNDRIVES_H_
! 22: #define KNOWNDRIVES_H_
! 23:
! 24: #define KNOWNDRIVES_H_CVSID "$Id: knowndrives.h 3288 2011-03-09 18:40:36Z chrfranke $\n"
! 25:
! 26: // Structure to store drive database entries, see drivedb.h for a description.
! 27: struct drive_settings {
! 28: const char * modelfamily;
! 29: const char * modelregexp;
! 30: const char * firmwareregexp;
! 31: const char * warningmsg;
! 32: const char * presets;
! 33: };
! 34:
! 35: // info returned by lookup_usb_device()
! 36: struct usb_dev_info
! 37: {
! 38: std::string usb_device; // Device name, empty if unknown
! 39: std::string usb_bridge; // USB bridge name, empty if unknown
! 40: std::string usb_type; // Type string ('-d' option).
! 41: };
! 42:
! 43: // Search drivedb for USB device with vendor:product ID.
! 44: int lookup_usb_device(int vendor_id, int product_id, int bcd_device,
! 45: usb_dev_info & info, usb_dev_info & info2);
! 46:
! 47: // Shows the presets (if any) that are available for the given drive.
! 48: void show_presets(const ata_identify_device * drive);
! 49:
! 50: // Shows all presets for drives in knowndrives[].
! 51: // Returns #syntax errors.
! 52: int showallpresets();
! 53:
! 54: // Shows all matching presets for a drive in knowndrives[].
! 55: // Returns # matching entries.
! 56: int showmatchingpresets(const char *model, const char *firmware);
! 57:
! 58: // Searches drive database and sets preset vendor attribute
! 59: // options in defs and fix_firmwarebug.
! 60: // Values that have already been set will not be changed.
! 61: // Returns pointer to database entry or nullptr if none found.
! 62: const drive_settings * lookup_drive_apply_presets(
! 63: const ata_identify_device * drive, ata_vendor_attr_defs & defs,
! 64: unsigned char & fix_firmwarebug);
! 65:
! 66: // Get path for additional database file
! 67: const char * get_drivedb_path_add();
! 68:
! 69: #ifdef SMARTMONTOOLS_DRIVEDBDIR
! 70: // Get path for default database file
! 71: const char * get_drivedb_path_default();
! 72: #endif
! 73:
! 74: // Read drive database from file.
! 75: bool read_drive_database(const char * path);
! 76:
! 77: // Read drive databases from standard places.
! 78: bool read_default_drive_databases();
! 79:
! 80: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>