示例#1
0
 uint8_t read() {
   if(!fp) return 0xff;                       //file not open
   if(file_mode == mode::write) return 0xff;  //reads not permitted
   if(file_offset >= file_size) return 0xff;  //cannot read past end of file
   buffer_sync();
   return buffer[(file_offset++) & buffer_mask];
 }
示例#2
0
 void write(uint8_t data) {
   if(!fp) return;                      //file not open
   if(file_mode == mode::read) return;  //writes not permitted
   buffer_sync();
   buffer[(file_offset++) & buffer_mask] = data;
   buffer_dirty = true;
   if(file_offset > file_size) file_size = file_offset;
 }
示例#3
0
Error fs_file_close(FileIndex file)
{
    CheckB(file < FS_MAX_OPEN_DIRS);
    CheckB(_file[file].initialized);

    buffer_sync();

    _file[file].initialized = false;

    return success;
}
示例#4
0
Error fs_dir_close(DirIndex dir)
{
    CheckB(dir < FS_MAX_OPEN_DIRS);
    CheckB(_directory[dir].initialized);

    buffer_sync();

    _directory[dir].initialized = false;

    return success;
}
示例#5
0
Error fs_file_sync(FileIndex file)
{
    buffer_sync();

    return success;
}