floperr_t floppy_clear_sector(floppy_image *floppy, int head, int track, int sector, UINT8 data) { floperr_t err; UINT32 length; UINT8 *buffer = NULL; err = floppy_get_sector_length(floppy, head, track, sector, &length); if (err) goto done; buffer = malloc(length); if (err) { err = FLOPPY_ERROR_OUTOFMEMORY; goto done; } memset(buffer, data, length); err = floppy_write_sector(floppy, head, track, sector, 0, buffer, length); if (err) goto done; done: if (buffer) free(buffer); return err; }
static imgtoolerr_t imgtool_floppy_get_sector_size(imgtool_image *image, UINT32 track, UINT32 head, UINT32 sector, UINT32 *sector_size) { floperr_t ferr; ferr = floppy_get_sector_length(imgtool_floppy(image), head, track, sector, sector_size); if (ferr) return imgtool_floppy_error(ferr); return IMGTOOLERR_SUCCESS; }