KallistiOS git master
Independent SDK for the Sega Dreamcast
Loading...
Searching...
No Matches
mke2fs.c File Reference
#include <time.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <inttypes.h>
#include <unistd.h>
#include <kos/dbgio.h>
#include <kos/blockdev.h>
#include <dc/sd.h>
#include <dc/maple.h>
#include <dc/maple/controller.h>
#include "ext2fs.h"
#include "block.h"
#include "inode.h"
#include "superblock.h"
#include "utils.h"

Macros

#define KiB   1024LLU
 
#define MiB   (KiB * 1024LLU)
 
#define GiB   (MiB * 1024LLU)
 

Functions

static uint32_t pick_ext2_bs (uint64_t total_size)
 
static int sb_tst (int group, int root)
 
static int has_superblock (int group)
 
static void exit_with_error (const char *err)
 
static int write_fs_block (ext2_superblock_t *sb, kos_blockdev_t *bd, uint32_t block_num, const uint8_t *buf)
 
static int read_fs_block (ext2_superblock_t *sb, kos_blockdev_t *bd, uint32_t block_num, uint8_t *buf)
 
static int read_inode_block (ext2_superblock_t *sb, kos_blockdev_t *bd, uint32_t inode_num, uint8_t *buf, ext2_inode_t **rino, uint32_t *rblk)
 
static int write_superblock (ext2_superblock_t *bsb, kos_blockdev_t *bd, uint32_t bg)
 
static int write_bg_descs (ext2_superblock_t *sb, kos_blockdev_t *bd, uint32_t bg)
 
static int write_superblocks (ext2_superblock_t *sb, kos_blockdev_t *bd)
 
static int write_blank_inode_tables (ext2_superblock_t *sb, kos_blockdev_t *bd)
 
static int create_bg_descs (ext2_superblock_t *sb)
 
static int reserve_blocks (ext2_superblock_t *sb)
 
static int write_root_dir (ext2_superblock_t *sb, kos_blockdev_t *bd)
 
static int write_bitmaps (ext2_superblock_t *sb, kos_blockdev_t *bd)
 
int main (int argc, char *argv[])
 

Variables

static uint8_t block [4096]
 
static ext2_bg_desc_t * bg_descs
 
static int bg_count
 
static uint32_trsvd_inodes
 
static uint32_trsvd_blocks
 

Macro Definition Documentation

◆ GiB

#define GiB   (MiB * 1024LLU)

Referenced by pick_ext2_bs().

◆ KiB

#define KiB   1024LLU

Referenced by main().

◆ MiB

#define MiB   (KiB * 1024LLU)

Referenced by pick_ext2_bs().

Function Documentation

◆ create_bg_descs()

static int create_bg_descs ( ext2_superblock_t * sb)
static

References bg_count, bg_descs, free(), malloc(), rsvd_blocks, rsvd_inodes, and uint32_t().

Referenced by main().

◆ exit_with_error()

◆ has_superblock()

static int has_superblock ( int group)
inlinestatic

◆ main()

◆ pick_ext2_bs()

static uint32_t pick_ext2_bs ( uint64_t total_size)
inlinestatic

References GiB, and MiB.

Referenced by main().

◆ read_fs_block()

static int read_fs_block ( ext2_superblock_t * sb,
kos_blockdev_t * bd,
uint32_t block_num,
uint8_t * buf )
static

◆ read_inode_block()

static int read_inode_block ( ext2_superblock_t * sb,
kos_blockdev_t * bd,
uint32_t inode_num,
uint8_t * buf,
ext2_inode_t ** rino,
uint32_t * rblk )
static

References bg, bg_descs, read_fs_block(), and uint32_t().

Referenced by write_root_dir().

◆ reserve_blocks()

static int reserve_blocks ( ext2_superblock_t * sb)
static

◆ sb_tst()

static int sb_tst ( int group,
int root )
inlinestatic

Referenced by has_superblock().

◆ write_bg_descs()

static int write_bg_descs ( ext2_superblock_t * sb,
kos_blockdev_t * bd,
uint32_t bg )
static

◆ write_bitmaps()

static int write_bitmaps ( ext2_superblock_t * sb,
kos_blockdev_t * bd )
static

◆ write_blank_inode_tables()

static int write_blank_inode_tables ( ext2_superblock_t * sb,
kos_blockdev_t * bd )
static

◆ write_fs_block()

static int write_fs_block ( ext2_superblock_t * sb,
kos_blockdev_t * bd,
uint32_t block_num,
const uint8_t * buf )
static

◆ write_root_dir()

static int write_root_dir ( ext2_superblock_t * sb,
kos_blockdev_t * bd )
static

◆ write_superblock()

static int write_superblock ( ext2_superblock_t * bsb,
kos_blockdev_t * bd,
uint32_t bg )
static

◆ write_superblocks()

static int write_superblocks ( ext2_superblock_t * sb,
kos_blockdev_t * bd )
static

Variable Documentation

◆ bg_count

◆ bg_descs

◆ block

◆ rsvd_blocks

◆ rsvd_inodes