SdFat
|
Sector cache. More...
#include <FsCache.h>
Public Member Functions | |
uint8_t * | cacheBuffer () |
bool | cacheSafeRead (uint32_t sector, uint8_t *dst) |
bool | cacheSafeRead (uint32_t sector, uint8_t *dst, size_t count) |
bool | cacheSafeWrite (uint32_t sector, const uint8_t *src) |
bool | cacheSafeWrite (uint32_t sector, const uint8_t *src, size_t count) |
uint8_t * | clear () |
void | dirty () |
uint8_t * | get (uint32_t sector, uint8_t option) |
void | init (BlockDevice *blockDev) |
void | invalidate () |
bool | isCached (uint32_t sector) const |
bool | isCached (uint32_t sector, size_t count) |
bool | isDirty () |
uint32_t | sector () |
void | setMirrorOffset (uint32_t offset) |
bool | sync () |
Static Public Attributes | |
static const uint8_t | CACHE_FOR_READ = 0 |
static const uint8_t | CACHE_FOR_WRITE = CACHE_STATUS_DIRTY |
static const uint8_t | CACHE_OPTION_NO_READ = 4 |
static const uint8_t | CACHE_RESERVE_FOR_WRITE |
static const uint8_t | CACHE_STATUS_DIRTY = 1 |
static const uint8_t | CACHE_STATUS_MASK |
static const uint8_t | CACHE_STATUS_MIRROR_FAT = 2 |
Sector cache.
|
inline |
|
inline |
Cache safe read of a sector.
[in] | sector | Logical sector to be read. |
[out] | dst | Pointer to the location that will receive the data. |
|
inline |
Cache safe read of multiple sectors.
[in] | sector | Logical sector to be read. |
[in] | count | Number of sectors to be read. |
[out] | dst | Pointer to the location that will receive the data. |
|
inline |
Cache safe write of a sectors.
[in] | sector | Logical sector to be written. |
[in] | src | Pointer to the location of the data to be written. |
|
inline |
Cache safe write of multiple sectors.
[in] | sector | Logical sector to be written. |
[in] | src | Pointer to the location of the data to be written. |
[in] | count | Number of sectors to be written. |
|
inline |
|
inline |
Set current sector dirty.
uint8_t * FsCache::get | ( | uint32_t | sector, |
uint8_t | option | ||
) |
Fill cache with sector data.
[in] | sector | Sector to read. |
[in] | option | mode for cached sector. |
Copyright (c) 2011-2020 Bill Greiman This file is part of the SdFat library for SD memory cards.
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
inline |
Initialize the cache.
[in] | blockDev | Block device for this cache. |
|
inline |
Invalidate current cache sector.
|
inline |
Check if a sector is in the cache.
[in] | sector | Sector to checked. |
|
inline |
Check if the cache contains a sector from a range.
[in] | sector | Start sector of the range. |
[in] | count | Number of sectors in the range. |
|
inline |
|
inline |
|
inline |
Set the offset to the second FAT for mirroring.
[in] | offset | Sector offset to second FAT. |
bool FsCache::sync | ( | ) |
Write current sector if dirty.
|
static |
Cache sector for read.
|
static |
Cache sector for write.
|
static |
Sync existing sector but do not read new sector.
|
static |
Reserve cache sector for write - do not read from sector device.
|
static |
Cached sector is dirty
|
static |
Cache sector status bits
|
static |
Cashed sector is FAT entry and must be mirrored in second FAT.