31#include "../common/BlockDevice.h"
32#include "../common/FsCache.h"
33#include "../common/FsStructs.h"
34#include "../common/SysCall.h"
105#ifndef DOXYGEN_SHOULD_SKIP_THIS
113 uint32_t sectorsPerFat() const
206#ifndef DOXYGEN_SHOULD_SKIP_THIS
263#if MAINTAIN_FREE_CLUSTER_COUNT
288#if USE_SEPARATE_FAT_CACHE
349 return fatPut(cluster, 0x0FFFFFFF);
configuration definitions
const uint8_t FAT_TYPE_FAT12
Definition FatPartition.h:39
const uint8_t FAT_TYPE_FAT16
Definition FatPartition.h:42
const uint8_t FAT_TYPE_FAT32
Definition FatPartition.h:45
union csd_t __attribute__
Print print_t
Definition SysCall.h:66
BlockDeviceInterface class.
Definition BlockDeviceInterface.h:39
virtual bool syncDevice()=0
virtual bool readSector(uint32_t sector, uint8_t *dst)=0
virtual bool writeSector(uint32_t sector, const uint8_t *src)=0
Basic file class.
Definition FatFile.h:112
Access FAT16 and FAT32 partitions on raw file devices.
Definition FatPartition.h:67
void dmpRootDir(print_t *pr)
Definition FatDbg.cpp:121
static const uint16_t m_sectorMask
Definition FatPartition.h:219
int8_t dbgFat(uint32_t n, uint32_t *v)
Definition FatPartition.h:192
FsCache m_fatCache
Definition FatPartition.h:289
void dmpDirSector(print_t *pr, uint32_t sector)
Definition FatDbg.cpp:107
void dmpSector(print_t *pr, uint32_t sector, uint8_t bits=8)
Definition FatDbg.cpp:140
int8_t fatGet(uint32_t cluster, uint32_t *value)
Definition FatPartition.cpp:184
uint32_t cacheSectorNumber()
Definition FatPartition.h:326
bool allocContiguous(uint32_t count, uint32_t *firstCluster)
Definition FatPartition.cpp:107
FatPartition()
Definition FatPartition.h:71
uint8_t blocksPerCluster() __attribute__((deprecated))
Definition FatPartition.h:107
uint8_t bytesPerClusterShift() const
Definition FatPartition.h:76
bool cacheSync()
Definition FatPartition.h:295
uint32_t clusterStartSector(uint32_t cluster) const
Definition FatPartition.h:341
static const uint8_t m_bytesPerSectorShift
Definition FatPartition.h:217
bool cacheSafeWrite(uint32_t sector, const uint8_t *dst, size_t count)
Definition FatPartition.h:247
bool cacheSafeRead(uint32_t sector, uint8_t *dst)
Definition FatPartition.h:235
uint8_t fatCount() const
Definition FatPartition.h:140
uint16_t bytesPerSector() const
Definition FatPartition.h:86
void updateFreeClusterCount(int32_t change)
Definition FatPartition.h:269
uint8_t m_fatType
Definition FatPartition.h:225
uint16_t m_rootDirEntryCount
Definition FatPartition.h:226
uint8_t sectorsPerClusterShift() const
Definition FatPartition.h:130
bool freeChain(uint32_t cluster)
Definition FatPartition.cpp:353
uint32_t rootDirStart() const
Definition FatPartition.h:177
bool fatPut(uint32_t cluster, uint32_t value)
Definition FatPartition.cpp:264
uint32_t m_lastCluster
Definition FatPartition.h:231
bool cacheSyncData()
Definition FatPartition.h:318
uint32_t fatStartSector() const
Definition FatPartition.h:145
static const uint16_t m_bytesPerSector
Definition FatPartition.h:218
uint16_t rootDirEntryCount() const
Definition FatPartition.h:171
uint8_t m_clusterSectorMask
Definition FatPartition.h:223
uint32_t m_sectorsPerFat
Definition FatPartition.h:228
uint32_t m_dataStartSector
Definition FatPartition.h:229
void cacheDirty()
Definition FatPartition.h:330
uint32_t m_fatStartSector
Definition FatPartition.h:230
cache_t * cacheFetchData(uint32_t sector, uint8_t options)
Definition FatPartition.h:310
uint32_t dataStartSector() const
Definition FatPartition.h:135
uint8_t sectorsPerCluster() const
Definition FatPartition.h:101
cache_t * cacheAddress()
Definition FatPartition.h:322
bool readSector(uint32_t sector, uint8_t *dst)
Definition FatPartition.h:251
bool fatPutEOC(uint32_t cluster)
Definition FatPartition.h:347
void dmpFat(print_t *pr, uint32_t start, uint32_t count)
Definition FatDbg.cpp:177
uint32_t m_rootDirStart
Definition FatPartition.h:232
uint32_t volumeSectorCount() const
Definition FatPartition.h:182
bool cacheSafeWrite(uint32_t sector, const uint8_t *dst)
Definition FatPartition.h:243
void setFreeClusterCount(int32_t value)
Definition FatPartition.h:265
BlockDevice * m_blockDev
Definition FatPartition.h:221
bool cacheSafeRead(uint32_t sector, uint8_t *dst, size_t count)
Definition FatPartition.h:239
uint8_t m_sectorsPerCluster
Definition FatPartition.h:222
uint8_t bytesPerSectorShift() const
Definition FatPartition.h:91
bool isEOC(uint32_t cluster) const
Definition FatPartition.h:352
uint8_t * cacheClear()
Definition FatPartition.h:120
void cacheInvalidate()
Definition FatPartition.h:314
bool isBusy()
Definition FatPartition.h:201
bool init(BlockDevice *dev, uint8_t part=1)
Definition FatPartition.cpp:468
uint32_t clusterCount() const
Definition FatPartition.h:125
uint16_t bytesPerCluster() const
Definition FatPartition.h:81
cache_t * cacheFetchFat(uint32_t sector, uint8_t options)
Definition FatPartition.h:290
int32_t freeClusterCount()
Definition FatPartition.cpp:386
int32_t m_freeClusterCount
Definition FatPartition.h:264
uint32_t m_allocSearchStart
Definition FatPartition.h:227
FsCache m_cache
Definition FatPartition.h:287
uint8_t fatType() const
Definition FatPartition.h:150
uint8_t m_sectorsPerClusterShift
Definition FatPartition.h:224
uint16_t sectorMask() const
Definition FatPartition.h:96
uint8_t sectorOfCluster(uint32_t position) const
Definition FatPartition.h:337
bool writeSector(uint32_t sector, const uint8_t *src)
Definition FatPartition.h:259
bool syncDevice()
Definition FatPartition.h:255
bool allocateCluster(uint32_t current, uint32_t *next)
Definition FatPartition.cpp:31
Sector cache.
Definition FsCache.h:38
uint8_t * clear()
Definition FsCache.h:124
uint8_t * get(uint32_t sector, uint8_t option)
Definition FsCache.cpp:29
bool sync()
Definition FsCache.cpp:61
uint32_t sector()
Definition FsCache.h:175
void invalidate()
Definition FsCache.h:147
static const uint8_t CACHE_STATUS_MIRROR_FAT
Definition FsCache.h:43
bool cacheSafeWrite(uint32_t sector, const uint8_t *src)
Definition FsCache.h:99
bool cacheSafeRead(uint32_t sector, uint8_t *dst)
Definition FsCache.h:67
uint8_t * cacheBuffer()
Definition FsCache.h:56
void dirty()
Definition FsCache.h:134
static bool value
Definition DigitalPin.h:210
Definition FsStructs.h:237
Cache type for a sector.
Definition FatPartition.h:51
DirFat_t dir[16]
Definition FatPartition.h:59
uint32_t fat32[128]
Definition FatPartition.h:57
uint16_t fat16[256]
Definition FatPartition.h:55
uint8_t data[512]
Definition FatPartition.h:53