SPIFFS: Support lseek, stat, fstat
Support for lseek, stat, fstat added. Test extended to covert those functions.
This commit is contained in:
parent
bfa20af855
commit
22654a4de7
3 changed files with 33 additions and 3 deletions
|
@ -88,10 +88,13 @@ int _close_r(struct _reent *r, int fd);
|
||||||
__attribute__((weak, alias("syscall_returns_enosys")))
|
__attribute__((weak, alias("syscall_returns_enosys")))
|
||||||
int _unlink_r(struct _reent *r, const char *path);
|
int _unlink_r(struct _reent *r, const char *path);
|
||||||
|
|
||||||
__attribute__((alias("syscall_returns_enosys")))
|
__attribute__((weak, alias("syscall_returns_enosys")))
|
||||||
int _fstat_r(struct _reent *r, int fd, void *buf);
|
int _fstat_r(struct _reent *r, int fd, void *buf);
|
||||||
|
|
||||||
__attribute__((alias("syscall_returns_enosys")))
|
__attribute__((weak, alias("syscall_returns_enosys")))
|
||||||
|
int _stat_r(struct _reent *r, const char *pathname, void *buf);
|
||||||
|
|
||||||
|
__attribute__((weak, alias("syscall_returns_enosys")))
|
||||||
off_t _lseek_r(struct _reent *r, int fd, off_t offset, int whence);
|
off_t _lseek_r(struct _reent *r, int fd, off_t offset, int whence);
|
||||||
|
|
||||||
/* Generic stub for any newlib syscall that fails with errno ENOSYS
|
/* Generic stub for any newlib syscall that fails with errno ENOSYS
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 218c5235584429f407d619e5e35f90732ad505f3
|
Subproject commit 12b10230cc56970857e6890bdd5663fbae74c4c3
|
|
@ -253,3 +253,30 @@ int _unlink_r(struct _reent *r, const char *path)
|
||||||
{
|
{
|
||||||
return SPIFFS_remove(&fs, path);
|
return SPIFFS_remove(&fs, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int _fstat_r(struct _reent *r, int fd, void *buf)
|
||||||
|
{
|
||||||
|
spiffs_stat s;
|
||||||
|
struct stat *sb = (struct stat*)buf;
|
||||||
|
|
||||||
|
int result = SPIFFS_fstat(&fs, (spiffs_file)(fd - FD_OFFSET), &s);
|
||||||
|
sb->st_size = s.size;
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
int _stat_r(struct _reent *r, const char *pathname, void *buf)
|
||||||
|
{
|
||||||
|
spiffs_stat s;
|
||||||
|
struct stat *sb = (struct stat*)buf;
|
||||||
|
|
||||||
|
int result = SPIFFS_stat(&fs, pathname, &s);
|
||||||
|
sb->st_size = s.size;
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
off_t _lseek_r(struct _reent *r, int fd, off_t offset, int whence)
|
||||||
|
{
|
||||||
|
return SPIFFS_lseek(&fs, (spiffs_file)(fd - FD_OFFSET), offset, whence);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue