SSBM Decomp
Loading...
Searching...
No Matches
lbfile.c File Reference
#include "lbfile.h"
#include <placeholder.h>
#include <string.h>
#include "lb_0195.h"
#include "lbdvd.h"
#include "lbheap.h"
#include "lblanguage.h"
#include <dolphin/dvd.h>
#include <sysdolphin/baselib/debug.h>
#include <sysdolphin/baselib/devcom.h>

Macros

#define MAX_FILENAME_LENGTH   0x20
#define ROUND_UP_32(x)

Functions

static void lbFile_8001615C (int dcreq, int args, void *buf, bool cancelflag)
static bool discIsDone (void)
static void waitForDisc (void)
void lbFile_800161C4 (int file, uintptr_t src, uintptr_t dst, size_t size, int type, int pri)
char * lbFileGetFullName (const char *basename)
 append file extension (if needed)
size_t lbFile_8001634C (int fileno)
size_t lbFileGetSize (const char *basename)
void lbFile_800164A4 (int file, uintptr_t dst, size_t *size, int pri, HSD_DevComCallback callback, void *args)
void lbFile_80016580 (const char *basename, void *dst, size_t *size, HSD_DevComCallback callback, void *args)
void lbFile_8001668C (const char *basename, void *dst, size_t *size)
static void lbFile_80016760_inline (int heap_id, const char *basename, void **dst, size_t *size)
void lbFile_80016760 (const char *basename, void **dst, size_t *size)
 Same as lbFile_800168A0, but with an implicit heap_id=0 and no preload cache.
bool lbFile_800168A0 (int heap_id, const char *basename, void **dst, size_t *size)

Variables

static bool cancel
const int FILE_EXTENSION_LENGTH = 4
const int MAX_BASENAME_LENGTH = MAX_FILENAME_LENGTH - FILE_EXTENSION_LENGTH

Macro Definition Documentation

◆ MAX_FILENAME_LENGTH

#define MAX_FILENAME_LENGTH   0x20

◆ ROUND_UP_32

#define ROUND_UP_32 ( x)
Value:
(((x) + 31) & ~31)

Function Documentation

◆ lbFile_8001615C()

void lbFile_8001615C ( int dcreq,
int args,
void * buf,
bool cancelflag )
static

◆ discIsDone()

bool discIsDone ( void )
static
Todo
Non-inlined function forces loop in lbFile_800161C4 to yield to interrupts. Pragma solution likely fake.

◆ waitForDisc()

void waitForDisc ( void )
static

◆ lbFile_800161C4()

void lbFile_800161C4 ( int file,
uintptr_t src,
uintptr_t dst,
size_t size,
int type,
int pri )

◆ lbFileGetFullName()

char * lbFileGetFullName ( const char * basename)

append file extension (if needed)

Returns
The proper filename + extension of an extensionless "base name".

◆ lbFile_8001634C()

size_t lbFile_8001634C ( int fileno)

◆ lbFileGetSize()

size_t lbFileGetSize ( const char * basename)
Returns
The size in bytes of a specified file

◆ lbFile_800164A4()

void lbFile_800164A4 ( int file,
uintptr_t dst,
size_t * size,
int pri,
HSD_DevComCallback callback,
void * args )

◆ lbFile_80016580()

void lbFile_80016580 ( const char * basename,
void * dst,
size_t * size,
HSD_DevComCallback callback,
void * args )

◆ lbFile_8001668C()

void lbFile_8001668C ( const char * basename,
void * dst,
size_t * size )

◆ lbFile_80016760_inline()

void lbFile_80016760_inline ( int heap_id,
const char * basename,
void ** dst,
size_t * size )
static

◆ lbFile_80016760()

void lbFile_80016760 ( const char * basename,
void ** dst,
size_t * size )

Same as lbFile_800168A0, but with an implicit heap_id=0 and no preload cache.

◆ lbFile_800168A0()

bool lbFile_800168A0 ( int arg0,
const char * basename,
void ** dst,
size_t * size )
Parameters
heap_idThe heap ID to use for the allocation (if needed)
basenameBase (extensionless) file name to read
[out]dstAddress of read contents
[out]sizeSize of read contents
Returns
True iff the file was already preloaded, rather than read from disc.

Variable Documentation

◆ cancel

bool cancel
static

◆ FILE_EXTENSION_LENGTH

const int FILE_EXTENSION_LENGTH = 4

◆ MAX_BASENAME_LENGTH

const int MAX_BASENAME_LENGTH = MAX_FILENAME_LENGTH - FILE_EXTENSION_LENGTH