diff options
author | Rob Austein <sra@hactrn.net> | 2016-11-01 12:09:41 -0400 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2016-11-01 12:09:41 -0400 |
commit | f7c3a151c7b0a3f040ab9aa8d81c562684d3f2e8 (patch) | |
tree | febe75002ea8b8c4f0742e4aa75ac70172b6b0ae /hal.h | |
parent | 59fe931b88a9314d50eeaac4ab09eb92f3d814bb (diff) |
hal_ks_index_fsck() and a pile of debugging code.
The debugging code was for tracking down what turned out to be a race
condition in the Alpha's flash driver code (see sw/stm32); much of
this was temporary, and will be removed in a (near) future commit, but
some of the techniques were useful and belong in the repository in
case we need to pull them back for something similar in the future.
hal_ks_index_fsck() attempts to diagnose all the things I found wrong
in the ks_flash index after one long series of errors. As presently
written, it doesn't attempt to fix anything, just diagnose errors: the
intent is that we can call this, before and after every modification
if necessary, to poinpoint exactly which calls introduce errors. Once
things stablize a bit, we may want to crank down the number of calls
to this (it's a bit expensive, since it checks the entire index), and
perhaps add the ability to clean up whatever errors it might find; the
latter might be a good candidate for a CLI command.
Diffstat (limited to 'hal.h')
-rw-r--r-- | hal.h | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -150,6 +150,11 @@ DEFINE_HAL_ERROR(HAL_ERROR_BAD_ATTRIBUTE_LENGTH, "Bad attribute length") \ DEFINE_HAL_ERROR(HAL_ERROR_ATTRIBUTE_NOT_FOUND, "Attribute not found") \ DEFINE_HAL_ERROR(HAL_ERROR_NO_KEY_INDEX_SLOTS, "No key index slots available") \ + DEFINE_HAL_ERROR(HAL_ERROR_KSI_INDEX_UUID_MISORDERED, "Key index UUID misordered") \ + DEFINE_HAL_ERROR(HAL_ERROR_KSI_INDEX_CHUNK_ORPHANED, "Key index chunk orphaned") \ + DEFINE_HAL_ERROR(HAL_ERROR_KSI_INDEX_CHUNK_MISSING, "Key index chunk missing") \ + DEFINE_HAL_ERROR(HAL_ERROR_KSI_INDEX_CHUNK_OVERLAPS, "Key index chunk overlaps") \ + DEFINE_HAL_ERROR(HAL_ERROR_KEYSTORE_WRONG_BLOCK_TYPE, "Wrong block type in keystore") \ END_OF_HAL_ERROR_LIST /* Marker to forestall silly line continuation errors */ |