diff options
author | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2011-02-22 16:23:52 +0000 |
---|---|---|
committer | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2011-02-22 16:23:52 +0000 |
commit | ebc3e0991986c8cf300312fff557b9670835cdb4 (patch) | |
tree | b1e7e0924c237557ddcf47d2a36d60e8a6b81451 /src/slices.h | |
parent | 319f923c57c640dd35679817924d063e6741b623 (diff) | |
download | 2011-ddhardrescue-ebc3e0991986c8cf300312fff557b9670835cdb4.tar.gz 2011-ddhardrescue-ebc3e0991986c8cf300312fff557b9670835cdb4.tar.bz2 2011-ddhardrescue-ebc3e0991986c8cf300312fff557b9670835cdb4.zip |
Fonction slicesFindLargestFast() et semble bien marcher.
Passage au 64 bits (long long int), correction de quelques cast implicites détruisant de l'information utile.
Peaufinnage de la fonction slicesDump(), mais c'est pas encore terminé. En tout cas le calcul du blockSize à l'air d'être meilleur à présent, disons qu'on voit la fin des informations.
git-svn-id: file:///var/svn/2011-ddhardrescue/trunk@4 d3078510-dda0-49f1-841c-895ef4b7ec81
Diffstat (limited to 'src/slices.h')
-rwxr-xr-x | src/slices.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/slices.h b/src/slices.h index 9f97246..85cb621 100755 --- a/src/slices.h +++ b/src/slices.h @@ -10,10 +10,10 @@ Slice are inclusive intervals. Let say sliceNew(1,2,S_UNKNOWN,NULL) return a [1; */ typedef enum { S_UNKNOWN, S_RECOVERED, S_UNREADABLE } sliceStatus_t; -typedef unsigned long int address_t; +typedef unsigned long long int address_t; typedef struct _slice { - uint32_t begin, end; + address_t begin, end; sliceStatus_t status; struct _slice *next; } slice_t; @@ -29,6 +29,7 @@ int sliceSplit(slices_t *slices, slice_t *initialSlice, address_t splitAt, slice slices_t *slicesNew(); void slicesAppend(slices_t *slices, slice_t *slice); slice_t *slicesFindLargest(slices_t *slices, sliceStatus_t status); +slice_t *slicesFindLargestFast(slices_t *slices, address_t *foundMax, sliceStatus_t status, address_t knownMax, slice_t *firstToTry); char *slicesDump(slices_t *slices, address_t *blockSize, unsigned int charCount, address_t begin, address_t end); #endif /*SLICES_H*/ |