38 lines
607 B
C++
38 lines
607 B
C++
// ext2.cpp
|
|
// ext2 filesystem driver for HOS
|
|
// Author: Josh Holtrop
|
|
// Date: 05/10/05
|
|
// Modified: 05/10/05
|
|
|
|
#define _HOS_CPP_ _HOS_CPP_
|
|
|
|
extern "C" {
|
|
#include "display/kout.h"
|
|
}
|
|
|
|
#include "ext2.h"
|
|
|
|
Ext2fs::Ext2fs(device_t dev)
|
|
{
|
|
myDevice = dev;
|
|
if (block_read(DEV_MAJOR(dev), DEV_MINOR(dev), 2, 2, &mySuper) < 1024)
|
|
{
|
|
myError = -1;
|
|
return;
|
|
}
|
|
if (mySuper.s_magic != EXT2_MAGIC)
|
|
{
|
|
myError = -2;
|
|
return;
|
|
}
|
|
myError = 0;
|
|
mySuperDirty = 0;
|
|
kprintf("Device: %d\n", myDevice);
|
|
}
|
|
|
|
Ext2fs::~Ext2fs()
|
|
{
|
|
if (mySuperDirty)
|
|
block_write(DEV_MAJOR(myDevice), DEV_MINOR(myDevice), 2, 2, &mySuper);
|
|
}
|