void DImageHfs::readDirectory() { DEBUG_OUT<<"DImageHfs::readDirectory...\n"; freeDirCache(); hfs=false; noFileSystem=true; skipOffset=0; lisa=false; partition=false; partNum=0; partOffset=0; unsigned int t=0; for(t=0;t<256;t++) diskName[t]=0; strcpy(diskName,"NO NAME"); // first look for a partition map... readBlock(0); if(lookAtFileSystem(0)) { if(partition) { DEBUG_OUT<<"Found a driver descriptor...\n"; findFirstHFSPartition(); } } // skip over boot info, if any... readBlock(2+partOffset); if(lookAtFileSystem(0)) { noFileSystem=false; } if(noFileSystem) { DEBUG_OUT<<"Can't readDirectory, disk format error!\n"; return; } DEBUG_OUT<<"DImageHfs::readDirectory, got a good HFS filesystem...\n"; if(partition) { DEBUG_OUT<<"partNum="<<partNum<<" partOffset="<<partOffset<<"\n"; } if(hfs) DEBUG_OUT<<"hfs "; else DEBUG_OUT<<"mfs "; if(skipOffset) DEBUG_OUT<<"(offset is "<<skipOffset<<") "; DEBUG_OUT<<"\n"; DEBUG_OUT<<"DImageHfs::readDirectory not implemented!\n"; }
DDiskImageMem::~DDiskImageMem() { // TODO: flush files if cached freeDirCache(); if(imageData) delete imageData; imageData=(BYTE *)NULL; diskMounted=false; }
static int free_file(Stream_t *Stream) { DeclareThis(File_t); Fs_t *Fs = This->Fs; fsPreallocateClusters(Fs, -This->preallocatedClusters); FREE(&This->direntry.Dir); freeDirCache(Stream); return hash_remove(filehash, (void *) Stream, This->hint); }
DDiskImageAbstract::~DDiskImageAbstract() { // TODO: flush files if cached freeDirCache(); diskMounted=false; }
DImageHfs::~DImageHfs() { freeDirCache(); diskMounted=false; }