#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