1 #ifndef REDUMP_DAT_H_INCLUDED
2 #define REDUMP_DAT_H_INCLUDED
8 REDUMP_VERIFY_NOT_RUN = 0,
10 REDUMP_VERIFY_NO_MATCH,
11 REDUMP_VERIFY_DAT_NOT_FOUND,
12 REDUMP_VERIFY_DAT_READ_ERROR,
13 REDUMP_VERIFY_INVALID_INPUT
14 } redump_verify_status;
17 REDUMP_FIELD_NOT_AVAILABLE = 0,
20 } redump_field_status;
23 redump_verify_status status;
24 unsigned long entries_scanned;
25 unsigned long exact_matches;
26 unsigned long size_matches;
27 unsigned long crc32_matches;
28 unsigned long md5_matches;
29 unsigned long sha1_matches;
30 int candidate_available;
31 int candidate_hash_matches;
32 redump_field_status size_status;
33 redump_field_status crc32_status;
34 redump_field_status md5_status;
35 redump_field_status sha1_status;
39 char expected_size[32];
40 char expected_crc32[16];
41 char expected_md5[40];
42 char expected_sha1[48];
44 } redump_verify_result;
46 void redump_verify_result_init(redump_verify_result *result);
47 const char *redump_verify_status_string(redump_verify_status status);
48 const char *redump_field_status_string(redump_field_status status);
49 const char *redump_verify_overall_string(const redump_verify_result *result);
50 const char *redump_verify_confidence_string(const redump_verify_result *result);
51 const char *redump_verify_match_kind_string(const redump_verify_result *result);
54 * Resolve a DAT path predictably.
57 * 1. explicit_dir, when non-empty (authoritative);
58 * 2. FRIIDUMP_REDUMP_DAT_DIR, when set (authoritative);
59 * 3. executable_dir/redump_dat (portable and CMake build layout);
60 * 4. executable_dir/../share/friidump/redump_dat (installed Unix layout);
61 * 5. current-working-directory redump_dat.
63 * CMake copies the bundled DAT files beside the build executable and installs
64 * them under the platform-appropriate data directory. The selected candidate
65 * is always written to out_path when arguments are valid. The return value is
66 * nonzero only when that candidate exists.
68 int redump_resolve_dat_path(
69 const char *explicit_dir,
70 const char *executable_dir,
76 int redump_verify_dat_file(
82 redump_verify_result *result