File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / smartmontools / knowndrives.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Mon Jul 22 01:17:35 2013 UTC (10 years, 10 months ago) by misho
Branches: smartmontools, elwix, MAIN
CVS tags: v6_2, v6_1p0, v6_1, HEAD
6.1

    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-12 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, see <http://www.gnu.org/licenses/>.
   17:  *
   18:  */
   19: 
   20: #ifndef KNOWNDRIVES_H_
   21: #define KNOWNDRIVES_H_
   22: 
   23: #define KNOWNDRIVES_H_CVSID "$Id: knowndrives.h,v 1.1.1.2 2013/07/22 01:17:35 misho Exp $\n"
   24: 
   25: // Structure to store drive database entries, see drivedb.h for a description.
   26: struct drive_settings {
   27:   const char * modelfamily;
   28:   const char * modelregexp;
   29:   const char * firmwareregexp;
   30:   const char * warningmsg;
   31:   const char * presets;
   32: };
   33: 
   34: // info returned by lookup_usb_device()
   35: struct usb_dev_info
   36: {
   37:   std::string usb_device; // Device name, empty if unknown
   38:   std::string usb_bridge; // USB bridge name, empty if unknown
   39:   std::string usb_type;   // Type string ('-d' option).
   40: };
   41: 
   42: // Search drivedb for USB device with vendor:product ID.
   43: int lookup_usb_device(int vendor_id, int product_id, int bcd_device,
   44:                       usb_dev_info & info, usb_dev_info & info2);
   45: 
   46: // Shows the presets (if any) that are available for the given drive.
   47: void show_presets(const ata_identify_device * drive);
   48: 
   49: // Shows all presets for drives in knowndrives[].
   50: // Returns #syntax errors.
   51: int showallpresets();
   52: 
   53: // Shows all matching presets for a drive in knowndrives[].
   54: // Returns # matching entries.
   55: int showmatchingpresets(const char *model, const char *firmware);
   56: 
   57: // Searches drive database and sets preset vendor attribute
   58: // options in defs and firmwarebugs.
   59: // Values that have already been set will not be changed.
   60: // Returns pointer to database entry or nullptr if none found.
   61: const drive_settings * lookup_drive_apply_presets(
   62:   const ata_identify_device * drive, ata_vendor_attr_defs & defs,
   63:   firmwarebug_defs & firmwarebugs);
   64: 
   65: // Get path for additional database file
   66: const char * get_drivedb_path_add();
   67: 
   68: #ifdef SMARTMONTOOLS_DRIVEDBDIR
   69: // Get path for default database file
   70: const char * get_drivedb_path_default();
   71: #endif
   72: 
   73: // Read drive database from file.
   74: bool read_drive_database(const char * path);
   75: 
   76: // Read drive databases from standard places.
   77: bool read_default_drive_databases();
   78: 
   79: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>