Gdbstub, Minitrace and more (#2653)

* Fix gdbstub compilation

* Fix minitrace compilation

* Fix many warnings on Linux Builds

* Support DirectInput for Joysticks in QT UI too
This commit is contained in:
Jasmine Iwanek
2022-08-31 17:35:32 -04:00
committed by GitHub
parent 65fbe568ec
commit 5e0c1ac209
24 changed files with 104 additions and 86 deletions

View File

@@ -291,7 +291,7 @@ config_detect_bom(char *fn)
#endif #endif
if (f == NULL) if (f == NULL)
return (0); return (0);
fread(bom, 1, 3, f); (void) !fread(bom, 1, 3, f);
if (bom[0] == 0xEF && bom[1] == 0xBB && bom[2] == 0xBF) { if (bom[0] == 0xEF && bom[1] == 0xBB && bom[2] == 0xBF) {
fclose(f); fclose(f);
return 1; return 1;
@@ -357,7 +357,7 @@ config_read(char *fn)
#ifdef __HAIKU__ #ifdef __HAIKU__
config_fgetws(buff, sizeof_w(buff), f); config_fgetws(buff, sizeof_w(buff), f);
#else #else
fgetws(buff, sizeof_w(buff), f); (void) !fgetws(buff, sizeof_w(buff), f);
#endif #endif
if (feof(f)) if (feof(f))
break; break;
@@ -387,7 +387,7 @@ config_read(char *fn)
c++; c++;
d = 0; d = 0;
while (buff[c] != L']' && buff[c]) while (buff[c] != L']' && buff[c])
wctomb(&(sname[d++]), buff[c++]); (void) !wctomb(&(sname[d++]), buff[c++]);
sname[d] = L'\0'; sname[d] = L'\0';
/* Is the section name properly terminated? */ /* Is the section name properly terminated? */
@@ -408,7 +408,7 @@ config_read(char *fn)
/* Get the variable name. */ /* Get the variable name. */
d = 0; d = 0;
while ((buff[c] != L'=') && (buff[c] != L' ') && buff[c]) while ((buff[c] != L'=') && (buff[c] != L' ') && buff[c])
wctomb(&(ename[d++]), buff[c++]); (void) !wctomb(&(ename[d++]), buff[c++]);
ename[d] = L'\0'; ename[d] = L'\0';
/* Skip incomplete lines. */ /* Skip incomplete lines. */

View File

@@ -119,12 +119,12 @@ cart_image_load(int drive, char *fn)
if (size & 0x00000fff) { if (size & 0x00000fff) {
size -= 0x00000200; size -= 0x00000200;
fseek(f, 0x000001ce, SEEK_SET); fseek(f, 0x000001ce, SEEK_SET);
fread(&base, 1, 2, f); (void) !fread(&base, 1, 2, f);
base <<= 4; base <<= 4;
fseek(f, 0x00000200, SEEK_SET); fseek(f, 0x00000200, SEEK_SET);
carts[drive].buf = (uint8_t *) malloc(size); carts[drive].buf = (uint8_t *) malloc(size);
memset(carts[drive].buf, 0x00, size); memset(carts[drive].buf, 0x00, size);
fread(carts[drive].buf, 1, size, f); (void) !fread(carts[drive].buf, 1, size, f);
fclose(f); fclose(f);
} else { } else {
base = drive ? 0xe0000 : 0xd0000; base = drive ? 0xe0000 : 0xd0000;
@@ -133,7 +133,7 @@ cart_image_load(int drive, char *fn)
fseek(f, 0x00000000, SEEK_SET); fseek(f, 0x00000000, SEEK_SET);
carts[drive].buf = (uint8_t *) malloc(size); carts[drive].buf = (uint8_t *) malloc(size);
memset(carts[drive].buf, 0x00, size); memset(carts[drive].buf, 0x00, size);
fread(carts[drive].buf, 1, size, f); (void) !fread(carts[drive].buf, 1, size, f);
fclose(f); fclose(f);
} }

View File

@@ -112,7 +112,7 @@ lm78_nvram(lm78_t *dev, uint8_t save)
if (save) if (save)
fwrite(&dev->as99127f.nvram, sizeof(dev->as99127f.nvram), 1, f); fwrite(&dev->as99127f.nvram, sizeof(dev->as99127f.nvram), 1, f);
else else
fread(&dev->as99127f.nvram, sizeof(dev->as99127f.nvram), 1, f); (void) !fread(&dev->as99127f.nvram, sizeof(dev->as99127f.nvram), 1, f);
fclose(f); fclose(f);
} }

View File

@@ -71,7 +71,7 @@ MVHDMeta* mvhd_convert_to_vhd_sparse(const char* utf8_raw_path, const char* utf8
copy_sect = total_sectors - i; copy_sect = total_sectors - i;
memset(buff, 0, sizeof buff); memset(buff, 0, sizeof buff);
} }
fread(buff, MVHD_SECTOR_SIZE, copy_sect, raw_img); (void) !fread(buff, MVHD_SECTOR_SIZE, copy_sect, raw_img);
/* Only write data if there's data to write, to take advantage of the sparse VHD format */ /* Only write data if there's data to write, to take advantage of the sparse VHD format */
if (memcmp(buff, empty_buff, sizeof buff) != 0) { if (memcmp(buff, empty_buff, sizeof buff) != 0) {
mvhd_write_sectors(vhdm, i, copy_sect, buff); mvhd_write_sectors(vhdm, i, copy_sect, buff);

View File

@@ -214,7 +214,7 @@ MVHDMeta* mvhd_create_fixed_raw(const char* path, FILE* raw_img, uint64_t size_i
mvhd_gen_footer(&vhdm->footer, raw_size, geom, MVHD_TYPE_FIXED, 0); mvhd_gen_footer(&vhdm->footer, raw_size, geom, MVHD_TYPE_FIXED, 0);
mvhd_fseeko64(raw_img, 0, SEEK_SET); mvhd_fseeko64(raw_img, 0, SEEK_SET);
for (s = 0; s < size_sectors; s++) { for (s = 0; s < size_sectors; s++) {
fread(img_data, sizeof img_data, 1, raw_img); (void) !fread(img_data, sizeof img_data, 1, raw_img);
fwrite(img_data, sizeof img_data, 1, f); fwrite(img_data, sizeof img_data, 1, f);
if (progress_callback) if (progress_callback)
progress_callback(s + 1, size_sectors); progress_callback(s + 1, size_sectors);

View File

@@ -62,7 +62,7 @@ void mvhd_write_empty_sectors(FILE* f, int sector_count) {
static void mvhd_read_sect_bitmap(MVHDMeta* vhdm, int blk) { static void mvhd_read_sect_bitmap(MVHDMeta* vhdm, int blk) {
if (vhdm->block_offset[blk] != MVHD_SPARSE_BLK) { if (vhdm->block_offset[blk] != MVHD_SPARSE_BLK) {
mvhd_fseeko64(vhdm->f, (uint64_t)vhdm->block_offset[blk] * MVHD_SECTOR_SIZE, SEEK_SET); mvhd_fseeko64(vhdm->f, (uint64_t)vhdm->block_offset[blk] * MVHD_SECTOR_SIZE, SEEK_SET);
fread(vhdm->bitmap.curr_bitmap, vhdm->bitmap.sector_count * MVHD_SECTOR_SIZE, 1, vhdm->f); (void) !fread(vhdm->bitmap.curr_bitmap, vhdm->bitmap.sector_count * MVHD_SECTOR_SIZE, 1, vhdm->f);
} else { } else {
memset(vhdm->bitmap.curr_bitmap, 0, vhdm->bitmap.sector_count * MVHD_SECTOR_SIZE); memset(vhdm->bitmap.curr_bitmap, 0, vhdm->bitmap.sector_count * MVHD_SECTOR_SIZE);
} }
@@ -113,12 +113,12 @@ static void mvhd_create_block(MVHDMeta* vhdm, int blk) {
uint8_t footer[MVHD_FOOTER_SIZE]; uint8_t footer[MVHD_FOOTER_SIZE];
/* Seek to where the footer SHOULD be */ /* Seek to where the footer SHOULD be */
mvhd_fseeko64(vhdm->f, -MVHD_FOOTER_SIZE, SEEK_END); mvhd_fseeko64(vhdm->f, -MVHD_FOOTER_SIZE, SEEK_END);
fread(footer, sizeof footer, 1, vhdm->f); (void) !fread(footer, sizeof footer, 1, vhdm->f);
mvhd_fseeko64(vhdm->f, -MVHD_FOOTER_SIZE, SEEK_END); mvhd_fseeko64(vhdm->f, -MVHD_FOOTER_SIZE, SEEK_END);
if (!mvhd_is_conectix_str(footer)) { if (!mvhd_is_conectix_str(footer)) {
/* Oh dear. We use the header instead, since something has gone wrong at the footer */ /* Oh dear. We use the header instead, since something has gone wrong at the footer */
mvhd_fseeko64(vhdm->f, 0, SEEK_SET); mvhd_fseeko64(vhdm->f, 0, SEEK_SET);
fread(footer, sizeof footer, 1, vhdm->f); (void) !fread(footer, sizeof footer, 1, vhdm->f);
mvhd_fseeko64(vhdm->f, 0, SEEK_END); mvhd_fseeko64(vhdm->f, 0, SEEK_END);
} }
int64_t abs_offset = mvhd_ftello64(vhdm->f); int64_t abs_offset = mvhd_ftello64(vhdm->f);
@@ -150,7 +150,7 @@ int mvhd_fixed_read(MVHDMeta* vhdm, uint32_t offset, int num_sectors, void* out_
mvhd_check_sectors(offset, num_sectors, total_sectors, &transfer_sectors, &truncated_sectors); mvhd_check_sectors(offset, num_sectors, total_sectors, &transfer_sectors, &truncated_sectors);
addr = (int64_t)offset * MVHD_SECTOR_SIZE; addr = (int64_t)offset * MVHD_SECTOR_SIZE;
mvhd_fseeko64(vhdm->f, addr, SEEK_SET); mvhd_fseeko64(vhdm->f, addr, SEEK_SET);
fread(out_buff, transfer_sectors*MVHD_SECTOR_SIZE, 1, vhdm->f); (void) !fread(out_buff, transfer_sectors*MVHD_SECTOR_SIZE, 1, vhdm->f);
return truncated_sectors; return truncated_sectors;
} }
@@ -178,7 +178,7 @@ int mvhd_sparse_read(MVHDMeta* vhdm, uint32_t offset, int num_sectors, void* out
} }
} }
if (VHD_TESTBIT(vhdm->bitmap.curr_bitmap, sib)) { if (VHD_TESTBIT(vhdm->bitmap.curr_bitmap, sib)) {
fread(buff, MVHD_SECTOR_SIZE, 1, vhdm->f); (void) !fread(buff, MVHD_SECTOR_SIZE, 1, vhdm->f);
} else { } else {
memset(buff, 0, MVHD_SECTOR_SIZE); memset(buff, 0, MVHD_SECTOR_SIZE);
mvhd_fseeko64(vhdm->f, MVHD_SECTOR_SIZE, SEEK_CUR); mvhd_fseeko64(vhdm->f, MVHD_SECTOR_SIZE, SEEK_CUR);

View File

@@ -45,7 +45,7 @@ static int mvhd_init_sector_bitmap(MVHDMeta* vhdm, MVHDError* err);
static void mvhd_read_footer(MVHDMeta* vhdm) { static void mvhd_read_footer(MVHDMeta* vhdm) {
uint8_t buffer[MVHD_FOOTER_SIZE]; uint8_t buffer[MVHD_FOOTER_SIZE];
mvhd_fseeko64(vhdm->f, -MVHD_FOOTER_SIZE, SEEK_END); mvhd_fseeko64(vhdm->f, -MVHD_FOOTER_SIZE, SEEK_END);
fread(buffer, sizeof buffer, 1, vhdm->f); (void) !fread(buffer, sizeof buffer, 1, vhdm->f);
mvhd_buffer_to_footer(&vhdm->footer, buffer); mvhd_buffer_to_footer(&vhdm->footer, buffer);
} }
@@ -57,7 +57,7 @@ static void mvhd_read_footer(MVHDMeta* vhdm) {
static void mvhd_read_sparse_header(MVHDMeta* vhdm) { static void mvhd_read_sparse_header(MVHDMeta* vhdm) {
uint8_t buffer[MVHD_SPARSE_SIZE]; uint8_t buffer[MVHD_SPARSE_SIZE];
mvhd_fseeko64(vhdm->f, vhdm->footer.data_offset, SEEK_SET); mvhd_fseeko64(vhdm->f, vhdm->footer.data_offset, SEEK_SET);
fread(buffer, sizeof buffer, 1, vhdm->f); (void) !fread(buffer, sizeof buffer, 1, vhdm->f);
mvhd_buffer_to_header(&vhdm->sparse, buffer); mvhd_buffer_to_header(&vhdm->sparse, buffer);
} }
@@ -104,7 +104,7 @@ static int mvhd_read_bat(MVHDMeta *vhdm, MVHDError* err) {
} }
mvhd_fseeko64(vhdm->f, vhdm->sparse.bat_offset, SEEK_SET); mvhd_fseeko64(vhdm->f, vhdm->sparse.bat_offset, SEEK_SET);
for (uint32_t i = 0; i < vhdm->sparse.max_bat_ent; i++) { for (uint32_t i = 0; i < vhdm->sparse.max_bat_ent; i++) {
fread(&vhdm->block_offset[i], sizeof *vhdm->block_offset, 1, vhdm->f); (void) !fread(&vhdm->block_offset[i], sizeof *vhdm->block_offset, 1, vhdm->f);
vhdm->block_offset[i] = mvhd_from_be32(vhdm->block_offset[i]); vhdm->block_offset[i] = mvhd_from_be32(vhdm->block_offset[i]);
} }
return 0; return 0;
@@ -254,7 +254,7 @@ static char* mvhd_get_diff_parent_path(MVHDMeta* vhdm, int* err) {
goto paths_cleanup; goto paths_cleanup;
} }
mvhd_fseeko64(vhdm->f, vhdm->sparse.par_loc_entry[i].plat_data_offset, SEEK_SET); mvhd_fseeko64(vhdm->f, vhdm->sparse.par_loc_entry[i].plat_data_offset, SEEK_SET);
fread(paths->tmp_src_path, sizeof (uint8_t), utf_inlen, vhdm->f); (void) !fread(paths->tmp_src_path, sizeof (uint8_t), utf_inlen, vhdm->f);
/* Note, the W2*u parent locators are UTF-16LE, unlike the filename field previously obtained, /* Note, the W2*u parent locators are UTF-16LE, unlike the filename field previously obtained,
which is UTF-16BE */ which is UTF-16BE */
utf_ret = UTF16LEToUTF8(loc_path, &utf_outlen, (const unsigned char*)paths->tmp_src_path, &utf_inlen); utf_ret = UTF16LEToUTF8(loc_path, &utf_outlen, (const unsigned char*)paths->tmp_src_path, &utf_inlen);
@@ -322,7 +322,7 @@ bool mvhd_file_is_vhd(FILE* f) {
if (f) { if (f) {
uint8_t con_str[8]; uint8_t con_str[8];
mvhd_fseeko64(f, -MVHD_FOOTER_SIZE, SEEK_END); mvhd_fseeko64(f, -MVHD_FOOTER_SIZE, SEEK_END);
fread(con_str, sizeof con_str, 1, f); (void) !fread(con_str, sizeof con_str, 1, f);
return mvhd_is_conectix_str(con_str); return mvhd_is_conectix_str(con_str);
} else { } else {
return false; return false;

View File

@@ -2923,13 +2923,13 @@ d86f_read_track(int drive, int track, int thin_track, int side, uint16_t *da, ui
} }
} else } else
dev->extra_bit_cells[side] = 0; dev->extra_bit_cells[side] = 0;
fread(&(dev->index_hole_pos[side]), 4, 1, dev->f); (void) !fread(&(dev->index_hole_pos[side]), 4, 1, dev->f);
} else } else
fseek(dev->f, dev->track_offset[logical_track] + d86f_track_header_size(drive), SEEK_SET); fseek(dev->f, dev->track_offset[logical_track] + d86f_track_header_size(drive), SEEK_SET);
array_size = d86f_get_array_size(drive, side, 0); array_size = d86f_get_array_size(drive, side, 0);
fread(da, 1, array_size, dev->f); (void) !fread(da, 1, array_size, dev->f);
if (d86f_has_surface_desc(drive)) if (d86f_has_surface_desc(drive))
fread(sa, 1, array_size, dev->f); (void) !fread(sa, 1, array_size, dev->f);
} else { } else {
if (! thin_track) { if (! thin_track) {
switch((dev->disk_flags >> 1) & 3) { switch((dev->disk_flags >> 1) & 3) {
@@ -3529,7 +3529,7 @@ d86f_load(int drive, char *fn)
len = ftell(dev->f); len = ftell(dev->f);
fseek(dev->f, 0, SEEK_SET); fseek(dev->f, 0, SEEK_SET);
fread(&magic, 4, 1, dev->f); (void) !fread(&magic, 4, 1, dev->f);
if (len < 16) { if (len < 16) {
/* File is WAY too small, abort. */ /* File is WAY too small, abort. */
@@ -3570,7 +3570,7 @@ d86f_load(int drive, char *fn)
d86f_log("86F: Recognized file version: %i.%02i\n", dev->version >> 8, dev->version & 0xff); d86f_log("86F: Recognized file version: %i.%02i\n", dev->version >> 8, dev->version & 0xff);
} }
fread(&(dev->disk_flags), 2, 1, dev->f); (void) !fread(&(dev->disk_flags), 2, 1, dev->f);
if (d86f_has_surface_desc(drive)) { if (d86f_has_surface_desc(drive)) {
for (i = 0; i < 2; i++) for (i = 0; i < 2; i++)
@@ -3719,7 +3719,7 @@ d86f_load(int drive, char *fn)
fseek(dev->f, 8, SEEK_SET); fseek(dev->f, 8, SEEK_SET);
fread(dev->track_offset, 1, d86f_get_track_table_size(drive), dev->f); (void) !fread(dev->track_offset, 1, d86f_get_track_table_size(drive), dev->f);
if (! (dev->track_offset[0])) { if (! (dev->track_offset[0])) {
/* File has no track 0 side 0, abort. */ /* File has no track 0 side 0, abort. */

View File

@@ -684,12 +684,12 @@ img_load(int drive, char *fn)
/* This is a Japanese FDI image, so let's read the header */ /* This is a Japanese FDI image, so let's read the header */
img_log("img_load(): File is a Japanese FDI image...\n"); img_log("img_load(): File is a Japanese FDI image...\n");
fseek(dev->f, 0x10, SEEK_SET); fseek(dev->f, 0x10, SEEK_SET);
(void)fread(&bpb_bps, 1, 2, dev->f); (void) !fread(&bpb_bps, 1, 2, dev->f);
fseek(dev->f, 0x0C, SEEK_SET); fseek(dev->f, 0x0C, SEEK_SET);
(void)fread(&size, 1, 4, dev->f); (void) !fread(&size, 1, 4, dev->f);
bpb_total = size / bpb_bps; bpb_total = size / bpb_bps;
fseek(dev->f, 0x08, SEEK_SET); fseek(dev->f, 0x08, SEEK_SET);
(void)fread(&(dev->base), 1, 4, dev->f); (void) !fread(&(dev->base), 1, 4, dev->f);
fseek(dev->f, dev->base + 0x15, SEEK_SET); fseek(dev->f, dev->base + 0x15, SEEK_SET);
bpb_mid = fgetc(dev->f); bpb_mid = fgetc(dev->f);
if (bpb_mid < 0xF0) if (bpb_mid < 0xF0)
@@ -729,7 +729,7 @@ img_load(int drive, char *fn)
dev->disk_at_once = 1; dev->disk_at_once = 1;
fseek(dev->f, 0x50, SEEK_SET); fseek(dev->f, 0x50, SEEK_SET);
(void)fread(&dev->tracks, 1, 4, dev->f); (void) !fread(&dev->tracks, 1, 4, dev->f);
/* Decode the entire file - pass 1, no write to buffer, determine length. */ /* Decode the entire file - pass 1, no write to buffer, determine length. */
fseek(dev->f, 0x80, SEEK_SET); fseek(dev->f, 0x80, SEEK_SET);
@@ -740,10 +740,10 @@ img_load(int drive, char *fn)
if (! track_bytes) { if (! track_bytes) {
/* Skip first 3 bytes - their meaning is unknown to us but could be a checksum. */ /* Skip first 3 bytes - their meaning is unknown to us but could be a checksum. */
first_byte = fgetc(dev->f); first_byte = fgetc(dev->f);
fread(&track_bytes, 1, 2, dev->f); (void) !fread(&track_bytes, 1, 2, dev->f);
img_log("Block header: %02X %04X ", first_byte, track_bytes); img_log("Block header: %02X %04X ", first_byte, track_bytes);
/* Read the length of encoded data block. */ /* Read the length of encoded data block. */
fread(&track_bytes, 1, 2, dev->f); (void) !fread(&track_bytes, 1, 2, dev->f);
img_log("%04X\n", track_bytes); img_log("%04X\n", track_bytes);
} }
@@ -765,7 +765,7 @@ img_load(int drive, char *fn)
/* Literal. */ /* Literal. */
track_bytes -= (run & 0x7f); track_bytes -= (run & 0x7f);
literal = (uint8_t *)malloc(run & 0x7f); literal = (uint8_t *)malloc(run & 0x7f);
fread(literal, 1, (run & 0x7f), dev->f); (void) !fread(literal, 1, (run & 0x7f), dev->f);
free(literal); free(literal);
} }
size += (run & 0x7f); size += (run & 0x7f);
@@ -775,7 +775,7 @@ img_load(int drive, char *fn)
/* Literal block. */ /* Literal block. */
size += (track_bytes - fdf_suppress_final_byte); size += (track_bytes - fdf_suppress_final_byte);
literal = (uint8_t *)malloc(track_bytes); literal = (uint8_t *)malloc(track_bytes);
fread(literal, 1, track_bytes, dev->f); (void) !fread(literal, 1, track_bytes, dev->f);
free(literal); free(literal);
track_bytes = 0; track_bytes = 0;
} }
@@ -794,10 +794,10 @@ img_load(int drive, char *fn)
if (! track_bytes) { if (! track_bytes) {
/* Skip first 3 bytes - their meaning is unknown to us but could be a checksum. */ /* Skip first 3 bytes - their meaning is unknown to us but could be a checksum. */
first_byte = fgetc(dev->f); first_byte = fgetc(dev->f);
fread(&track_bytes, 1, 2, dev->f); (void) !fread(&track_bytes, 1, 2, dev->f);
img_log("Block header: %02X %04X ", first_byte, track_bytes); img_log("Block header: %02X %04X ", first_byte, track_bytes);
/* Read the length of encoded data block. */ /* Read the length of encoded data block. */
fread(&track_bytes, 1, 2, dev->f); (void) !fread(&track_bytes, 1, 2, dev->f);
img_log("%04X\n", track_bytes); img_log("%04X\n", track_bytes);
} }
@@ -824,7 +824,7 @@ img_load(int drive, char *fn)
/* Literal. */ /* Literal. */
track_bytes -= real_run; track_bytes -= real_run;
literal = (uint8_t *) malloc(real_run); literal = (uint8_t *) malloc(real_run);
fread(literal, 1, real_run, dev->f); (void) !fread(literal, 1, real_run, dev->f);
if (! track_bytes) if (! track_bytes)
real_run -= fdf_suppress_final_byte; real_run -= fdf_suppress_final_byte;
if (run & 0x7f) if (run & 0x7f)
@@ -835,7 +835,7 @@ img_load(int drive, char *fn)
} else { } else {
/* Literal block. */ /* Literal block. */
literal = (uint8_t *) malloc(track_bytes); literal = (uint8_t *) malloc(track_bytes);
fread(literal, 1, track_bytes, dev->f); (void) !fread(literal, 1, track_bytes, dev->f);
memcpy(bpos, literal, track_bytes - fdf_suppress_final_byte); memcpy(bpos, literal, track_bytes - fdf_suppress_final_byte);
free(literal); free(literal);
bpos += (track_bytes - fdf_suppress_final_byte); bpos += (track_bytes - fdf_suppress_final_byte);
@@ -865,10 +865,10 @@ img_load(int drive, char *fn)
dev->f = plat_fopen(fn, "rb"); dev->f = plat_fopen(fn, "rb");
fseek(dev->f, 0x03, SEEK_SET); fseek(dev->f, 0x03, SEEK_SET);
fread(&bpb_bps, 1, 2, dev->f); (void) !fread(&bpb_bps, 1, 2, dev->f);
#if 0 #if 0
fseek(dev->f, 0x0B, SEEK_SET); fseek(dev->f, 0x0B, SEEK_SET);
fread(&bpb_total, 1, 2, dev->f); (void) !fread(&bpb_total, 1, 2, dev->f);
#endif #endif
fseek(dev->f, 0x10, SEEK_SET); fseek(dev->f, 0x10, SEEK_SET);
bpb_sectors = fgetc(dev->f); bpb_sectors = fgetc(dev->f);
@@ -888,7 +888,7 @@ img_load(int drive, char *fn)
memset(dev->disk_data, 0xf6, ((uint32_t) bpb_total) * ((uint32_t) bpb_bps)); memset(dev->disk_data, 0xf6, ((uint32_t) bpb_total) * ((uint32_t) bpb_bps));
fseek(dev->f, 0x6F, SEEK_SET); fseek(dev->f, 0x6F, SEEK_SET);
fread(&comment_len, 1, 2, dev->f); (void) !fread(&comment_len, 1, 2, dev->f);
fseek(dev->f, -1, SEEK_END); fseek(dev->f, -1, SEEK_END);
size = ftell(dev->f) + 1; size = ftell(dev->f) + 1;
@@ -898,7 +898,7 @@ img_load(int drive, char *fn)
cur_pos = 0; cur_pos = 0;
while(! feof(dev->f)) { while(! feof(dev->f)) {
fread(&block_len, 1, 2, dev->f); (void) !fread(&block_len, 1, 2, dev->f);
if (! feof(dev->f)) { if (! feof(dev->f)) {
if (block_len < 0) { if (block_len < 0) {
@@ -915,10 +915,10 @@ img_load(int drive, char *fn)
} else if (block_len > 0) { } else if (block_len > 0) {
if ((cur_pos + block_len) > ((uint32_t) bpb_total) * ((uint32_t) bpb_bps)) { if ((cur_pos + block_len) > ((uint32_t) bpb_total) * ((uint32_t) bpb_bps)) {
block_len = ((uint32_t) bpb_total) * ((uint32_t) bpb_bps) - cur_pos; block_len = ((uint32_t) bpb_total) * ((uint32_t) bpb_bps) - cur_pos;
fread(dev->disk_data + cur_pos, 1, block_len, dev->f); (void) !fread(dev->disk_data + cur_pos, 1, block_len, dev->f);
break; break;
} else { } else {
fread(dev->disk_data + cur_pos, 1, block_len, dev->f); (void) !fread(dev->disk_data + cur_pos, 1, block_len, dev->f);
cur_pos += block_len; cur_pos += block_len;
} }
} }
@@ -939,9 +939,9 @@ img_load(int drive, char *fn)
} else } else
img_log("img_load(): File is a raw image...\n"); img_log("img_load(): File is a raw image...\n");
fseek(dev->f, dev->base + 0x0B, SEEK_SET); fseek(dev->f, dev->base + 0x0B, SEEK_SET);
fread(&bpb_bps, 1, 2, dev->f); (void) !fread(&bpb_bps, 1, 2, dev->f);
fseek(dev->f, dev->base + 0x13, SEEK_SET); fseek(dev->f, dev->base + 0x13, SEEK_SET);
fread(&bpb_total, 1, 2, dev->f); (void) !fread(&bpb_total, 1, 2, dev->f);
fseek(dev->f, dev->base + 0x15, SEEK_SET); fseek(dev->f, dev->base + 0x15, SEEK_SET);
bpb_mid = fgetc(dev->f); bpb_mid = fgetc(dev->f);
fseek(dev->f, dev->base + 0x18, SEEK_SET); fseek(dev->f, dev->base + 0x18, SEEK_SET);
@@ -1112,7 +1112,7 @@ jump_if_fdf:
/* The image is a Japanese FDI, therefore we read the number of tracks from the header. */ /* The image is a Japanese FDI, therefore we read the number of tracks from the header. */
if (fseek(dev->f, 0x1C, SEEK_SET) == -1) if (fseek(dev->f, 0x1C, SEEK_SET) == -1)
fatal("Japanese FDI: Failed when seeking to 0x1C\n"); fatal("Japanese FDI: Failed when seeking to 0x1C\n");
fread(&(dev->tracks), 1, 4, dev->f); (void) !fread(&(dev->tracks), 1, 4, dev->f);
} else { } else {
if (!cqm && !fdf) { if (!cqm && !fdf) {
/* Number of tracks = number of total sectors divided by sides times sectors per track. */ /* Number of tracks = number of total sectors divided by sides times sectors per track. */

View File

@@ -645,7 +645,7 @@ td0_initialize(int drive)
} }
fseek(dev->f, 0, SEEK_SET); fseek(dev->f, 0, SEEK_SET);
fread(header, 1, 12, dev->f); (void) !fread(header, 1, 12, dev->f);
head_count = header[9]; head_count = header[9];
if (header[0] == 't') { if (header[0] == 't') {

View File

@@ -20,11 +20,18 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <unistd.h>
#ifdef _WIN32 #ifdef _WIN32
# ifndef __clang__
# include <unistd.h>
# else
# include <io.h>
# define ssize_t long
# define strtok_r(a, b, c) strtok_s(a, b, c)
# endif
# include <winsock2.h> # include <winsock2.h>
# include <ws2tcpip.h> # include <ws2tcpip.h>
#else #else
# include <unistd.h>
# include <arpa/inet.h> # include <arpa/inet.h>
# include <sys/socket.h> # include <sys/socket.h>
# include <errno.h> # include <errno.h>
@@ -706,6 +713,8 @@ gdbstub_client_read_reg(int index, uint8_t *buf)
static void static void
gdbstub_client_packet(gdbstub_client_t *client) gdbstub_client_packet(gdbstub_client_t *client)
{ {
gdbstub_breakpoint_t *breakpoint, *prev_breakpoint = NULL, **first_breakpoint = NULL;
#ifdef GDBSTUB_CHECK_CHECKSUM /* msys2 gdb 11.1 transmits qSupported and H with invalid checksum... */ #ifdef GDBSTUB_CHECK_CHECKSUM /* msys2 gdb 11.1 transmits qSupported and H with invalid checksum... */
uint8_t rcv_checksum = 0, checksum = 0; uint8_t rcv_checksum = 0, checksum = 0;
#endif #endif
@@ -1202,7 +1211,6 @@ unknown:
case 'z': /* remove break/watchpoint */ case 'z': /* remove break/watchpoint */
case 'Z': /* insert break/watchpoint */ case 'Z': /* insert break/watchpoint */
gdbstub_breakpoint_t *breakpoint, *prev_breakpoint = NULL, **first_breakpoint;
/* Parse breakpoint type. */ /* Parse breakpoint type. */
switch (client->packet[1]) { switch (client->packet[1]) {

View File

@@ -361,9 +361,9 @@
#define IDM_ACTION_END_TRACE 40019 #define IDM_ACTION_END_TRACE 40019
#define IDM_ACTION_TRACE 40020 #define IDM_ACTION_TRACE 40020
#endif #endif
#define IDM_CONFIG 40020 #define IDM_CONFIG 40021
#define IDM_VID_HIDE_STATUS_BAR 40021 #define IDM_VID_HIDE_STATUS_BAR 40022
#define IDM_VID_HIDE_TOOLBAR 40022 #define IDM_VID_HIDE_TOOLBAR 40023
#define IDM_UPDATE_ICONS 40030 #define IDM_UPDATE_ICONS 40030
#define IDM_SND_GAIN 40031 #define IDM_SND_GAIN 40031
#define IDM_VID_RESIZE 40040 #define IDM_VID_RESIZE 40040

View File

@@ -1041,7 +1041,7 @@ t1000_emsboard_load(void)
if (mem_size > 512) { if (mem_size > 512) {
f = plat_fopen(nvr_path("t1000_ems.nvr"), "rb"); f = plat_fopen(nvr_path("t1000_ems.nvr"), "rb");
if (f != NULL) { if (f != NULL) {
fread(&ram[512 * 1024], 1024, (mem_size - 512), f); (void) !fread(&ram[512 * 1024], 1024, (mem_size - 512), f);
fclose(f); fclose(f);
} }
} }

View File

@@ -217,7 +217,7 @@ catalyst_flash_init(const device_t *info)
f = nvr_fopen(flash_path, "rb"); f = nvr_fopen(flash_path, "rb");
if (f) { if (f) {
fread(dev->array, 0x20000, 1, f); (void) !fread(dev->array, 0x20000, 1, f);
fclose(f); fclose(f);
} }

View File

@@ -518,16 +518,16 @@ intel_flash_init(const device_t *info)
f = nvr_fopen(flash_path, "rb"); f = nvr_fopen(flash_path, "rb");
if (f) { if (f) {
fread(&(dev->array[dev->block_start[BLOCK_MAIN1]]), dev->block_len[BLOCK_MAIN1], 1, f); (void) !fread(&(dev->array[dev->block_start[BLOCK_MAIN1]]), dev->block_len[BLOCK_MAIN1], 1, f);
if (dev->block_len[BLOCK_MAIN2]) if (dev->block_len[BLOCK_MAIN2])
fread(&(dev->array[dev->block_start[BLOCK_MAIN2]]), dev->block_len[BLOCK_MAIN2], 1, f); (void) !fread(&(dev->array[dev->block_start[BLOCK_MAIN2]]), dev->block_len[BLOCK_MAIN2], 1, f);
if (dev->block_len[BLOCK_MAIN3]) if (dev->block_len[BLOCK_MAIN3])
fread(&(dev->array[dev->block_start[BLOCK_MAIN3]]), dev->block_len[BLOCK_MAIN3], 1, f); (void) !fread(&(dev->array[dev->block_start[BLOCK_MAIN3]]), dev->block_len[BLOCK_MAIN3], 1, f);
if (dev->block_len[BLOCK_MAIN4]) if (dev->block_len[BLOCK_MAIN4])
fread(&(dev->array[dev->block_start[BLOCK_MAIN4]]), dev->block_len[BLOCK_MAIN4], 1, f); (void) !fread(&(dev->array[dev->block_start[BLOCK_MAIN4]]), dev->block_len[BLOCK_MAIN4], 1, f);
fread(&(dev->array[dev->block_start[BLOCK_DATA1]]), dev->block_len[BLOCK_DATA1], 1, f); (void) !fread(&(dev->array[dev->block_start[BLOCK_DATA1]]), dev->block_len[BLOCK_DATA1], 1, f);
fread(&(dev->array[dev->block_start[BLOCK_DATA2]]), dev->block_len[BLOCK_DATA2], 1, f); (void) !fread(&(dev->array[dev->block_start[BLOCK_DATA2]]), dev->block_len[BLOCK_DATA2], 1, f);
fclose(f); fclose(f);
} }

View File

@@ -30,9 +30,9 @@
#include <pthread.h> #include <pthread.h>
#include <sys/time.h> #include <sys/time.h>
#include <unistd.h> #include <unistd.h>
#include <stdatomic.h>
#endif #endif
#include <stdatomic.h>
#include <minitrace/minitrace.h> #include <minitrace/minitrace.h>
#ifdef __GNUC__ #ifdef __GNUC__
@@ -293,8 +293,13 @@ void mtr_start() {
#ifndef MTR_ENABLED #ifndef MTR_ENABLED
return; return;
#endif #endif
#ifdef _WIN32
pthread_cond_init(&buffer_not_full_cond);
pthread_cond_init(&buffer_full_cond);
#else
pthread_cond_init(&buffer_not_full_cond, NULL); pthread_cond_init(&buffer_not_full_cond, NULL);
pthread_cond_init(&buffer_full_cond, NULL); pthread_cond_init(&buffer_full_cond, NULL);
#endif
atomic_store(&is_tracing, TRUE); atomic_store(&is_tracing, TRUE);
init_flushing_thread(); init_flushing_thread();
} }

View File

@@ -23,7 +23,7 @@ net_event_init(net_evt_t *event)
#ifdef _WIN32 #ifdef _WIN32
event->handle = CreateEvent(NULL, FALSE, FALSE, NULL); event->handle = CreateEvent(NULL, FALSE, FALSE, NULL);
#else #else
(void)pipe(event->fds); (void) !pipe(event->fds);
setup_fd(event->fds[0]); setup_fd(event->fds[0]);
setup_fd(event->fds[1]); setup_fd(event->fds[1]);
#endif #endif
@@ -35,7 +35,7 @@ net_event_set(net_evt_t *event)
#ifdef _WIN32 #ifdef _WIN32
SetEvent(event->handle); SetEvent(event->handle);
#else #else
(void)write(event->fds[1], "a", 1); (void) !write(event->fds[1], "a", 1);
#endif #endif
} }
@@ -46,7 +46,7 @@ net_event_clear(net_evt_t *event)
/* Do nothing on WIN32 since we use an auto-reset event */ /* Do nothing on WIN32 since we use an auto-reset event */
#else #else
char dummy[1]; char dummy[1];
(void)read(event->fds[0], &dummy, sizeof(dummy)); (void) !read(event->fds[0], &dummy, sizeof(dummy));
#endif #endif
} }

View File

@@ -182,7 +182,12 @@ if(WIN32)
enable_language(RC) enable_language(RC)
target_sources(86Box PUBLIC ../win/86Box-qt.rc) target_sources(86Box PUBLIC ../win/86Box-qt.rc)
target_sources(plat PRIVATE win_dynld.c) target_sources(plat PRIVATE win_dynld.c)
target_sources(plat PRIVATE win_joystick_rawinput.c) if(DINPUT)
target_sources(plat PRIVATE win_joystick.cpp)
target_link_libraries(86Box dinput8)
else()
target_sources(plat PRIVATE win_joystick_rawinput.c)
endif()
target_sources(ui PRIVATE qt_d3d9renderer.hpp qt_d3d9renderer.cpp) target_sources(ui PRIVATE qt_d3d9renderer.hpp qt_d3d9renderer.cpp)
target_link_libraries(86Box hid d3d9) target_link_libraries(86Box hid d3d9)

View File

@@ -758,11 +758,11 @@ aha_setbios(x54x_t *dev)
/* Load first chunk of BIOS (which is the main BIOS, aka ROM1.) */ /* Load first chunk of BIOS (which is the main BIOS, aka ROM1.) */
dev->rom1 = malloc(ROM_SIZE); dev->rom1 = malloc(ROM_SIZE);
(void)fread(dev->rom1, ROM_SIZE, 1, f); (void) !fread(dev->rom1, ROM_SIZE, 1, f);
temp -= ROM_SIZE; temp -= ROM_SIZE;
if (temp > 0) { if (temp > 0) {
dev->rom2 = malloc(ROM_SIZE); dev->rom2 = malloc(ROM_SIZE);
(void)fread(dev->rom2, ROM_SIZE, 1, f); (void) !fread(dev->rom2, ROM_SIZE, 1, f);
temp -= ROM_SIZE; temp -= ROM_SIZE;
} else { } else {
dev->rom2 = NULL; dev->rom2 = NULL;
@@ -875,10 +875,10 @@ aha_setmcode(x54x_t *dev)
} }
aha1542cp_pnp_rom = (uint8_t *) malloc(dev->pnp_len + 7); aha1542cp_pnp_rom = (uint8_t *) malloc(dev->pnp_len + 7);
fseek(f, dev->pnp_offset, SEEK_SET); fseek(f, dev->pnp_offset, SEEK_SET);
(void)fread(aha1542cp_pnp_rom, dev->pnp_len, 1, f); (void) !fread(aha1542cp_pnp_rom, dev->pnp_len, 1, f);
memset(&(aha1542cp_pnp_rom[4]), 0x00, 5); memset(&(aha1542cp_pnp_rom[4]), 0x00, 5);
fseek(f, dev->pnp_offset + 4, SEEK_SET); fseek(f, dev->pnp_offset + 4, SEEK_SET);
(void)fread(&(aha1542cp_pnp_rom[9]), dev->pnp_len - 4, 1, f); (void) !fread(&(aha1542cp_pnp_rom[9]), dev->pnp_len - 4, 1, f);
/* Even the real AHA-1542CP microcode seem to be flipping bit /* Even the real AHA-1542CP microcode seem to be flipping bit
4 to not erroneously indicate there is a range length. */ 4 to not erroneously indicate there is a range length. */
aha1542cp_pnp_rom[0x87] |= 0x04; aha1542cp_pnp_rom[0x87] |= 0x04;
@@ -889,7 +889,7 @@ aha_setmcode(x54x_t *dev)
/* Load the SCSISelect decompression code. */ /* Load the SCSISelect decompression code. */
fseek(f, dev->cmd_33_offset, SEEK_SET); fseek(f, dev->cmd_33_offset, SEEK_SET);
(void)fread(dev->cmd_33_buf, dev->cmd_33_len, 1, f); (void) !fread(dev->cmd_33_buf, dev->cmd_33_len, 1, f);
(void)fclose(f); (void)fclose(f);
} }

View File

@@ -1747,7 +1747,7 @@ buslogic_init(const device_t *info)
if (has_autoscsi_rom) { if (has_autoscsi_rom) {
f = rom_fopen(autoscsi_rom_name, "rb"); f = rom_fopen(autoscsi_rom_name, "rb");
if (f) { if (f) {
fread(bl->AutoSCSIROM, 1, autoscsi_rom_size, f); (void) !fread(bl->AutoSCSIROM, 1, autoscsi_rom_size, f);
fclose(f); fclose(f);
f = NULL; f = NULL;
} }
@@ -1756,7 +1756,7 @@ buslogic_init(const device_t *info)
if (has_scam_rom) { if (has_scam_rom) {
f = rom_fopen(scam_rom_name, "rb"); f = rom_fopen(scam_rom_name, "rb");
if (f) { if (f) {
fread(bl->SCAMData, 1, scam_rom_size, f); (void) !fread(bl->SCAMData, 1, scam_rom_size, f);
fclose(f); fclose(f);
f = NULL; f = NULL;
} }

View File

@@ -1464,7 +1464,7 @@ ncr53c8xx_eeprom(ncr53c8xx_t *dev, uint8_t save)
if (save) if (save)
fwrite(&dev->nvram, sizeof(dev->nvram), 1, f); fwrite(&dev->nvram, sizeof(dev->nvram), 1, f);
else else
fread(&dev->nvram, sizeof(dev->nvram), 1, f); (void) !fread(&dev->nvram, sizeof(dev->nvram), 1, f);
fclose(f); fclose(f);
} }
} }

View File

@@ -156,7 +156,7 @@ cs423x_nvram(cs423x_t *dev, uint8_t save)
if (save) if (save)
fwrite(dev->eeprom_data, sizeof(dev->eeprom_data), 1, f); fwrite(dev->eeprom_data, sizeof(dev->eeprom_data), 1, f);
else else
fread(dev->eeprom_data, sizeof(dev->eeprom_data), 1, f); (void) !fread(dev->eeprom_data, sizeof(dev->eeprom_data), 1, f);
fclose(f); fclose(f);
} }
} }

View File

@@ -2707,7 +2707,7 @@ static void
rom = malloc(xga->bios_rom.sz); rom = malloc(xga->bios_rom.sz);
memset(rom, 0xff, xga->bios_rom.sz); memset(rom, 0xff, xga->bios_rom.sz);
(void)fread(rom, xga->bios_rom.sz, 1, f); (void) !fread(rom, xga->bios_rom.sz, 1, f);
temp -= xga->bios_rom.sz; temp -= xga->bios_rom.sz;
(void)fclose(f); (void)fclose(f);

View File

@@ -1021,9 +1021,9 @@ loadfont_common(FILE *f, int format)
for (d = 0; d < 4; d++) { for (d = 0; d < 4; d++) {
/* There are 4 fonts in the ROM */ /* There are 4 fonts in the ROM */
for (c = 0; c < 256; c++) /* 8x14 MDA in 8x16 cell */ for (c = 0; c < 256; c++) /* 8x14 MDA in 8x16 cell */
fread(&fontdatm[256*d + c][0], 1, 16, f); (void) !fread(&fontdatm[256*d + c][0], 1, 16, f);
for (c = 0; c < 256; c++) { /* 8x8 CGA in 8x16 cell */ for (c = 0; c < 256; c++) { /* 8x8 CGA in 8x16 cell */
fread(&fontdat[256*d + c][0], 1, 8, f); (void) !fread(&fontdat[256*d + c][0], 1, 8, f);
fseek(f, 8, SEEK_CUR); fseek(f, 8, SEEK_CUR);
} }
} }
@@ -1053,28 +1053,28 @@ loadfont_common(FILE *f, int format)
{ {
for (c = d; c < d+256; c++) for (c = d; c < d+256; c++)
{ {
fread(&fontdatm[c][8], 1, 8, f); (void) !fread(&fontdatm[c][8], 1, 8, f);
} }
for (c = d+256; c < d+512; c++) for (c = d+256; c < d+512; c++)
{ {
fread(&fontdatm[c][8], 1, 8, f); (void) !fread(&fontdatm[c][8], 1, 8, f);
} }
for (c = d; c < d+256; c++) for (c = d; c < d+256; c++)
{ {
fread(&fontdatm[c][0], 1, 8, f); (void) !fread(&fontdatm[c][0], 1, 8, f);
} }
for (c = d+256; c < d+512; c++) for (c = d+256; c < d+512; c++)
{ {
fread(&fontdatm[c][0], 1, 8, f); (void) !fread(&fontdatm[c][0], 1, 8, f);
} }
fseek(f, 4096, SEEK_CUR); /* Skip blank section */ fseek(f, 4096, SEEK_CUR); /* Skip blank section */
for (c = d; c < d+256; c++) for (c = d; c < d+256; c++)
{ {
fread(&fontdat[c][0], 1, 8, f); (void) !fread(&fontdat[c][0], 1, 8, f);
} }
for (c = d+256; c < d+512; c++) for (c = d+256; c < d+512; c++)
{ {
fread(&fontdat[c][0], 1, 8, f); (void) !fread(&fontdat[c][0], 1, 8, f);
} }
} }
break; break;
@@ -1096,7 +1096,7 @@ loadfont_common(FILE *f, int format)
case 7: /* Sigma Color 400 */ case 7: /* Sigma Color 400 */
/* The first 4k of the character ROM holds an 8x8 font */ /* The first 4k of the character ROM holds an 8x8 font */
for (c = 0; c < 256; c++) { for (c = 0; c < 256; c++) {
fread(&fontdat[c][0], 1, 8, f); (void) !fread(&fontdat[c][0], 1, 8, f);
fseek(f, 8, SEEK_CUR); fseek(f, 8, SEEK_CUR);
} }
/* The second 4k holds an 8x16 font */ /* The second 4k holds an 8x16 font */
@@ -1114,7 +1114,7 @@ loadfont_common(FILE *f, int format)
case 9: /* Image Manager 1024 native font */ case 9: /* Image Manager 1024 native font */
for (c = 0; c < 256; c++) for (c = 0; c < 256; c++)
fread(&fontdat12x18[c][0], 1, 36, f); (void) !fread(&fontdat12x18[c][0], 1, 36, f);
break; break;
} }