1 | /*
|
---|
2 | * drivedb.h - smartmontools drive database file
|
---|
3 | *
|
---|
4 | * Home page of code is: https://www.smartmontools.org
|
---|
5 | *
|
---|
6 | * Copyright (C) 2003-11 Philip Williams, Bruce Allen
|
---|
7 | * Copyright (C) 2008-24 Christian Franke
|
---|
8 | *
|
---|
9 | * SPDX-License-Identifier: GPL-2.0-or-later
|
---|
10 | */
|
---|
11 |
|
---|
12 | /*
|
---|
13 | * Structure used to store drive database entries:
|
---|
14 | *
|
---|
15 | * struct drive_settings {
|
---|
16 | * const char * modelfamily;
|
---|
17 | * const char * modelregexp;
|
---|
18 | * const char * firmwareregexp;
|
---|
19 | * const char * warningmsg;
|
---|
20 | * const char * presets;
|
---|
21 | * };
|
---|
22 | *
|
---|
23 | * The elements are used in the following ways:
|
---|
24 | *
|
---|
25 | * modelfamily Informal string about the model family/series of a
|
---|
26 | * device. Set to "" if no info (apart from device id)
|
---|
27 | * known. The entry is ignored if this string starts with
|
---|
28 | * a dollar sign. Must not start with "USB:", see below.
|
---|
29 | * modelregexp POSIX extended regular expression to match the model of
|
---|
30 | * a device. This should never be "".
|
---|
31 | * firmwareregexp POSIX extended regular expression to match a devices's
|
---|
32 | * firmware. This is optional and should be "" if it is not
|
---|
33 | * to be used. If it is nonempty then it will be used to
|
---|
34 | * narrow the set of devices matched by modelregexp.
|
---|
35 | * warningmsg A message that may be displayed for matching drives. For
|
---|
36 | * example, to inform the user that they may need to apply a
|
---|
37 | * firmware patch.
|
---|
38 | * presets String with vendor-specific attribute ('-v') and firmware
|
---|
39 | * bug fix ('-F') options. Same syntax as in smartctl command
|
---|
40 | * line. The user's own settings override these.
|
---|
41 | *
|
---|
42 | * The regular expressions for drive model and firmware must match the full
|
---|
43 | * string. The effect of "^FULLSTRING$" is identical to "FULLSTRING".
|
---|
44 | * The form ".*SUBSTRING.*" can be used if substring match is desired.
|
---|
45 | *
|
---|
46 | * The table will be searched from the start to end or until the first match,
|
---|
47 | * so the order in the table is important for distinct entries that could match
|
---|
48 | * the same drive.
|
---|
49 | *
|
---|
50 | *
|
---|
51 | * Format for USB ID entries:
|
---|
52 | *
|
---|
53 | * modelfamily String with format "USB: DEVICE; BRIDGE" where
|
---|
54 | * DEVICE is the name of the device and BRIDGE is
|
---|
55 | * the name of the USB bridge. Both may be empty
|
---|
56 | * if no info known.
|
---|
57 | * modelregexp POSIX extended regular expression to match the USB
|
---|
58 | * vendor:product ID in hex notation ("0x1234:0xabcd").
|
---|
59 | * This should never be "".
|
---|
60 | * firmwareregexp POSIX extended regular expression to match the USB
|
---|
61 | * bcdDevice info. Only compared during search if other
|
---|
62 | * entries with same USB vendor:product ID exist.
|
---|
63 | * warningmsg Not used yet.
|
---|
64 | * presets String with one device type ('-d') option.
|
---|
65 | *
|
---|
66 | */
|
---|
67 |
|
---|
68 | /*
|
---|
69 | const drive_settings builtin_knowndrives[] = {
|
---|
70 | */
|
---|
71 | {
|
---|
72 | "SQFlash SATA SSDs ", // See SQFlash SMART ID Definition(SATA)_v1.5.1_Y2024.pdf
|
---|
73 | "SQF-S25V4-1TDSDC|SQF-S25Z8-960GDSCC|SQF-S25V4-1T-SBC|SQF-S25C9-960GDCGE",
|
---|
74 | "SHFMA21[123]|SCFIP5A0|SBFMA61[123]|SCEBH5A0",
|
---|
75 | "",
|
---|
76 | // Comment out DEFAULT-covered attributes
|
---|
77 | "-v 1,raw48,Uncorrectable_ECC_Count "
|
---|
78 | "-v 9,raw48,Power_On_Hours "
|
---|
79 | "-v 12,raw48,Power_Cycle_Count "
|
---|
80 | "-v 14,raw48,Device_Capacity "
|
---|
81 | "-v 15,raw48,User_Capacity "
|
---|
82 | "-v 16,raw48,Available_Spare_Block "
|
---|
83 | "-v 17,raw48,Remaining_Spare_Block "
|
---|
84 | "-v 100,raw48,Total_Erase_Count "
|
---|
85 | "-v 168,raw48,SATA_Phy_Error_Count "
|
---|
86 | "-v 173,raw16(avg16),MaxAvgErase_Ct "
|
---|
87 | "-v 174,raw48,Power_Loss_Count "
|
---|
88 | "-v 192,raw48,Power_Loss_Count "
|
---|
89 | "-v 194,tempminmax,Temperature_Celsius "
|
---|
90 | "-v 202,raw48,Life_Used_Percent "
|
---|
91 | "-v 218,raw48,CRC_Error_Count "
|
---|
92 | "-v 231,raw48,Life_Remaining_Percent "
|
---|
93 | "-v 234,raw48,NAND_Read_(Sector) "
|
---|
94 | "-v 235,raw48,NAND_Written_(Sector) "
|
---|
95 | "-v 241,raw48,Host_Write_(Sector) "
|
---|
96 | "-v 242,raw48,Host_Read_(Sector) "
|
---|
97 | "-v 244,raw48,Average_Erase_Count "
|
---|
98 | "-v 245,raw48,Max_Erase_Count "
|
---|
99 | },
|
---|
100 |
|
---|
101 |
|
---|
102 |
|
---|
103 | /*
|
---|
104 | }; // builtin_knowndrives[]
|
---|
105 | */
|
---|