/** Helper macro for stringification. */
#define FSW_EFI_STRINGIFY(x) #x
/** Expands to the EFI driver name given the file system type name. */
-#define FSW_EFI_DRIVER_NAME(t) L"rEFInd 0.7.6 " FSW_EFI_STRINGIFY(t) L" File System Driver"
+#define FSW_EFI_DRIVER_NAME(t) L"rEFInd 0.7.9 " FSW_EFI_STRINGIFY(t) L" File System Driver"
// function prototypes
i = 0;
do {
if ((Caches[i].Volume == Volume) &&
+ (Caches[i].CacheValid == TRUE) &&
(StartRead >= Caches[i].CacheStart) &&
((StartRead + vol->phys_blocksize) <= (Caches[i].CacheStart + CACHE_SIZE))) {
ReadCache = i;
if (LastRead == -1)
LastRead = 1;
ReadCache = 1 - LastRead; // NOTE: If NUM_CACHES > 2, this must become more complex
+ Caches[ReadCache].CacheValid = FALSE;
if (Caches[ReadCache].Cache == NULL)
Caches[ReadCache].Cache = AllocatePool(CACHE_SIZE);
if (Caches[ReadCache].Cache != NULL) {
} // if cache memory allocated
} // if (ReadCache < 0)
- if (Caches[ReadCache].Cache != NULL) {
+ if (Caches[ReadCache].Cache != NULL && Caches[ReadCache].CacheValid == TRUE) {
CopyMem(buffer, &Caches[ReadCache].Cache[StartRead - Caches[ReadCache].CacheStart], vol->phys_blocksize);
} else {
ReadOneBlock = TRUE;