mirror of https://github.com/mgba-emu/mgba.git
Util: Add VFS helper functions for reading/writing little endian values
This commit is contained in:
parent
6b06579277
commit
a73cfe4496
|
@ -44,3 +44,33 @@ struct VFile* VDirOptionalOpenFile(struct VDir* dir, const char* realPath, const
|
||||||
}
|
}
|
||||||
return vf;
|
return vf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ssize_t VFileWrite32LE(struct VFile* vf, int32_t word) {
|
||||||
|
uint32_t leword;
|
||||||
|
STORE_32LE(word, 0, &leword);
|
||||||
|
return vf->write(vf, &leword, 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
ssize_t VFileWrite16LE(struct VFile* vf, int16_t hword) {
|
||||||
|
uint16_t lehword;
|
||||||
|
STORE_16LE(hword, 0, &lehword);
|
||||||
|
return vf->write(vf, &lehword, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
ssize_t VFileRead32LE(struct VFile* vf, void* word) {
|
||||||
|
uint32_t leword;
|
||||||
|
ssize_t r = vf->read(vf, &leword, 4);
|
||||||
|
if (r == 4) {
|
||||||
|
STORE_32LE(leword, 0, word);
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
ssize_t VFileRead16LE(struct VFile* vf, void* hword) {
|
||||||
|
uint16_t lehword;
|
||||||
|
ssize_t r = vf->read(vf, &lehword, 2);
|
||||||
|
if (r == 2) {
|
||||||
|
STORE_16LE(lehword, 0, hword);
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
|
@ -72,4 +72,9 @@ struct VFile* VDirOptionalOpenIncrementFile(struct VDir* dir, const char* realPa
|
||||||
|
|
||||||
ssize_t VFileReadline(struct VFile* vf, char* buffer, size_t size);
|
ssize_t VFileReadline(struct VFile* vf, char* buffer, size_t size);
|
||||||
|
|
||||||
|
ssize_t VFileWrite32LE(struct VFile* vf, int32_t word);
|
||||||
|
ssize_t VFileWrite16LE(struct VFile* vf, int16_t hword);
|
||||||
|
ssize_t VFileRead32LE(struct VFile* vf, void* word);
|
||||||
|
ssize_t VFileRead16LE(struct VFile* vf, void* hword);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue