Fixed big-endian support again

This is what I get for not runing CI on a local development branch.
This commit is contained in:
Christopher Haster
2018-04-10 16:35:29 -05:00
parent 2a8277bd4d
commit ea4ded420c

19
lfs.c
View File

@@ -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;
}