static int saveMap(const char *fileName) { int status = 0; disk mapDisk; fileStream theStream; int count; memset(&mapDisk, 0, sizeof(disk)); memset(&theStream, 0, sizeof(fileStream)); // Find out whether the file is on a read-only filesystem if (!fileGetDisk(fileName, &mapDisk) && mapDisk.readOnly) { error(_("Can't write %s:\nFilesystem is read-only"), fileName); return (status = ERR_NOWRITE); } if (graphics && nameField) // Get the map name windowComponentGetData(nameField, selectedMap->name, 32); for (count = 0; count < KEYBOARD_SCAN_CODES; count ++) { selectedMap->regMap[count] = keyArray[count].regMap; selectedMap->shiftMap[count] = keyArray[count].shiftMap; selectedMap->controlMap[count] = keyArray[count].controlMap; selectedMap->altGrMap[count] = keyArray[count].altGrMap; } status = fileStreamOpen(fileName, (OPENMODE_CREATE | OPENMODE_WRITE | OPENMODE_TRUNCATE), &theStream); if (status < 0) { error(_("Couldn't open file %s"), fileName); return (status); } status = fileStreamWrite(&theStream, sizeof(keyMap), (char *) selectedMap); fileStreamClose(&theStream); if (status < 0) error(_("Couldn't write file %s"), fileName); return (status); }
static int ChibiOSBFSWrite(GFILE *f, const void *buf, int size) { return fileStreamWrite(((FileStream *)f->obj), (uint8_t *)buf, size); }