* knowndrives.h
*
* Home page of code is: https://www.smartmontools.org
*
* Copyright (C) 2003-11 Philip Williams, Bruce Allen
* Copyright (C) 2008-21 Christian Franke
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef KNOWNDRIVES_H_
#define KNOWNDRIVES_H_
#define KNOWNDRIVES_H_CVSID "$Id: knowndrives.h 5207 2021-02-09 20:25:13Z chrfranke $\n"
struct drive_settings {
const char * modelfamily;
const char * modelregexp;
const char * firmwareregexp;
const char * warningmsg;
const char * presets;
};
struct usb_dev_info
{
std::string usb_device;
std::string usb_bridge;
std::string usb_type;
};
int lookup_usb_device(int vendor_id, int product_id, int bcd_device,
usb_dev_info & info, usb_dev_info & info2);
void show_presets(const ata_identify_device * drive);
int showallpresets();
int showmatchingpresets(const char *model, const char *firmware);
const drive_settings * lookup_drive_apply_presets(
const ata_identify_device * drive, ata_vendor_attr_defs & defs,
firmwarebug_defs & firmwarebugs, std::string & dbversion);
const char * get_drivedb_path_add();
#ifdef SMARTMONTOOLS_DRIVEDBDIR
const char * get_drivedb_path_default();
#endif
bool read_drive_database(const char * path);
bool init_drive_database(bool use_default_db);
const ata_vendor_attr_defs & get_default_attr_defs();
#endif