#include <vfs/vfs.h>
#include <vfs/file.h>
#include <ubixos/sched.h>
#include <ubixos/vitals.h>
#include <ubixos/kpanic.h>
#include <ubixos/spinlock.h>
#include <lib/kmalloc.h>
#include <lib/string.h>
#include <vmm/paging.h>
#include <lib/kprintf.h>
#include <assert.h>
Include dependency graph for file.c:
Go to the source code of this file.
Functions | |
int | fclose (fileDescriptor *fd) |
int | feof (fileDescriptor *fd) |
int | fgetc (fileDescriptor *fd) |
fileDescriptor * | fopen (const char *file, const char *flags) |
int | fputc (int ch, fileDescriptor *fd) |
size_t | fread (void *ptr, size_t size, size_t nmemb, fileDescriptor *fd) |
int | fseek (fileDescriptor *tmpFd, long offset, int whence) |
size_t | fwrite (void *ptr, int size, int nmemb, fileDescriptor *fd) |
void | sysChDir (const char *path) |
void | sysFclose (userFileDescriptor *userFd, int *status) |
void | sysFgetc (int *ptr, userFileDescriptor *userFd) |
void | sysFopen (const char *file, char *flags, userFileDescriptor *userFd) |
void | sysFread (void *data, long size, userFileDescriptor *userFd) |
void | sysFseek (userFileDescriptor *userFd, long offset, int whence) |
void | sysFwrite (char *ptr, int size, userFileDescriptor *userFd) |
void | sysMkDir (const char *path) |
void | sysRmDir () |
void | sysUnlink (const char *path, int *retVal) |
int | unlink (const char *node) |
Variables | |
fileDescriptor * | fdTable = 0x0 |
static spinLock_t | fdTable_lock = SPIN_LOCK_INITIALIZER |
int fclose | ( | fileDescriptor * | fd | ) |
Definition at line 398 of file file.c.
References assert, fileDescriptorStruct::buffer, fdTable, fdTable_lock, kfree(), fileDescriptorStruct::next, NULL, vitalsStruct::openFiles, fileDescriptorStruct::prev, spinLock(), spinUnlock(), systemVitals, and x1.
Referenced by elf_loadfile(), execFile(), kmod_load(), ldEnable(), sys_exec(), sysExec(), sysFclose(), sysMkDir(), and systemTask().
Here is the call graph for this function:
int feof | ( | fileDescriptor * | fd | ) |
int fgetc | ( | fileDescriptor * | fd | ) |
Definition at line 251 of file file.c.
References vfs_mountPoint::fs, fileDescriptorStruct::mp, fileDescriptorStruct::offset, and fileSystem::vfsRead.
Referenced by sysFgetc().
fileDescriptor* fopen | ( | const char * | file, | |
const char * | flags | |||
) |
Definition at line 274 of file file.c.
References fileDescriptorStruct::buffer, fdOpen, fdTable, fdTable_lock, fileAppend, fileBinary, fileDescriptorStruct::fileName, fileRead, fileWrite, vfs_mountPoint::fs, kfree(), kmalloc(), kprintf(), fileDescriptorStruct::mode, fileDescriptorStruct::mp, fileDescriptorStruct::next, NULL, fileDescriptorStruct::offset, vitalsStruct::openFiles, fileDescriptorStruct::prev, spinLock(), spinUnlock(), sprintf(), fileDescriptorStruct::status, strcpy, strstr(), strtok(), systemVitals, vfs_findMount(), and fileSystem::vfsOpenFile.
Referenced by elf_loadfile(), execFile(), kmod_load(), ldEnable(), sys_exec(), sys_open(), sysExec(), sysFopen(), and sysMkDir().
Here is the call graph for this function:
int fputc | ( | int | ch, | |
fileDescriptor * | fd | |||
) |
Definition at line 234 of file file.c.
References vfs_mountPoint::fs, fileDescriptorStruct::mp, fileDescriptorStruct::offset, and fileSystem::vfsWrite.
size_t fread | ( | void * | ptr, | |
size_t | size, | |||
size_t | nmemb, | |||
fileDescriptor * | fd | |||
) |
Definition at line 178 of file file.c.
References assert, vfs_mountPoint::fs, fileDescriptorStruct::mp, fileDescriptorStruct::offset, and fileSystem::vfsRead.
Referenced by elf_loadfile(), execFile(), kmod_load(), ldEnable(), read(), sys_exec(), sysExec(), and sysFread().
int fseek | ( | fileDescriptor * | tmpFd, | |
long | offset, | |||
int | whence | |||
) |
Definition at line 208 of file file.c.
References fileDescriptorStruct::offset.
Referenced by elf_loadfile(), execFile(), kmod_load(), ldEnable(), sys_exec(), and sysExec().
size_t fwrite | ( | void * | ptr, | |
int | size, | |||
int | nmemb, | |||
fileDescriptor * | fd | |||
) |
Definition at line 200 of file file.c.
References vfs_mountPoint::fs, fileDescriptorStruct::mp, fileDescriptorStruct::offset, and fileSystem::vfsWrite.
Referenced by sysFwrite().
void sysChDir | ( | const char * | path | ) |
Definition at line 102 of file file.c.
References _current, osInfo::cwd, taskStruct::oInfo, sprintf(), and strstr().
Here is the call graph for this function:
void sysFclose | ( | userFileDescriptor * | userFd, | |
int * | status | |||
) |
Definition at line 157 of file file.c.
References fclose(), userFileDescriptorStruct::fd, and NULL.
Here is the call graph for this function:
void sysFgetc | ( | int * | ptr, | |
userFileDescriptor * | userFd | |||
) |
Definition at line 59 of file file.c.
References _current, userFileDescriptorStruct::fd, fgetc(), getch(), sched_yield(), taskStruct::term, and tty_foreground.
Here is the call graph for this function:
void sysFopen | ( | const char * | file, | |
char * | flags, | |||
userFileDescriptor * | userFd | |||
) |
Definition at line 122 of file file.c.
References userFileDescriptorStruct::fd, userFileDescriptorStruct::fdSize, fopen(), kprintf(), NULL, and fileDescriptorStruct::size.
Here is the call graph for this function:
void sysFread | ( | void * | data, | |
long | size, | |||
userFileDescriptor * | userFd | |||
) |
Definition at line 140 of file file.c.
References userFileDescriptorStruct::fd, fread(), and NULL.
Here is the call graph for this function:
void sysFseek | ( | userFileDescriptor * | userFd, | |
long | offset, | |||
int | whence | |||
) |
Definition at line 92 of file file.c.
References userFileDescriptorStruct::fd, NULL, and fileDescriptorStruct::offset.
void sysFwrite | ( | char * | ptr, | |
int | size, | |||
userFileDescriptor * | userFd | |||
) |
Definition at line 49 of file file.c.
References _current, userFileDescriptorStruct::fd, fwrite(), taskStruct::term, and tty_print().
Here is the call graph for this function:
void sysMkDir | ( | const char * | path | ) |
Definition at line 436 of file file.c.
References _current, osInfo::cwd, fclose(), fopen(), vfs_mountPoint::fs, kprintf(), fileDescriptorStruct::mp, NULL, taskStruct::oInfo, sprintf(), strstr(), strtok(), and fileSystem::vfsMakeDir.
Here is the call graph for this function:
void sysUnlink | ( | const char * | path, | |
int * | retVal | |||
) |
int unlink | ( | const char * | node | ) |
Definition at line 480 of file file.c.
References vfs_mountPoint::fs, vfs_mountPoint::mountPoint, NULL, strtok(), vfs_findMount(), and fileSystem::vfsUnlink.
Referenced by sysUnlink().
Here is the call graph for this function:
fileDescriptor* fdTable = 0x0 |
spinLock_t fdTable_lock = SPIN_LOCK_INITIALIZER [static] |