Made the memory backend, should somewhat work

This commit is contained in:
Godzil
2022-05-26 15:18:16 +01:00
parent 8fd7ab33fc
commit 52c1735ea1
7 changed files with 268 additions and 28 deletions

View File

@@ -18,6 +18,20 @@
#define __miniffs_internal
#include <miniffs.h>
/* Exported API */
miniffs_t *miniffs_openfs(char *host_file)
{
return NULL;
}
/* Some internal functions */
void *miniffs_getfileaddr(miniffs_t *fs, fileentry_t *fent)
{
}
size_t host_map_file(char *filename, char **dest)
{
char *ret_ptr;

View File

@@ -7,4 +7,40 @@
******************************************************************************/
#define __miniffs_internal
#include <miniffs.h>
#include <miniffs.h>
#include <stdlib.h>
/* Public API */
miniffs_t *miniffs_openfs(uintptr_t address)
{
miniffs_t *fs = (miniffs_t *)calloc(1, sizeof(miniffs_t));
if (fs == NULL)
{
miniffs_seterror(MINIFFS_ALLOCATION_ERROR);
goto exit;
}
fs->header = (miniffs_header_t *)address;
if (!miniffs_isvalidfs(fs))
{
miniffs_seterror(MINIFFS_INVALID_FS);
goto free_and_exit;
}
goto exit;
free_and_exit:
free(fs);
fs = NULL;
exit:
return fs;
}
/* Private API */
void *miniffs_getfileaddr(miniffs_t *fs, fileentry_t *fent)
{
return fs->memoryOffset + fent->offset;
}