libctr9
Nintendo 3DS ARM9 library
ctr_fatfs_interface.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright (C) 2016 Gabriel Marcano
3  *
4  * Refer to the COPYING.txt file at the top of the project directory. If that is
5  * missing, this file is licensed under the GPL version 2.0 or later.
6  *
7  ******************************************************************************/
8 
11 #ifndef CTR_FATFS_INTERFACE_H_
12 #define CTR_FATFS_INTERFACE_H_
13 
14 #include "ctr_io_interface.h"
15 #include "sdmmc/sdmmc.h"
16 
17 #include "fatfs/ff.h"
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
25 typedef struct
26 {
27  ctr_io_interface base;
28  FIL *file;
30 
31 //FIXME is it safe to call this function multiple times?
47 
56 
67 int ctr_fatfs_interface_read(void *io, void *buffer, size_t buffer_size, uint64_t position, size_t count);
68 
79 int ctr_fatfs_interface_write(void *io, const void *buffer, size_t buffer_size, uint64_t position);
80 
93 int ctr_fatfs_interface_read_sector(void *io, void *buffer, size_t buffer_size, size_t sector, size_t count);
94 
109 int ctr_fatfs_interface_write_sector(void *io, const void *buffer, size_t buffer_size, size_t sector);
110 
116 uint64_t ctr_fatfs_interface_disk_size(void *io);
117 
123 size_t ctr_fatfs_interface_sector_size(void *io);
124 
125 #ifdef __cplusplus
126 }
127 #endif
128 
129 #endif//CTR_FATFS_INTERFACE_H_
130 
void ctr_fatfs_interface_destroy(ctr_fatfs_interface *io)
Destroys the given fatfs io interface object.
Definition: ff.h:157
int ctr_fatfs_interface_read_sector(void *io, void *buffer, size_t buffer_size, size_t sector, size_t count)
Reads sectors from the given io interface.
io interface object for accessing a fatfs file as a disk.
Definition: ctr_fatfs_interface.h:25
int ctr_fatfs_interface_write_sector(void *io, const void *buffer, size_t buffer_size, size_t sector)
Writes sectors from the given io interface.
int ctr_fatfs_interface_initialize(ctr_fatfs_interface *io, FIL *file)
Initialize the given fatfs io interface object.
Virtual table for io interface dispatching.
Definition: ctr_io_interface.h:89
int ctr_fatfs_interface_write(void *io, const void *buffer, size_t buffer_size, uint64_t position)
Writes bytes to the given io interface.
uint64_t ctr_fatfs_interface_disk_size(void *io)
Returns the size of the underlying disk for the given io interface.
int ctr_fatfs_interface_read(void *io, void *buffer, size_t buffer_size, uint64_t position, size_t count)
Reads bytes from the given io interface.
size_t ctr_fatfs_interface_sector_size(void *io)
Returns the size of the sectors used by the io interface, which is 512 bytes for fatfs due to how it ...