ubixfs.h File Reference

#include <ubixos/types.h>
#include <vfs/vfs.h>
#include <sys/device.h>
#include <mpi/mpi.h>
#include <ubixfs/dirCache.h>

Go to the source code of this file.

Data Structures

struct  blockAllocationTableEntry
struct  bootSect
struct  directoryEntry
struct  directoryList
struct  partitionInformation
struct  ubixDiskLabel
struct  ubixDiskLabel::ubixPartitions
struct  ubixFSInfo

Defines

#define blockSize   8
#define EOBC   -1
#define MAXUBIXPARTITIONS   16
#define typeContainer   2
#define typeDeleted   8
#define typeDirectory   4
#define typeFile   1
#define UBIXDISKMAGIC   ((uInt32)0x45)
#define UBIXFS_ALIGN(size)   (size + ((((size) % (UBIXFS_BLOCKSIZE_BYTES)) == 0)? 0 : ((UBIXFS_BLOCKSIZE_BYTES) - ((size) % (UBIXFS_BLOCKSIZE_BYTES)))))
#define UBIXFS_BLOCKSIZE_BYTES   blockSize*512

Typedefs

typedef directoryListdirList_t

Functions

int addDirEntry (struct directoryEntry *dir, fileDescriptor *fd)
int freeBlocks (int block, fileDescriptor *fd)
int getFreeBlocks (int count, fileDescriptor *fd)
int readFile (char *file)
int readUbixFS (fileDescriptor *fd, char *data, uInt32, long size)
void syncBat (struct vfs_mountPoint *mp)
int ubixfs_init ()
int ubixfs_initialize ()
void ubixfs_thread ()
dirList_t ubixFSLoadDir (char *)
int ubixFSmkDir (char *dir, fileDescriptor *fd)
void ubixFSUnlink (char *path, struct vfs_mountPoint *mp)
int writeFileByte (int ch, fileDescriptor *fd, long offset)
int writeUbixFS (fileDescriptor *fd, char *data, long offset, long size)


Define Documentation

#define blockSize   8

Definition at line 45 of file ubixfs.h.

Referenced by ubixfs_loadData(), ubixFSmkDir(), and writeUbixFS().

#define EOBC   -1

Definition at line 48 of file ubixfs.h.

Referenced by writeUbixFS().

#define MAXUBIXPARTITIONS   16

Definition at line 44 of file ubixfs.h.

#define typeContainer   2

Definition at line 52 of file ubixfs.h.

#define typeDeleted   8

Definition at line 54 of file ubixfs.h.

Referenced by ubixFSUnlink().

#define typeDirectory   4

Definition at line 53 of file ubixfs.h.

Referenced by ubixFSmkDir().

#define typeFile   1

Definition at line 51 of file ubixfs.h.

Referenced by ubixfs_cacheFind().

#define UBIXDISKMAGIC   ((uInt32)0x45)

Definition at line 43 of file ubixfs.h.

Referenced by ubixfs_initialize().

#define UBIXFS_ALIGN ( size   )     (size + ((((size) % (UBIXFS_BLOCKSIZE_BYTES)) == 0)? 0 : ((UBIXFS_BLOCKSIZE_BYTES) - ((size) % (UBIXFS_BLOCKSIZE_BYTES)))))

Definition at line 41 of file ubixfs.h.

Referenced by openFileUbixFS(), and ubixfs_loadData().

#define UBIXFS_BLOCKSIZE_BYTES   blockSize*512

Definition at line 40 of file ubixfs.h.

Referenced by ubixfs_loadData(), and ubixFSmkDir().


Typedef Documentation

typedef struct directoryList* dirList_t

Definition at line 65 of file ubixfs.h.


Function Documentation

int addDirEntry ( struct directoryEntry dir,
fileDescriptor fd 
)

Definition at line 66 of file directory.c.

References kmalloc(), kprintf(), memcpy(), fileDescriptor::offset, readUbixFS(), fileDescriptor::size, writeUbixFS(), and x1000.

Referenced by ubixFSmkDir().

int freeBlocks ( int  block,
fileDescriptor fd 
)

Definition at line 79 of file block.c.

References blockAllocationTableEntry::attributes, ubixFSInfo::blockAllocationTable, blockAllocationTableEntry::nextBlock, and syncBat().

int getFreeBlocks ( int  count,
fileDescriptor fd 
)

Definition at line 96 of file block.c.

References blockAllocationTableEntry::attributes, ubixFSInfo::batEntries, ubixFSInfo::blockAllocationTable, blockAllocationTableEntry::nextBlock, syncBat(), and x1.

Referenced by ubixFSmkDir(), and writeUbixFS().

int readFile ( char *  file  ) 

int readUbixFS ( fileDescriptor fd,
char *  data,
uInt32  ,
long  size 
)

Definition at line 194 of file ubixfs.c.

References assert, buffer, fdEof, kpanic(), NULL, and fileDescriptor::size.

Referenced by addDirEntry(), and ubixfs_init().

void syncBat ( struct vfs_mountPoint mp  ) 

Definition at line 74 of file block.c.

References ubixFSInfo::blockAllocationTable, vfs_mountPoint::device, device_node::devInfo, vfs_mountPoint::diskLabel, vfs_mountPoint::fsInfo, device_interface::info, vfs_mountPoint::partition, ubixDiskLabel::partitions, and device_interface::write.

Referenced by freeBlocks(), and getFreeBlocks().

int ubixfs_init (  ) 

Definition at line 456 of file ubixfs.c.

References kpanic(), NULL, openFileUbixFS(), readUbixFS(), ubixfs_initialize(), ubixFSmkDir(), ubixFSUnlink(), vfsRegisterFS(), writeUbixFS(), and x1.

int ubixfs_initialize (  ) 

Referenced by ubixfs_init().

void ubixfs_thread (  ) 

dirList_t ubixFSLoadDir ( char *   ) 

Definition at line 41 of file directory.c.

References directoryList::dirCache, dirList, directoryList::dirName, kmalloc(), directoryList::next, directoryList::prev, sprintf(), and strcmp().

int ubixFSmkDir ( char *  dir,
fileDescriptor fd 
)

Definition at line 94 of file directory.c.

References addDirEntry(), directoryEntry::attributes, ubixFSInfo::blockAllocationTable, blockSize, directoryEntry::fileName, getFreeBlocks(), kfree(), kmalloc(), directoryEntry::permissions, blockAllocationTableEntry::realSector, directoryEntry::size, sprintf(), directoryEntry::startCluster, typeDirectory, and UBIXFS_BLOCKSIZE_BYTES.

Referenced by ubixfs_init().

void ubixFSUnlink ( char *  path,
struct vfs_mountPoint mp 
)

Definition at line 309 of file ubixfs.c.

References ubixFSInfo::blockAllocationTable, vfs_mountPoint::device, device_node::devInfo, vfs_mountPoint::diskLabel, directoryEntry::fileName, vfs_mountPoint::fsInfo, device_interface::info, kmalloc(), kprintf(), vfs_mountPoint::partition, ubixDiskLabel::partitions, device_interface::read, ubixFSInfo::rootDir, strcmp(), typeDeleted, device_interface::write, and x1000.

Referenced by ubixfs_init().

int writeFileByte ( int  ch,
fileDescriptor fd,
long  offset 
)

Definition at line 118 of file ubixfs.c.

References assert, ubixFSInfo::blockAllocationTable, fdOpen, fdRead, blockAllocationTableEntry::nextBlock, and NULL.

int writeUbixFS ( fileDescriptor fd,
char *  data,
long  offset,
long  size 
)

Definition at line 232 of file ubixfs.c.

References assert, ubixFSInfo::blockAllocationTable, blockSize, EOBC, directoryEntry::fileName, getFreeBlocks(), kfree(), kmalloc(), blockAllocationTableEntry::nextBlock, NULL, blockAllocationTableEntry::realSector, fileDescriptor::size, directoryEntry::size, directoryEntry::startCluster, strcmp(), and x1000.

Referenced by addDirEntry(), and ubixfs_init().


Generated on Tue Dec 5 23:35:00 2006 for UbixOS V2 by  doxygen 1.4.7