Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
iso9660.c File Reference
#include "iso9660.h"
#include "libk/serial.h"
#include "memory/kalloc.h"
#include "type.h"
#include "vfs/enum.h"
#include "vfs/filesystem.h"
#include "vfs/vfs.h"
#include <str.h>
#include <vfs/dentry.h>
#include <vfs/dev.h>
#include <vfs/vnode.h>

Go to the source code of this file.

Data Structures

struct  iso9660_internal_data
 

Functions

static int iso9660_get_rr_symlink (struct iso9660_dir *entry, char *out_target)
 
static int iso9660_get_rr_name (struct iso9660_dir *entry, char *out_name)
 
int iso9660_lookup (struct fs_instance *instance, char *path, dentry_ptr parent, dentry_ptr *out)
 
int iso9660_read (vnode_t *vnode, void *buf, size_t len, size_t offset)
 
int iso9660_readlink (vnode_t *vnode, char *buf, size_t len)
 
vops_file_tiso9660_file_operations (void)
 
fs_operations_tiso9660_fs_operations (void)
 
vops_lnk_tiso9660_lnk_operations (void)
 

Variables

static fs_operations_t _fs_ops = {0}
 
static vops_file_t _file_ops = {0}
 
static vops_lnk_t _lnk_ops = {0}
 

Function Documentation

◆ iso9660_file_operations()

vops_file_t * iso9660_file_operations ( void )

Definition at line 432 of file iso9660.c.

References _file_ops, and iso9660_read().

Referenced by iso9660_lookup().

◆ iso9660_fs_operations()

fs_operations_t * iso9660_fs_operations ( void )

Definition at line 437 of file iso9660.c.

References _fs_ops, and iso9660_lookup().

Referenced by INIT().

◆ iso9660_get_rr_name()

static int iso9660_get_rr_name ( struct iso9660_dir * entry,
char * out_name )
static

Definition at line 94 of file iso9660.c.

References flags, len, iso9660_dir::length, memcopy(), iso9660_dir::name_len, and name_len.

Referenced by iso9660_lookup().

◆ iso9660_get_rr_symlink()

static int iso9660_get_rr_symlink ( struct iso9660_dir * entry,
char * out_target )
static

Definition at line 23 of file iso9660.c.

References len, iso9660_dir::length, memcopy(), iso9660_dir::name_len, and name_len.

Referenced by iso9660_lookup().

◆ iso9660_lnk_operations()

vops_lnk_t * iso9660_lnk_operations ( void )

Definition at line 442 of file iso9660.c.

References _lnk_ops, and iso9660_readlink().

Referenced by iso9660_lookup().

◆ iso9660_lookup()

◆ iso9660_read()

int iso9660_read ( vnode_t * vnode,
void * buf,
size_t len,
size_t offset )

◆ iso9660_readlink()

int iso9660_readlink ( vnode_t * vnode,
char * buf,
size_t len )

Definition at line 419 of file iso9660.c.

References len, memcopy(), serial2_printf(), strlen(), and vnode::vnode_private.

Referenced by iso9660_lnk_operations().

Variable Documentation

◆ _file_ops

vops_file_t _file_ops = {0}
static

Definition at line 14 of file iso9660.c.

Referenced by iso9660_file_operations().

◆ _fs_ops

fs_operations_t _fs_ops = {0}
static

Definition at line 13 of file iso9660.c.

Referenced by iso9660_fs_operations().

◆ _lnk_ops

vops_lnk_t _lnk_ops = {0}
static

Definition at line 15 of file iso9660.c.

Referenced by iso9660_lnk_operations().