Kintsugi OS 0.5.0
x86 Monolithic OS
Loading...
Searching...
No Matches
fat12.c File Reference
#include "fat12.h"
#include "../drivers/ata_pio.h"
#include "../kklibc/kklibc.h"
#include "vfs.h"

Classes

struct  fat_node_t
 

Functions

static int check_volume (void)
 
int fat12_is_mounted (void)
 
static int read_sector (u32 sector, void *buffer)
 
static int write_sector (u32 sector, void *buffer)
 
int fat12_read_boot_sector (fat12_boot_sector_t *boot)
 
void fat12_cleanup (void)
 
void fat12_init (void)
 
static int short_name (const char *input, char out[11])
 
static int valid_cluster (u32 c)
 
static u16 fat_get (u32 c)
 
static void fat_set (u32 c, u16 value)
 
static int sync_fat (void)
 
static void free_chain (u16 c)
 
void print_fat12_info (void)
 
static int chain_length (u16 first, u32 *length)
 
static int directory_sector (u16 directory, u32 index, u32 *sector)
 
static int directory_entry (u16 directory, u32 index, fat12_dir_entry_t *entry, int store)
 
static int directory_lookup (u16 directory, const char name[11], fat_node_t *node, u32 *vacant)
 
static int resolve_node (const char *path, fat_node_t *node, u16 *parent, char leaf[11])
 
static int reserve_chain (u32 count, u16 *first)
 
static int zero_chain (u16 first)
 
static int available_slot (u16 directory, const char name[11], u32 *slot)
 
static int driver_stat (const char *path, vfs_stat_t *stat)
 
static int driver_read (const char *path, u32 offset, void *buffer, u32 capacity)
 
static int driver_replace (const char *path, const void *data, u32 size)
 
static int driver_create (const char *path, int directory)
 
static void entry_name (const fat12_dir_entry_t *entry, char name[13])
 
static int driver_readdir (const char *path, u32 *cursor, vfs_dirent_t *output)
 
static int driver_remove (const char *path, int directory)
 
static int driver_rename (const char *source, const char *target)
 

Variables

static fat12_context_t ctx
 
static fat12_boot_sector_t boot_sector
 
static int mounted
 
static const vfs_ops_t fat_ops
 
ata_disk_info_t ata_disks [2]
 

Function Documentation

◆ available_slot()

static int available_slot ( u16  directory,
const char  name[11],
u32 *  slot 
)
static

◆ chain_length()

static int chain_length ( u16  first,
u32 *  length 
)
static

◆ check_volume()

static int check_volume ( void  )
static

◆ directory_entry()

static int directory_entry ( u16  directory,
u32  index,
fat12_dir_entry_t *  entry,
int  store 
)
static

◆ directory_lookup()

static int directory_lookup ( u16  directory,
const char  name[11],
fat_node_t *  node,
u32 *  vacant 
)
static

◆ directory_sector()

static int directory_sector ( u16  directory,
u32  index,
u32 *  sector 
)
static

◆ driver_create()

static int driver_create ( const char *  path,
int  directory 
)
static

◆ driver_read()

static int driver_read ( const char *  path,
u32  offset,
void *  buffer,
u32  capacity 
)
static

◆ driver_readdir()

static int driver_readdir ( const char *  path,
u32 *  cursor,
vfs_dirent_t *  output 
)
static

◆ driver_remove()

static int driver_remove ( const char *  path,
int  directory 
)
static

◆ driver_rename()

static int driver_rename ( const char *  source,
const char *  target 
)
static

◆ driver_replace()

static int driver_replace ( const char *  path,
const void *  data,
u32  size 
)
static

◆ driver_stat()

static int driver_stat ( const char *  path,
vfs_stat_t *  stat 
)
static

◆ entry_name()

static void entry_name ( const fat12_dir_entry_t *  entry,
char  name[13] 
)
static

◆ fat12_cleanup()

void fat12_cleanup ( void  )

◆ fat12_init()

void fat12_init ( void  )

◆ fat12_is_mounted()

int fat12_is_mounted ( void  )

◆ fat12_read_boot_sector()

int fat12_read_boot_sector ( fat12_boot_sector_t *  boot)

◆ fat_get()

static u16 fat_get ( u32  c)
static

◆ fat_set()

static void fat_set ( u32  c,
u16  value 
)
static

◆ free_chain()

static void free_chain ( u16  c)
static

◆ print_fat12_info()

void print_fat12_info ( void  )

◆ read_sector()

static int read_sector ( u32  sector,
void *  buffer 
)
static

◆ reserve_chain()

static int reserve_chain ( u32  count,
u16 *  first 
)
static

◆ resolve_node()

static int resolve_node ( const char *  path,
fat_node_t *  node,
u16 *  parent,
char  leaf[11] 
)
static

◆ short_name()

static int short_name ( const char *  input,
char  out[11] 
)
static

◆ sync_fat()

static int sync_fat ( void  )
static

◆ valid_cluster()

static int valid_cluster ( u32  c)
static

◆ write_sector()

static int write_sector ( u32  sector,
void *  buffer 
)
static

◆ zero_chain()

static int zero_chain ( u16  first)
static

Variable Documentation

◆ ata_disks

ata_disk_info_t ata_disks[2]
extern

◆ boot_sector

fat12_boot_sector_t boot_sector
static

◆ ctx

fat12_context_t ctx
static

◆ fat_ops

static const vfs_ops_t fat_ops
static
Initial value:
= { .stat = driver_stat,
.read = driver_read,
.replace = driver_replace,
.create = driver_create,
.remove = driver_remove,
.rename = driver_rename,
.readdir = driver_readdir }
static int driver_readdir(const char *path, u32 *cursor, vfs_dirent_t *output)
Definition fat12.c:646
static int driver_replace(const char *path, const void *data, u32 size)
Definition fat12.c:504
static int driver_rename(const char *source, const char *target)
Definition fat12.c:723
static int driver_create(const char *path, int directory)
Definition fat12.c:581
static int driver_stat(const char *path, vfs_stat_t *stat)
Definition fat12.c:442
static int driver_remove(const char *path, int directory)
Definition fat12.c:679
static int driver_read(const char *path, u32 offset, void *buffer, u32 capacity)
Definition fat12.c:454

◆ mounted

int mounted
static