mirror of
https://github.com/eledio-devices/thirdparty-littlefs.git
synced 2025-10-31 00:32:38 +01:00
Merge pull request #643 from microist/fix-filebd-windows
Fixes to use lfs_filebd on windows platforms
This commit is contained in:
@@ -10,6 +10,10 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
int lfs_filebd_createcfg(const struct lfs_config *cfg, const char *path,
|
int lfs_filebd_createcfg(const struct lfs_config *cfg, const char *path,
|
||||||
const struct lfs_filebd_config *bdcfg) {
|
const struct lfs_filebd_config *bdcfg) {
|
||||||
LFS_FILEBD_TRACE("lfs_filebd_createcfg(%p {.context=%p, "
|
LFS_FILEBD_TRACE("lfs_filebd_createcfg(%p {.context=%p, "
|
||||||
@@ -27,7 +31,12 @@ int lfs_filebd_createcfg(const struct lfs_config *cfg, const char *path,
|
|||||||
bd->cfg = bdcfg;
|
bd->cfg = bdcfg;
|
||||||
|
|
||||||
// open file
|
// open file
|
||||||
|
#ifdef _WIN32
|
||||||
|
bd->fd = open(path, O_RDWR | O_CREAT | O_BINARY, 0666);
|
||||||
|
#else
|
||||||
bd->fd = open(path, O_RDWR | O_CREAT, 0666);
|
bd->fd = open(path, O_RDWR | O_CREAT, 0666);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (bd->fd < 0) {
|
if (bd->fd < 0) {
|
||||||
int err = -errno;
|
int err = -errno;
|
||||||
LFS_FILEBD_TRACE("lfs_filebd_createcfg -> %d", err);
|
LFS_FILEBD_TRACE("lfs_filebd_createcfg -> %d", err);
|
||||||
@@ -193,7 +202,11 @@ int lfs_filebd_sync(const struct lfs_config *cfg) {
|
|||||||
LFS_FILEBD_TRACE("lfs_filebd_sync(%p)", (void*)cfg);
|
LFS_FILEBD_TRACE("lfs_filebd_sync(%p)", (void*)cfg);
|
||||||
// file sync
|
// file sync
|
||||||
lfs_filebd_t *bd = cfg->context;
|
lfs_filebd_t *bd = cfg->context;
|
||||||
|
#ifdef _WIN32
|
||||||
|
int err = FlushFileBuffers((HANDLE) _get_osfhandle(fd)) ? 0 : -1;
|
||||||
|
#else
|
||||||
int err = fsync(bd->fd);
|
int err = fsync(bd->fd);
|
||||||
|
#endif
|
||||||
if (err) {
|
if (err) {
|
||||||
err = -errno;
|
err = -errno;
|
||||||
LFS_FILEBD_TRACE("lfs_filebd_sync -> %d", 0);
|
LFS_FILEBD_TRACE("lfs_filebd_sync -> %d", 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user