20#include "FatSymlink.h"
21#include "pedigree/kernel/LockGuard.h"
23#include "FatFilesystem.h"
24#include "modules/system/vfs/File.h"
26FatSymlink::FatSymlink(
String name, Time::Timestamp accessedTime, Time::Timestamp modifiedTime,
27 Time::Timestamp creationTime, uintptr_t inode,
class Filesystem* pFs,
28 size_t size, uint32_t dirClus, uint32_t dirOffset,
File* pParent)
29 :
Symlink(name, accessedTime, modifiedTime, creationTime, inode, pFs, size, pParent),
31 m_DirOffset(dirOffset) {
33 setPermissionsOnly(FILE_UR | FILE_UW | FILE_UX | FILE_GR | FILE_GW | FILE_GX | FILE_OR | FILE_OW |
41 return pFs->read(
this, location, size, buffer);
49 Attributes attributes = File::getAttributes();
50 attributes.blocks = filesystem->allocatedBlocks(file);
58 uint64_t ret = pFs->write(
this, location, size, buffer);
66FatSymlink::~FatSymlink() {
67 static_cast<FatFilesystem*
>(m_pFilesystem)->releaseNode(
this);
uint64_t writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true) override
uint64_t readBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true) override
void initialise(bool bForce=false)