39 other.drive =
nullptr;
40 other.superblock =
nullptr;
50 other.drive =
nullptr;
51 other.superblock =
nullptr;
70 if (!drv || !buffer)
return false;
83 if (!drv || !buffer)
return false;
123 auto ext2Node =
reinterpret_cast<Ext2Node*
>(nodePtr);
138 ext2Node->cursor = 0;
#define NE_COPY_DELETE(KLASS)
Definition Detail.h:13
EXT2 filesystem structures, constants, and base wrappers.
#define kExt2FSMagic
EXT2 Constants.
Definition Ext2.h:19
#define kExt2FSSuperblockOffset
Definition Ext2.h:21
#define kExt2FSBlockSizeBase
Definition Ext2.h:24
: Memory allocation support for the NeKernel.
ErrorOr class for error handling.
Definition ErrorOr.h:22
Context for an EXT2 filesystem on a given drive.
Definition Ext2+IFS.h:19
Ext2Context & operator=(const Ext2Context &)=delete
~Ext2Context()
Clean up.
Definition Ext2+IFS.h:28
Ext2Context(Kernel::DriveTrait *drv)
context with a drive
Definition Ext2+IFS.h:25
Ext2Context(const Ext2Context &)=delete
EXT2_SUPER_BLOCK * superblock
Definition Ext2+IFS.h:22
Ext2Context & operator=(Ext2Context &&other)
Definition Ext2+IFS.h:43
SizeT BlockSize() const
Definition Ext2+IFS.h:56
Ext2Context(Ext2Context &&other)
Definition Ext2+IFS.h:38
DriveTrait * drive
Definition Ext2+IFS.h:21
Void Write(VoidPtr node, VoidPtr data, Int32 flags, SizeT size)
BOOL Seek(VoidPtr node, SizeT offset)
VoidPtr Create(const char *path)
BOOL Rewind(VoidPtr node)
Ext2FileSystemParser(DriveTrait *drive)
Ext2Context fCtx
Definition Ext2+IFS.h:149
VoidPtr Read(VoidPtr node, Int32 flags, SizeT size)
VoidPtr Open(const char *path, const char *restrict_type)
BOOL GetInfo(VoidPtr node, VoidPtr info)
VoidPtr CreateDirectory(const char *path)
UPS inline definitions.
Definition Device.h:12
BOOL ext2_read_block(Kernel::DriveTrait *drv, Kernel::UInt32 lba, VoidPtr buffer, Kernel::UInt32 size)
Definition Ext2+IFS.h:68
void Void
Definition Config.h:87
constexpr KPCError kErrorHeapOutOfMemory
Definition KPC.h:44
__SIZE_TYPE__ SizeT
Definition Config.h:60
Kernel::ErrorOr< EXT2_SUPER_BLOCK * > ext2_load_superblock(Ext2Context *ctx)
Definition Ext2+IFS.h:93
Int32 mm_free_ptr(VoidPtr heap_ptr)
Declare pointer as free.
Definition HeapMgr.cc:187
__UINT32_TYPE__ UInt32
Definition Config.h:44
void * VoidPtr
Definition Config.h:33
constexpr KPCError kErrorInvalidData
Definition KPC.h:56
__INT32_TYPE__ Int32
Definition Config.h:38
BOOL ext2_write_block(Kernel::DriveTrait *drv, Kernel::UInt32 lba, const VoidPtr buffer, Kernel::UInt32 size)
Definition Ext2+IFS.h:81
VoidPtr mm_alloc_ptr(SizeT sz, Bool wr, Bool user, SizeT pad_amount=0)
Allocate chunk of memory.
Definition HeapMgr.cc:101
constexpr KPCError kErrorDisk
Definition KPC.h:55
Kernel::ErrorOr< Ext2Node * > ext2_load_inode(Ext2Context *ctx, Kernel::UInt32 inodeNumber)
Definition Ext2+IFS.h:117
Kernel::UInt32 fInodesPerGroup
Definition Ext2.h:63
Kernel::UInt32 fFirstInode
Definition Ext2.h:80
VFS usage.
Definition Ext2.h:144
Kernel::UInt32 inodeNumber
Definition Ext2.h:145
Packet drive (StorageKit compilant.).
Definition DriveMgr.h:60
SizeT fPacketSize
identify what we're sending.
Definition DriveMgr.h:63
VoidPtr fPacketContent
Definition DriveMgr.h:61
Boolean fPacketGood
sanity crc, in case if good is set to false
Definition DriveMgr.h:65
Lba fPacketLba
Definition DriveMgr.h:66
Media drive trait type.
Definition DriveMgr.h:54
SizeT fSectorSz
Definition DriveMgr.h:71
Void(* fOutput)(DrivePacket &packet)
Definition DriveMgr.h:74
Void(* fInput)(DrivePacket &packet)
Definition DriveMgr.h:73