Util: Add VFS helper functions for reading/writing little endian values

This commit is contained in:
Jeffrey Pfau 2015-05-28 22:57:01 -07:00
parent 6b06579277
commit a73cfe4496
2 changed files with 35 additions and 0 deletions

View File

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

View File

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