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;
|
||||
}
|
||||
|
||||
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 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
|
||||
|
|
Loading…
Reference in New Issue