#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 directoryList * | dirList_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 blockSize 8 | 
Definition at line 45 of file ubixfs.h.
Referenced by ubixfs_loadData(), ubixFSmkDir(), and writeUbixFS().
| #define EOBC -1 | 
| #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 | 
| typedef struct directoryList* dirList_t | 
| 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().
 1.4.7