瀏覽代碼

Fixed big-endian support again

This is what I get for not runing CI on a local development branch.
Christopher Haster 7 年之前
父節點
當前提交
ea4ded420c
共有 1 個文件被更改,包括 10 次插入9 次删除
  1. 10 9
      lfs.c

+ 10 - 9
lfs.c

@@ -1272,6 +1272,7 @@ int lfs_mkdir(lfs_t *lfs, const char *path) {
 
     cwd.d.tail[0] = dir.pair[0];
     cwd.d.tail[1] = dir.pair[1];
+    lfs_entry_tole32(&entry.d);
     err = lfs_dir_set(lfs, &cwd, &entry, (struct lfs_region[]){
             {LFS_FROM_MEM, 0, 0, &entry.d, sizeof(entry.d)},
             {LFS_FROM_MEM, 0, 0, path, nlen}}, 2);
@@ -1893,8 +1894,7 @@ int lfs_file_sync(lfs_t *lfs, lfs_file_t *file) {
         }
 
         lfs_entry_t entry = {.off = file->pairoff};
-        err = lfs_dir_get(lfs, &cwd, entry.off, &entry.d, sizeof(entry.d));
-        lfs_entry_fromle32(&entry.d);
+        err = lfs_dir_get(lfs, &cwd, entry.off, &entry.d, 4);
         if (err) {
             return err;
         }
@@ -1912,6 +1912,7 @@ int lfs_file_sync(lfs_t *lfs, lfs_file_t *file) {
             entry.d.u.file.head = file->head;
             entry.d.u.file.size = file->size;
 
+            lfs_entry_tole32(&entry.d);
             buffer = (const uint8_t *)&entry.d + 4;
             size = sizeof(entry.d) - 4;
         } else {
@@ -2249,7 +2250,7 @@ int lfs_file_getattrs(lfs_t *lfs, lfs_file_t *file,
         }
 
         lfs_entry_t entry = {.off = file->pairoff};
-        err = lfs_dir_get(lfs, &cwd, entry.off, &entry.d, sizeof(entry.d));
+        err = lfs_dir_get(lfs, &cwd, entry.off, &entry.d, 4);
         if (err) {
             return err;
         }
@@ -2293,7 +2294,7 @@ int lfs_file_setattrs(lfs_t *lfs, lfs_file_t *file,
         }
 
         lfs_entry_t entry = {.off = file->pairoff};
-        err = lfs_dir_get(lfs, &cwd, entry.off, &entry.d, sizeof(entry.d));
+        err = lfs_dir_get(lfs, &cwd, entry.off, &entry.d, 4);
         if (err) {
             return err;
         }
@@ -2740,7 +2741,7 @@ int lfs_mount(lfs_t *lfs, const struct lfs_config *cfg) {
     }
 
     lfs_entry_t entry = {.off = sizeof(dir.d)};
-    err = lfs_dir_get(lfs, &dir, entry.off, &entry.d, sizeof(entry.d));
+    err = lfs_dir_get(lfs, &dir, entry.off, &entry.d, 4);
     if (err) {
         return err;
     }
@@ -3005,6 +3006,7 @@ static int lfs_relocate(lfs_t *lfs,
         // update disk, this creates a desync
         entry.d.u.dir[0] = newpair[0];
         entry.d.u.dir[1] = newpair[1];
+        lfs_entry_tole32(&entry.d);
         int err = lfs_dir_set(lfs, &parent, &entry, (struct lfs_region[]){
                 {LFS_FROM_MEM, 0, sizeof(entry.d),
                     &entry.d, sizeof(entry.d)}}, 1);
@@ -3133,8 +3135,7 @@ int lfs_deorphan(lfs_t *lfs) {
                             entry.d.u.dir[0], entry.d.u.dir[1]);
                     entry.d.type &= ~LFS_STRUCT_MOVED;
                     err = lfs_dir_set(lfs, &cwd, &entry, (struct lfs_region[]){
-                            {LFS_FROM_MEM, 0, sizeof(entry.d),
-                                &entry.d, sizeof(entry.d)}}, 1);
+                            {LFS_FROM_MEM, 0, 1, &entry.d, 1}}, 1);
                     if (err) {
                         return err;
                     }
@@ -3158,7 +3159,7 @@ int lfs_fs_getattrs(lfs_t *lfs, const struct lfs_attr *attrs, int count) {
     }
 
     lfs_entry_t entry = {.off = sizeof(dir.d)};
-    err = lfs_dir_get(lfs, &dir, entry.off, &entry.d, sizeof(entry.d));
+    err = lfs_dir_get(lfs, &dir, entry.off, &entry.d, 4);
     if (err) {
         return err;
     }
@@ -3175,7 +3176,7 @@ int lfs_fs_setattrs(lfs_t *lfs, const struct lfs_attr *attrs, int count) {
     }
 
     lfs_entry_t entry = {.off = sizeof(dir.d)};
-    err = lfs_dir_get(lfs, &dir, entry.off, &entry.d, sizeof(entry.d));
+    err = lfs_dir_get(lfs, &dir, entry.off, &entry.d, 4);
     if (err) {
         return err;
     }