Import backup from 2005-06-21

This commit is contained in:
josh committed 2017-07-25 22:23:50 -04:00
1 parent da90bcc164
commit 2cefd9441c
15 files changed
+160 -207

No files matched your search

+19
View File
@@ -0,0 +1,19 @@
// FileSystem.cpp
// Virtual file system subsystem for HOS
// Author: Josh Holtrop
// Date: 06/21/05
// Modified: 06/21/05
#include "FileSystem.h"
#include "hos_defines.h"
FileSystem::FileSystem() {myError = -10278;}
FileSystem::~FileSystem() {}
u32_t FileSystem::totalBlocks(){return 0;}
u32_t FileSystem::usedBlocks(){return 0;};
u32_t FileSystem::freeBlocks(){return 0;};
u32_t FileSystem::totalInodes(){return 0;};
u32_t FileSystem::usedInodes(){return 0;};
u32_t FileSystem::freeInodes(){return 0;};
u32_t FileSystem::getRootInodeNumber(){return 0;};
int FileSystem::check(){return myError;};
+36
View File
@@ -0,0 +1,36 @@
// FileSystem.h
// Virtual file system subsystem for HOS
// Author: Josh Holtrop
// Date: 06/21/05
// Modified: 06/21/05
#ifndef __HOS_FILESYSTEM__
#define __HOS_FILESYSTEM__ __HOS_FILESYSTEM__
#include "devices.h"
#include "hos_defines.h"
class FileSystem
{
protected:
int myError;
device_t myDevice;
public:
FileSystem();
FileSystem(device_t dev);
virtual ~FileSystem();
virtual u32_t totalBlocks(); /* 512 byte blocks */
virtual u32_t usedBlocks();
virtual u32_t freeBlocks();
virtual u32_t totalInodes();
virtual u32_t usedInodes();
virtual u32_t freeInodes();
virtual u32_t getRootInodeNumber();
virtual int check();
};
#endif
+35
View File
@@ -0,0 +1,35 @@
// VFSMount.cpp
// Virtual file system subsystem for HOS
// Author: Josh Holtrop
// Date: 06/21/05
// Modified: 06/21/05
extern "C" {
#include "display/kout.h"
}
#include "VFSMount.h"
#include "hos_defines.h"
#include "devices.h"
#include "lang/string.h"
#include "fs/vfs.h"
VFSMount::VFSMount(device_t dev, FileSystem *fs, string mountPoint, inode_num_t mountInode)
{
myDev = dev;
myFS = fs;
myRefs = 0;
myMountPoint = mountPoint;
myMountInode = mountInode;
}
VFSMount::~VFSMount()
{
if (myFS)
{
delete myFS;
if (myRefs)
kprintf("Filesystem uncleanly mounted from %s\n", myMountPoint.data());
}
}
+29
View File
@@ -0,0 +1,29 @@
// VFSMount.h
// Virtual file system subsystem for HOS
// Author: Josh Holtrop
// Date: 06/21/05
// Modified: 06/21/05
#ifndef __HOS_VFSMOUNT__
#define __HOS_VFSMOUNT__ __HOS_VFSMOUNT__
#include "lang/string.h"
#include "devices.h"
#include "FileSystem.h"
#include "fs/vfs.h"
class VFSMount
{
protected:
device_t myDev;
FileSystem *myFS;
int myRefs;
string myMountPoint;
inode_num_t myMountInode;
public:
VFSMount(device_t dev, FileSystem *fs, string mountPoint, inode_num_t mountInode);
~VFSMount();
};
#endif
-72
View File
@@ -1,72 +0,0 @@
// devices.c
// Author: Josh Holtrop
// Date: 08/02/04
// Modified: 08/16/04
#include "fs/devices.h"
#include "kernel.h"
#include "char/parallel.h"
#include "char/vconsole.h"
#include "block/ramdisk.h"
dev_driver_t *drivers[2][256];
// initialization routine for devices subsystem
void devices_init()
{
parallel_init(MAJORC_PARALLEL);
vconsole_init(MAJORC_VCONSOLE);
ramdisk_init(MAJORB_RAMDISK);
}
int devices_register_major(char type, major_t major, dev_driver_t *dev)
{
int idx;
if (type == 'b')
idx = 0;
else if (type == 'c')
idx = 1;
else
return -1;
if (drivers[idx][major])
return -2; //driver already registered
drivers[idx][major] = dev;
return 0;
}
int block_read(major_t major, minor_t minor, u32_t blockStart, u32_t blocks, void *buffer)
{
if (drivers[0][major] && drivers[0][major]->block_read)
return drivers[0][major]->block_read(minor, blockStart, blocks, buffer);
return INT_MIN;
}
int block_write(major_t major, minor_t minor, u32_t blockStart, u32_t blocks, void *buffer)
{
if (drivers[0][major] && drivers[0][major]->block_write)
return drivers[0][major]->block_write(minor, blockStart, blocks, buffer);
return INT_MIN;
}
int char_read(major_t major, minor_t minor)
{
if (drivers[1][major] && drivers[1][major]->char_read)
return drivers[1][major]->char_read(minor);
return INT_MIN;
}
int char_write(major_t major, minor_t minor, int c)
{
if (drivers[1][major] && drivers[1][major]->char_write)
return drivers[1][major]->char_write(minor, c);
return INT_MIN;
}
-41
View File
@@ -1,41 +0,0 @@
// devices.h
// Author: Josh Holtrop
// Date: 08/02/04
// Modified: 08/22/04
#ifndef __HOS_DEVICES_H__
#define __HOS_DEVICES_H__ __HOS_DEVICES_H__
#include "hos_defines.h"
#define MAJORC_VCONSOLE 4
#define MAJORC_PARALLEL 6
#define MAJORC_KEYBOARD 11
#define MAJORB_RAMDISK 1
#define BLOCK_SIZE 512
#define BLOCK_SIZE_LOG 9
typedef short major_t;
typedef short minor_t;
typedef unsigned int device_t;
typedef struct {
int (*block_read)(minor_t minor, u32_t blockStart, u32_t blocks, void *buffer);
int (*block_write)(minor_t minor, u32_t blockStart, u32_t blocks, void *buffer);
int (*char_read)(minor_t minor);
int (*char_write)(minor_t minor, int c);
} dev_driver_t;
void devices_init();
int devices_register_major(char type, major_t major, dev_driver_t *dev);
int block_read(major_t major, minor_t minor, u32_t blockStart, u32_t blocks, void *buffer);
int block_write(major_t major, minor_t minor, u32_t blockStart, u32_t blocks, void *buffer);
int char_read(major_t major, minor_t minor);
int char_write(major_t major, minor_t minor, int c);
#endif
File renamed without changes.
+1 -1
View File
@@ -59,7 +59,7 @@
#define EXT2_FT_SYMLINK 7
#define EXT2_FT_MAX 8
#include "vfs.h"
#include "fs/vfs.h"
typedef struct
{
File renamed without changes.
File renamed without changes.
+3 -31
View File
@@ -12,7 +12,9 @@ extern "C" {
}
#include "vfs.h"
#include "ext2.h"
#include "fs/FileSystem.h"
#include "fs/VFSMount.h"
#include "fs/ext2/ext2.h"
#include "lang/vector.h"
#include "lang/string.h"
#include "devices.h"
@@ -69,33 +71,3 @@ FileSystem *vfs_attempt_mount(device_t device, int fsType)
return fs;
}
VFSMount::VFSMount(device_t dev, FileSystem *fs, string mountPoint, inode_num_t mountInode)
{
myDev = dev;
myFS = fs;
myRefs = 0;
myMountPoint = mountPoint;
myMountInode = mountInode;
}
VFSMount::~VFSMount()
{
if (myFS)
{
delete myFS;
if (myRefs)
kprintf("Filesystem uncleanly mounted from %s\n", myMountPoint.data());
}
}
FileSystem::FileSystem() {myError = -10278;}
FileSystem::~FileSystem() {}
u32_t FileSystem::totalBlocks(){return 0;}
u32_t FileSystem::usedBlocks(){return 0;};
u32_t FileSystem::freeBlocks(){return 0;};
u32_t FileSystem::totalInodes(){return 0;};
u32_t FileSystem::usedInodes(){return 0;};
u32_t FileSystem::freeInodes(){return 0;};
u32_t FileSystem::getRootInodeNumber(){return 0;};
int FileSystem::check(){return myError;};
+2 -37
View File
@@ -50,43 +50,8 @@ int vfs_mount(device_t device, int fsType, char *mountPoint);
}
#include "lang/string.h"
class FileSystem
{
protected:
int myError;
device_t myDevice;
public:
FileSystem();
FileSystem(device_t dev);
virtual ~FileSystem();
virtual u32_t totalBlocks(); /* 512 byte blocks */
virtual u32_t usedBlocks();
virtual u32_t freeBlocks();
virtual u32_t totalInodes();
virtual u32_t usedInodes();
virtual u32_t freeInodes();
virtual u32_t getRootInodeNumber();
virtual int check();
};
class VFSMount
{
protected:
device_t myDev;
FileSystem *myFS;
int myRefs;
string myMountPoint;
inode_num_t myMountInode;
public:
VFSMount(device_t dev, FileSystem *fs, string mountPoint, inode_num_t mountInode);
~VFSMount();
};
#include "fs/FileSystem.h"
#include "fs/VFSMount.h"
FileSystem *vfs_attempt_mount(device_t device, int fsType);