Apps
Components
Interfaces
All Files
Source Tree
source:
tos.lib.FS.Writer.nc
Component: Writer
Required Interfaces
IFileBlock
IFileBlockErase
IFileBlockMeta
IFileFree
Debug
Provided Interfaces
StdControl
IFileWrite
IFileWrite2
Variables
struct Writer.fileState { fileblock_t first, block, nextBlock, blockPosition; fileblockoffset_t lastOffset, offset; bool check; } fds[FS_NUM_WFDS]
fileblock_t newBlock
fileblock_t lastNewBlock
fileblock_t newCount
fileblock_t lastBlock
fileblockoffset_t lastBlockOffset
uint8_t writefd
char *writefrom
filesize_t writeSize
filesize_t requestedSize
uint8_t state
void seekToEnd(fileblock_t nextBlock, fileblockoffset_t lastOffset)
void reserve(fileblock_t nextBlock, fileblockoffset_t lastOffset)
Function Index
command result_t
StdControl.init
(void)
command result_t
StdControl.start
(void)
command result_t
StdControl.stop
(void)
void
writeComplete
(fileresult_t result)
void
syncComplete
(fileresult_t result)
void
seekComplete
(fileresult_t result)
void
reserveComplete
(fileresult_t result)
void
allocateAbort
(fileresult_t result)
task void
nospace
(void)
void
allocateNextNewBlock
(void)
void
flushAndAllocateNextNewBlock
(void)
void
allocateNewBlocks
(fileblock_t n)
void
allocateFail
(fileresult_t result)
void
readNextBlock
(void)
bool
updateMeta
(void)
event void
IFileBlockErase.eraseDone
(fileresult_t result)
command void
IFileWrite.new
(uint8_t fd, bool check)
command void
IFileWrite2.open
(uint8_t fd, fileblock_t first, bool check)
command fileblock_t
IFileWrite.firstBlock
(uint8_t fd)
command void
IFileWrite.close
(uint8_t fd)
void
continueWrite
(void)
event void
IFileBlockMeta.readDone
(fileblock_t nextBlock, fileblockoffset_t lastByte, fileresult_t result)
event void
IFileBlock.writeDone
(fileresult_t result)
event void
IFileBlockMeta.writeDone
(fileresult_t result)
task void
writeCompleteTask
(void)
command void
IFileWrite.write
(uint8_t fd, void *buffer, filesize_t n)
command void
IFileWrite.sync
(uint8_t fd)
command void
IFileWrite.metaSync
(uint8_t fd)
event void
IFileBlock.syncDone
(fileresult_t result)
event void
IFileBlock.flushDone
(fileresult_t result)
void
seekToEnd
(fileblock_t nextBlock, fileblockoffset_t lastOffset)
command void
IFileWrite2.seekEnd
(uint8_t fd)
command void
IFileWrite2.truncate
(uint8_t fd)
task void
reserveDoneTask
(void)
void
reserve
(fileblock_t nextBlock, fileblockoffset_t lastOffset)
command void
IFileWrite2.reserve
(uint8_t fd, filesize_t newSize)
event void
IFileWrite.newDone
(uint8_t id, fileresult_t result)
event void
IFileWrite.writeDone
(uint8_t id, filesize_t nWritten, fileresult_t result)
event void
IFileWrite.syncDone
(uint8_t id, fileresult_t result)
event void
IFileWrite2.openDone
(uint8_t id, fileresult_t result)
event void
IFileWrite2.seekDone
(uint8_t id, filesize_t size, fileresult_t result)
event void
IFileWrite2.reserved
(uint8_t id, filesize_t size, fileresult_t result)
event void
IFileWrite2.truncated
(uint8_t id, fileblock_t nowFree, fileresult_t result)
event void
IFileBlock.readDone
(fileresult_t result)