diff --git a/src/86box.c b/src/86box.c index f46d3c64a..e2541f55d 100644 --- a/src/86box.c +++ b/src/86box.c @@ -439,7 +439,7 @@ pc_init(int argc, char *argv[]) } if (!strncmp(exe_path, "/private/var/folders/", 21)) { ui_msgbox_header(MBX_FATAL, L"App Translocation", EMU_NAME_W L" cannot determine the emulated machine's location due to a macOS security feature. Please move the " EMU_NAME_W L" app to another folder (not /Applications), or make a copy of it and open that copy instead."); - return (0); + return 0; } #elif !defined(_WIN32) /* Grab the actual path if we are an AppImage. */ @@ -874,7 +874,6 @@ pc_init_modules(void) if (machine == -1) { fatal("No available machines\n"); exit(-1); - return 0; } } @@ -897,7 +896,6 @@ pc_init_modules(void) if (gfxcard[0] == -1) { fatal("No available video cards\n"); exit(-1); - return 0; } } diff --git a/src/cdrom/cdrom.c b/src/cdrom/cdrom.c index 31c5d2165..37128fbcc 100644 --- a/src/cdrom/cdrom.c +++ b/src/cdrom/cdrom.c @@ -183,12 +183,12 @@ cdrom_interface_has_config(int cdinterface) const device_t *dev = cdrom_interface_get_device(cdinterface); if (dev == NULL) - return (0); + return 0; if (!device_has_config(dev)) - return (0); + return 0; - return (1); + return 1; } int @@ -257,7 +257,9 @@ int cdrom_lba_to_msf_accurate(int lba) { int pos; - int m, s, f; + int m; + int s; + int f; pos = lba + 150; f = pos % 75; @@ -401,7 +403,9 @@ cdrom_stop(cdrom_t *dev) void cdrom_seek(cdrom_t *dev, uint32_t pos, uint8_t vendor_type) { - int m, s, f; + int m; + int s; + int f; if (!dev) return; @@ -498,7 +502,9 @@ uint8_t cdrom_audio_play(cdrom_t *dev, uint32_t pos, uint32_t len, int ismsf) { track_info_t ti; - int m = 0, s = 0, f = 0; + int m = 0; + int s = 0; + int f = 0; if (dev->cd_status == CD_STATUS_DATA_ONLY) return 0; @@ -570,7 +576,9 @@ cdrom_audio_play(cdrom_t *dev, uint32_t pos, uint32_t len, int ismsf) uint8_t cdrom_audio_track_search(cdrom_t *dev, uint32_t pos, int type, uint8_t playbit) { - int m = 0, s = 0, f = 0; + int m = 0; + int s = 0; + int f = 0; if (dev->cd_status == CD_STATUS_DATA_ONLY) return 0; @@ -615,7 +623,9 @@ cdrom_audio_track_search(cdrom_t *dev, uint32_t pos, int type, uint8_t playbit) uint8_t cdrom_audio_play_toshiba(cdrom_t *dev, uint32_t pos, int type) { - int m = 0, s = 0, f = 0; + int m = 0; + int s = 0; + int f = 0; if (dev->cd_status == CD_STATUS_DATA_ONLY) return 0; @@ -657,7 +667,9 @@ cdrom_audio_play_toshiba(cdrom_t *dev, uint32_t pos, int type) uint8_t cdrom_audio_scan(cdrom_t *dev, uint32_t pos, int type) { - int m = 0, s = 0, f = 0; + int m = 0; + int s = 0; + int f = 0; if (dev->cd_status == CD_STATUS_DATA_ONLY) return 0; @@ -712,7 +724,10 @@ cdrom_get_current_subchannel(cdrom_t *dev, uint8_t *b, int msf) { uint8_t ret; subchannel_t subc; - int pos = 1, m, s, f; + int pos = 1; + int m; + int s; + int f; uint32_t dat; dev->ops->get_subchannel(dev, dev->seek_pos, &subc); @@ -895,9 +910,13 @@ static int read_toc_normal(cdrom_t *dev, unsigned char *b, unsigned char start_track, int msf) { track_info_t ti; - int i, len = 4; - int m, s, f; - int first_track, last_track; + int i; + int len = 4; + int m; + int s; + int f; + int first_track; + int last_track; uint32_t temp; cdrom_log("read_toc_normal(%08X, %08X, %02X, %i)\n", dev, b, start_track, msf); @@ -978,7 +997,10 @@ static int read_toc_session(cdrom_t *dev, unsigned char *b, int msf) { track_info_t ti; - int len = 4, m, s, f; + int len = 4; + int m; + int s; + int f; uint32_t temp; cdrom_log("read_toc_session(%08X, %08X, %i)\n", dev, b, msf); @@ -1027,8 +1049,9 @@ static int read_toc_raw(cdrom_t *dev, unsigned char *b) { track_info_t ti; - int i, len = 4; - int first_track, last_track; + int len = 4; + int first_track; + int last_track; cdrom_log("read_toc_raw(%08X, %08X)\n", dev, b); @@ -1037,7 +1060,7 @@ read_toc_raw(cdrom_t *dev, unsigned char *b) /* Bytes 2 and 3 = Number of first and last sessions */ b[2] = b[3] = 1; - for (i = 0; i <= last_track; i++) { + for (int i = 0; i <= last_track; i++) { dev->ops->get_track_info(dev, i + 1, 0, &ti); cdrom_log(" tracks(%i) = %02X, %02X, %i:%02i.%02i\n", i, ti.attr, ti.number, ti.m, ti.s, ti.f); @@ -1061,8 +1084,10 @@ static int read_toc_sony(cdrom_t *dev, unsigned char *b, unsigned char start_track, int msf) { track_info_t ti; - int i, len = 4; - int first_track, last_track; + int i; + int len = 4; + int first_track; + int last_track; uint32_t temp; cdrom_log("read_toc_sony(%08X, %08X, %02X, %i)\n", dev, b, start_track, msf); @@ -1173,7 +1198,8 @@ void cdrom_get_track_buffer(cdrom_t *dev, uint8_t *buf) { track_info_t ti; - int first_track, last_track; + int first_track; + int last_track; if (dev != NULL) { dev->ops->get_tracks(dev, &first_track, &last_track); @@ -1196,7 +1222,8 @@ void cdrom_get_q(cdrom_t *dev, uint8_t *buf, int *curtoctrk, uint8_t mode) { track_info_t ti; - int first_track, last_track; + int first_track; + int last_track; if (dev != NULL) { dev->ops->get_tracks(dev, &first_track, &last_track); @@ -1254,8 +1281,11 @@ uint8_t cdrom_read_disc_info_toc(cdrom_t *dev, unsigned char *b, unsigned char track, int type) { track_info_t ti; - int first_track, last_track; - int m = 0, s = 0, f = 0; + int first_track; + int last_track; + int m = 0; + int s = 0; + int f = 0; dev->ops->get_tracks(dev, &first_track, &last_track); @@ -1583,10 +1613,15 @@ int cdrom_readsector_raw(cdrom_t *dev, uint8_t *buffer, int sector, int ismsf, int cdrom_sector_type, int cdrom_sector_flags, int *len, uint8_t vendor_type) { - uint8_t *b, *temp_b; - uint32_t msf, lba; - int audio = 0, mode2 = 0; - int m, s, f; + uint8_t *b; + uint8_t *temp_b; + uint32_t msf; + uint32_t lba; + int audio = 0; + int mode2 = 0; + int m; + int s; + int f; if (dev->cd_status == CD_STATUS_EMPTY) return 0; @@ -1763,9 +1798,8 @@ void cdrom_hard_reset(void) { cdrom_t *dev; - int i; - for (i = 0; i < CDROM_NUM; i++) { + for (uint8_t i = 0; i < CDROM_NUM; i++) { dev = &cdrom[i]; if (dev->bus_type) { cdrom_log("CD-ROM %i: Hard reset\n", i); @@ -1798,9 +1832,8 @@ void cdrom_close(void) { cdrom_t *dev; - int i; - for (i = 0; i < CDROM_NUM; i++) { + for (uint8_t i = 0; i < CDROM_NUM; i++) { dev = &cdrom[i]; if (dev->bus_type == CDROM_BUS_SCSI) diff --git a/src/cdrom/cdrom_image.c b/src/cdrom/cdrom_image.c index 2742d0e80..0c7ee03a0 100644 --- a/src/cdrom/cdrom_image.c +++ b/src/cdrom/cdrom_image.c @@ -84,7 +84,8 @@ static void image_get_subchannel(cdrom_t *dev, uint32_t lba, subchannel_t *subc) { cd_img_t *img = (cd_img_t *) dev->image; - TMSF rel_pos, abs_pos; + TMSF rel_pos; + TMSF abs_pos; cdi_get_audio_sub(img, lba, &subc->attr, &subc->track, &subc->index, &rel_pos, &abs_pos); @@ -102,17 +103,19 @@ static int image_get_capacity(cdrom_t *dev) { cd_img_t *img = (cd_img_t *) dev->image; - int first_track, last_track; - int number, c; + int first_track; + int last_track; + int number; unsigned char attr; - uint32_t address = 0, lb = 0; + uint32_t address = 0; + uint32_t lb = 0; if (!img) return 0; cdi_get_audio_tracks_lba(img, &first_track, &last_track, &lb); - for (c = 0; c <= last_track; c++) { + for (int c = 0; c <= last_track; c++) { cdi_get_audio_track_info_lba(img, 0, c + 1, &number, &address, &attr); if (address > lb) lb = address; @@ -127,8 +130,11 @@ image_is_track_audio(cdrom_t *dev, uint32_t pos, int ismsf) cd_img_t *img = (cd_img_t *) dev->image; uint8_t attr; TMSF tmsf; - int m, s, f; - int number, track; + int m; + int s; + int f; + int number; + int track; if (!img || (dev->cd_status == CD_STATUS_DATA_ONLY)) return 0; diff --git a/src/cdrom/cdrom_image_backend.c b/src/cdrom/cdrom_image_backend.c index 47dabd37c..1d39e8c82 100644 --- a/src/cdrom/cdrom_image_backend.c +++ b/src/cdrom/cdrom_image_backend.c @@ -202,14 +202,13 @@ track_file_close(track_t *trk) static void cdi_clear_tracks(cd_img_t *cdi) { - int i; track_file_t *last = NULL; track_t *cur = NULL; if ((cdi->tracks == NULL) || (cdi->tracks_num == 0)) return; - for (i = 0; i < cdi->tracks_num; i++) { + for (int i = 0; i < cdi->tracks_num; i++) { cur = &cdi->tracks[i]; /* Make sure we do not attempt to close a NULL file. */ @@ -321,8 +320,8 @@ cdi_get_audio_track_info_lba(cd_img_t *cdi, int end, int track, int *track_num, int cdi_get_track(cd_img_t *cdi, uint32_t sector) { - int i; - track_t *cur, *next; + track_t *cur; + track_t *next; /* There must be at least two tracks - data and lead out. */ if (cdi->tracks_num < 2) @@ -330,7 +329,7 @@ cdi_get_track(cd_img_t *cdi, uint32_t sector) /* This has a problem - the code skips the last track, which is lead out - is that correct? */ - for (i = 0; i < (cdi->tracks_num - 1); i++) { + for (int i = 0; i < (cdi->tracks_num - 1); i++) { cur = &cdi->tracks[i]; next = &cdi->tracks[i + 1]; if ((cur->start <= sector) && (sector < next->start)) @@ -368,12 +367,17 @@ cdi_read_sector(cd_img_t *cdi, uint8_t *buffer, int raw, uint32_t sector) { size_t length; int track = cdi_get_track(cdi, sector) - 1; - uint64_t sect = (uint64_t) sector, seek; + uint64_t sect = (uint64_t) sector; + uint64_t seek; track_t *trk; - int track_is_raw, ret; - int raw_size, cooked_size; + int track_is_raw; + int ret; + int raw_size; + int cooked_size; uint64_t offset = 0ULL; - int m = 0, s = 0, f = 0; + int m = 0; + int s = 0; + int f = 0; if (track < 0) return 0; @@ -428,9 +432,10 @@ cdi_read_sector(cd_img_t *cdi, uint8_t *buffer, int raw, uint32_t sector) int cdi_read_sectors(cd_img_t *cdi, uint8_t *buffer, int raw, uint32_t sector, uint32_t num) { - int sector_size, success = 1; + int sector_size; + int success = 1; uint8_t *buf; - uint32_t buf_len, i; + uint32_t buf_len; /* TODO: This fails to account for Mode 2. Shouldn't we have a function to get sector size? */ @@ -438,7 +443,7 @@ cdi_read_sectors(cd_img_t *cdi, uint8_t *buffer, int raw, uint32_t sector, uint3 buf_len = num * sector_size; buf = (uint8_t *) malloc(buf_len * sizeof(uint8_t)); - for (i = 0; i < num; i++) { + for (uint32_t i = 0; i < num; i++) { success = cdi_read_sector(cdi, &buf[i * sector_size], raw, sector + i); if (!success) break; @@ -461,7 +466,8 @@ cdi_read_sector_sub(cd_img_t *cdi, uint8_t *buffer, uint32_t sector) { int track = cdi_get_track(cdi, sector) - 1; track_t *trk; - uint64_t s = (uint64_t) sector, seek; + uint64_t s = (uint64_t) sector; + uint64_t seek; if (track < 0) return 0; @@ -550,7 +556,8 @@ cdi_track_push_back(cd_img_t *cdi, track_t *trk) int cdi_load_iso(cd_img_t *cdi, const char *filename) { - int error, ret = 2; + int error; + int ret = 2; track_t trk; cdi->tracks = NULL; @@ -698,7 +705,9 @@ static int cdi_cue_get_frame(uint64_t *frames, char **line) { char temp[128]; - int min, sec, fr; + int min; + int sec; + int fr; int success; success = cdi_cue_get_buffer(temp, line, 0); @@ -717,7 +726,8 @@ cdi_cue_get_frame(uint64_t *frames, char **line) static int cdi_cue_get_flags(track_t *cur, char **line) { - char temp[128], temp2[128]; + char temp[128]; + char temp2[128]; int success; success = cdi_cue_get_buffer(temp, line, 0); @@ -738,7 +748,8 @@ static int cdi_add_track(cd_img_t *cdi, track_t *cur, uint64_t *shift, uint64_t prestart, uint64_t *total_pregap, uint64_t cur_pregap) { /* Frames between index 0 (prestart) and 1 (current track start) must be skipped. */ - uint64_t skip, temp; + uint64_t skip; + uint64_t temp; track_t *prev = NULL; /* Skip *MUST* be calculated even if prestart is 0. */ @@ -805,16 +816,23 @@ int cdi_load_cue(cd_img_t *cdi, const char *cuefile) { track_t trk; - char pathname[MAX_FILENAME_LENGTH], filename[MAX_FILENAME_LENGTH]; + char pathname[MAX_FILENAME_LENGTH]; + char filename[MAX_FILENAME_LENGTH]; char temp[MAX_FILENAME_LENGTH]; - uint64_t shift = 0ULL, prestart = 0ULL; - uint64_t cur_pregap = 0ULL, total_pregap = 0ULL; - uint64_t frame = 0ULL, index; - int i, success; - int error, can_add_track = 0; + uint64_t shift = 0ULL; + uint64_t prestart = 0ULL; + uint64_t cur_pregap = 0ULL; + uint64_t total_pregap = 0ULL; + uint64_t frame = 0ULL; + uint64_t index; + int success; + int error; + int can_add_track = 0; FILE *fp; - char buf[MAX_LINE_LENGTH], ansi[MAX_FILENAME_LENGTH]; - char *line, *command; + char buf[MAX_LINE_LENGTH]; + char ansi[MAX_FILENAME_LENGTH]; + char *line; + char *command; char *type; cdi->tracks = NULL; @@ -842,7 +860,7 @@ cdi_load_cue(cd_img_t *cdi, const char *cuefile) /* Do two iterations to make sure to nuke even if it's \r\n or \n\r, but do checks to make sure we're not nuking other bytes. */ - for (i = 0; i < 2; i++) { + for (uint8_t i = 0; i < 2; i++) { if (strlen(buf) > 0) { if (buf[strlen(buf) - 1] == '\n') buf[strlen(buf) - 1] = '\0'; @@ -1035,13 +1053,11 @@ cdi_load_cue(cd_img_t *cdi, const char *cuefile) int cdi_has_data_track(cd_img_t *cdi) { - int i; - if ((cdi == NULL) || (cdi->tracks == NULL)) return 0; /* Data track has attribute 0x14. */ - for (i = 0; i < cdi->tracks_num; i++) { + for (int i = 0; i < cdi->tracks_num; i++) { if (cdi->tracks[i].attr == DATA_TRACK) return 1; } @@ -1052,13 +1068,11 @@ cdi_has_data_track(cd_img_t *cdi) int cdi_has_audio_track(cd_img_t *cdi) { - int i; - if ((cdi == NULL) || (cdi->tracks == NULL)) return 0; /* Audio track has attribute 0x14. */ - for (i = 0; i < cdi->tracks_num; i++) { + for (int i = 0; i < cdi->tracks_num; i++) { if (cdi->tracks[i].attr == AUDIO_TRACK) return 1; } diff --git a/src/cdrom/cdrom_image_viso.c b/src/cdrom/cdrom_image_viso.c index d904b97a4..7d24a1c9e 100644 --- a/src/cdrom/cdrom_image_viso.c +++ b/src/cdrom/cdrom_image_viso.c @@ -301,7 +301,8 @@ viso_fill_fn_short(char *data, const viso_entry_t *entry, viso_entry_t **entries { /* Get name and extension length. */ const char *ext_pos = strrchr(entry->basename, '.'); - int name_len, ext_len; + int name_len; + int ext_len; if (ext_pos) { name_len = ext_pos - entry->basename; ext_len = strlen(ext_pos); @@ -472,7 +473,9 @@ viso_fill_time(uint8_t *data, time_t time, int format, int longform) static int viso_fill_dir_record(uint8_t *data, viso_entry_t *entry, viso_t *viso, int type) { - uint8_t *p = data, *q, *r; + uint8_t *p = data; + uint8_t *q; + uint8_t *r; *p++ = 0; /* size (filled in later) */ *p++ = 0; /* extended attribute length */ @@ -650,9 +653,9 @@ viso_read(void *p, uint8_t *buffer, uint64_t seek, size_t count) /* Handle reads in a sector by sector basis. */ while (count > 0) { /* Determine the current sector, offset and remainder. */ - uint32_t sector = seek / viso->sector_size, - sector_offset = seek % viso->sector_size, - sector_remain = MIN(count, viso->sector_size - sector_offset); + uint32_t sector = seek / viso->sector_size; + uint32_t sector_offset = seek % viso->sector_size; + uint32_t sector_remain = MIN(count, viso->sector_size - sector_offset); /* Handle sector. */ if (sector < viso->metadata_sectors) { @@ -736,7 +739,8 @@ viso_close(void *p) remove(nvr_path(viso->tf.fn)); #endif - viso_entry_t *entry = viso->root_dir, *next_entry; + viso_entry_t *entry = viso->root_dir; + viso_entry_t *next_entry; while (entry) { if (entry->file) fclose(entry->file); @@ -760,7 +764,8 @@ viso_init(const char *dirname, int *error) /* Initialize our data structure. */ viso_t *viso = (viso_t *) calloc(1, sizeof(viso_t)); - uint8_t *data = NULL, *p; + uint8_t *data = NULL; + uint8_t *p; *error = 1; if (viso == NULL) goto end; @@ -785,9 +790,15 @@ viso_init(const char *dirname, int *error) /* Set up directory traversal. */ cdrom_image_viso_log("VISO: Traversing directories:\n"); - viso_entry_t *entry, *last_entry, *dir, *last_dir, *eltorito_dir = NULL, *eltorito_entry = NULL; + viso_entry_t *entry; + viso_entry_t *last_entry; + viso_entry_t *dir; + viso_entry_t *last_dir; + viso_entry_t *eltorito_dir = NULL; + viso_entry_t *eltorito_entry = NULL; struct dirent *readdir_entry; - int len, eltorito_others_present = 0; + int len; + int eltorito_others_present = 0; size_t dir_path_len; uint64_t eltorito_offset = 0; uint8_t eltorito_type = 0; @@ -1445,8 +1456,8 @@ next_entry: /* Go through files, assigning sectors to them. */ cdrom_image_viso_log("VISO: Assigning sectors to files:\n"); size_t base_factor = viso->sector_size / orig_sector_size; - viso_entry_t *prev_entry = viso->root_dir, - **entry_map_p = viso->entry_map; + viso_entry_t *prev_entry = viso->root_dir; + viso_entry_t **entry_map_p = viso->entry_map; entry = prev_entry->next; while (entry) { /* Skip this entry if it corresponds to a directory. */ @@ -1512,7 +1523,8 @@ next_entry: if (!viso->metadata) goto end; fseeko64(viso->tf.file, 0, SEEK_SET); - uint64_t metadata_size = viso->metadata_sectors * viso->sector_size, metadata_remain = metadata_size; + uint64_t metadata_size = viso->metadata_sectors * viso->sector_size; + uint64_t metadata_remain = metadata_size; while (metadata_remain > 0) metadata_remain -= fread(viso->metadata + (metadata_size - metadata_remain), 1, MIN(metadata_remain, viso->sector_size), viso->tf.file); diff --git a/src/config.c b/src/config.c index f7f8d1949..4bcbaf7fa 100644 --- a/src/config.c +++ b/src/config.c @@ -1196,7 +1196,6 @@ load_hard_disks(void) ini_section_delete_var(cat, temp); memset(hdd[c].fn, 0x00, sizeof(hdd[c].fn)); - memset(hdd[c].prev_fn, 0x00, sizeof(hdd[c].prev_fn)); sprintf(temp, "hdd_%02i_fn", c + 1); p = ini_section_get_string(cat, temp, ""); @@ -1229,6 +1228,13 @@ load_hard_disks(void) } path_normalize(hdd[c].fn); + sprintf(temp, "hdd_%02i_vhd_blocksize", c + 1); + hdd[c].vhd_blocksize = ini_section_get_int(cat, temp, 0); + + sprintf(temp, "hdd_%02i_vhd_parent", c + 1); + p = ini_section_get_string(cat, temp, ""); + strncpy(hdd[c].vhd_parent, p, sizeof(hdd[c].vhd_parent) - 1); + /* If disk is empty or invalid, mark it for deletion. */ if (!hdd_is_valid(c)) { sprintf(temp, "hdd_%02i_parameters", c + 1); @@ -2806,6 +2812,19 @@ save_hard_disks(void) } else ini_section_delete_var(cat, temp); + sprintf(temp, "hdd_%02i_vhd_blocksize", c + 1); + if (hdd_is_valid(c) && (hdd[c].vhd_blocksize > 0)) + ini_section_set_int(cat, temp, hdd[c].vhd_blocksize); + else + ini_section_delete_var(cat, temp); + + sprintf(temp, "hdd_%02i_vhd_parent", c + 1); + if (hdd_is_valid(c) && hdd[c].vhd_parent[0]) { + path_normalize(hdd[c].vhd_parent); + ini_section_set_string(cat, temp, hdd[c].vhd_parent); + } else + ini_section_delete_var(cat, temp); + sprintf(temp, "hdd_%02i_speed", c + 1); if (!hdd_is_valid(c) || (hdd[c].bus != HDD_BUS_IDE && hdd[c].bus != HDD_BUS_ESDI)) ini_section_delete_var(cat, temp); diff --git a/src/crcspeed/crc64speed.c b/src/crcspeed/crc64speed.c index e4cccdc69..b32990b12 100644 --- a/src/crcspeed/crc64speed.c +++ b/src/crcspeed/crc64speed.c @@ -36,7 +36,8 @@ * each 8x256 lookup table is 16k. */ #ifndef CRC64SPEED_DUAL static uint64_t crc64_table[8][256] = {{0}}; -static void *crc64_table_little = NULL, *crc64_table_big = NULL; +static void *crc64_table_little = NULL; +static void *crc64_table_big = NULL; static const bool dual = false; #else static uint64_t crc64_table_little[8][256] = {{0}}; diff --git a/src/device/isartc.c b/src/device/isartc.c index 7c12ae032..d2127146d 100644 --- a/src/device/isartc.c +++ b/src/device/isartc.c @@ -401,6 +401,14 @@ mm67_read(uint16_t port, void *priv) picintc(1 << dev->irq); break; + case MM67_AL_MSEC: + ret = dev->nvr.regs[reg] & 0xf0; + break; + + case MM67_AL_DOW: + ret = dev->nvr.regs[reg] & 0x0f; + break; + default: ret = dev->nvr.regs[reg]; break; @@ -477,6 +485,14 @@ mm67_write(uint16_t port, uint8_t val, void *priv) isartc_log("RTC: write test=%02x\n", val); break; + case MM67_AL_MSEC: + dev->nvr.regs[reg] = val & 0xf0; + break; + + case MM67_AL_DOW: + dev->nvr.regs[reg] = val & 0x0f; + break; + default: dev->nvr.regs[reg] = val; break; diff --git a/src/disk/hdc.c b/src/disk/hdc.c index bae818b9a..f1ef1ecf6 100644 --- a/src/disk/hdc.c +++ b/src/disk/hdc.c @@ -174,12 +174,12 @@ hdc_has_config(int hdc) const device_t *dev = hdc_get_device(hdc); if (dev == NULL) - return (0); + return 0; if (!device_has_config(dev)) - return (0); + return 0; - return (1); + return 1; } int diff --git a/src/disk/hdc_esdi_at.c b/src/disk/hdc_esdi_at.c index 66c7a0231..7c0d08fca 100644 --- a/src/disk/hdc_esdi_at.c +++ b/src/disk/hdc_esdi_at.c @@ -172,16 +172,19 @@ get_sector(esdi_t *esdi, off64_t *addr) drive_t *drive = &esdi->drives[esdi->drive_sel]; int heads = drive->cfg_hpc; int sectors = drive->cfg_spt; - int c, h, s, sector; + int c; + int h; + int s; + int sector; if (esdi->head > heads) { esdi_at_log("esdi_get_sector: past end of configured heads\n"); - return (1); + return 1; } if (esdi->sector >= sectors + 1) { esdi_at_log("esdi_get_sector: past end of configured sectors\n"); - return (1); + return 1; } sector = esdi->sector ? esdi->sector : 1; @@ -203,7 +206,7 @@ get_sector(esdi_t *esdi, off64_t *addr) *addr = ((((off64_t) c * drive->real_hpc) + h) * drive->real_spt) + s; } - return (0); + return 0; } /* Move to the next sector using CHS addressing. */ @@ -253,7 +256,8 @@ static void esdi_write(uint16_t port, uint8_t val, void *priv) { esdi_t *esdi = (esdi_t *) priv; - double seek_time, xfer_time; + double seek_time; + double xfer_time; off64_t addr; esdi_at_log("WD1007 write(%04x, %02x)\n", port, val); @@ -452,7 +456,7 @@ esdi_readw(uint16_t port, void *priv) } } - return (temp); + return temp; } static uint8_t @@ -498,7 +502,7 @@ esdi_read(uint16_t port, void *priv) esdi_at_log("WD1007 read(%04x) = %02x\n", port, temp); - return (temp); + return temp; } static void @@ -820,13 +824,13 @@ esdi_rom_write(uint32_t addr, uint8_t val, void *p) static void * wd1007vse1_init(const device_t *info) { - int c, d; + int c; esdi_t *esdi = malloc(sizeof(esdi_t)); memset(esdi, 0x00, sizeof(esdi_t)); c = 0; - for (d = 0; d < HDD_NUM; d++) { + for (uint8_t d = 0; d < HDD_NUM; d++) { if ((hdd[d].bus == HDD_BUS_ESDI) && (hdd[d].esdi_channel < ESDI_NUM)) { loadhd(esdi, hdd[d].esdi_channel, d, hdd[d].fn); @@ -858,7 +862,7 @@ wd1007vse1_init(const device_t *info) ui_sb_update_icon(SB_HDD | HDD_BUS_ESDI, 0); - return (esdi); + return esdi; } static void @@ -866,9 +870,8 @@ wd1007vse1_close(void *priv) { esdi_t *esdi = (esdi_t *) priv; drive_t *drive; - int d; - for (d = 0; d < 2; d++) { + for (uint8_t d = 0; d < 2; d++) { drive = &esdi->drives[d]; hdd_image_close(drive->hdd_num); diff --git a/src/disk/hdc_esdi_mca.c b/src/disk/hdc_esdi_mca.c index 47fcdb1b7..f8686ba4e 100644 --- a/src/disk/hdc_esdi_mca.c +++ b/src/disk/hdc_esdi_mca.c @@ -868,7 +868,7 @@ esdi_read(uint16_t port, void *priv) break; } - return (ret); + return ret; } static void @@ -987,7 +987,7 @@ esdi_readw(uint16_t port, void *priv) switch (port & 7) { case 0: /*Status Interface Register*/ if (dev->status_pos >= dev->status_len) - return (0); + return 0; ret = dev->status_data[dev->status_pos++]; if (dev->status_pos >= dev->status_len) { dev->status &= ~STATUS_STATUS_OUT_FULL; @@ -999,7 +999,7 @@ esdi_readw(uint16_t port, void *priv) fatal("esdi_readw port=%04x\n", port); } - return (ret); + return ret; } static void @@ -1117,7 +1117,8 @@ esdi_init(const device_t *info) { drive_t *drive; esdi_t *dev; - int c, i; + uint8_t c; + uint8_t i; dev = malloc(sizeof(esdi_t)); if (dev == NULL) @@ -1178,7 +1179,7 @@ esdi_init(const device_t *info) /* Set the reply timer. */ timer_add(&dev->timer, esdi_callback, dev, 0); - return (dev); + return dev; } static void @@ -1186,11 +1187,10 @@ esdi_close(void *priv) { esdi_t *dev = (esdi_t *) priv; drive_t *drive; - int d; dev->drives[0].present = dev->drives[1].present = 0; - for (d = 0; d < 2; d++) { + for (uint8_t d = 0; d < 2; d++) { drive = &dev->drives[d]; hdd_image_close(drive->hdd_num); diff --git a/src/disk/hdc_ide.c b/src/disk/hdc_ide.c index cad5ce111..2bd1b8b8a 100644 --- a/src/disk/hdc_ide.c +++ b/src/disk/hdc_ide.c @@ -176,7 +176,8 @@ static uint8_t ide_qua_pnp_rom[] = { }; ide_t *ide_drives[IDE_NUM]; -int ide_ter_enabled = 0, ide_qua_enabled = 0; +int ide_ter_enabled = 0; +int ide_qua_enabled = 0; static void ide_atapi_callback(ide_t *ide); static void ide_callback(void *priv); @@ -389,9 +390,9 @@ ide_irq_update(ide_t *ide) void ide_padstr(char *str, const char *src, int len) { - int i, v; + int v; - for (i = 0; i < len; i++) { + for (int i = 0; i < len; i++) { if (*src != '\0') v = *src++; else @@ -412,9 +413,7 @@ ide_padstr(char *str, const char *src, int len) void ide_padstr8(uint8_t *buf, int buf_size, const char *src) { - int i; - - for (i = 0; i < buf_size; i++) { + for (int i = 0; i < buf_size; i++) { if (*src != '\0') buf[i] = *src++; else @@ -488,7 +487,9 @@ ide_hd_identify(ide_t *ide) { char device_identify[9] = { '8', '6', 'B', '_', 'H', 'D', '0', '0', 0 }; - uint32_t d_hpc, d_spt, d_tracks; + uint32_t d_hpc; + uint32_t d_spt; + uint32_t d_tracks; uint64_t full_size = (((uint64_t) hdd[ide->hdd_num].tracks) * hdd[ide->hdd_num].hpc * hdd[ide->hdd_num].spt); device_identify[6] = (ide->hdd_num / 10) + 0x30; @@ -577,7 +578,12 @@ ide_hd_identify(ide_t *ide) static void ide_identify(ide_t *ide) { - int d, i, max_pio, max_sdma, max_mdma, max_udma; + int d; + int i; + int max_pio; + int max_sdma; + int max_mdma; + int max_udma; ide_t *ide_other = ide_drives[ide->channel ^ 1]; ide_log("IDE IDENTIFY or IDENTIFY PACKET DEVICE on board %i (channel %i)\n", ide->board, ide->channel); @@ -674,7 +680,8 @@ ide_identify(ide_t *ide) static off64_t ide_get_sector(ide_t *ide) { - uint32_t heads, sectors; + uint32_t heads; + uint32_t sectors; if (ide->lba) return (off64_t) ide->lba_addr; @@ -749,8 +756,11 @@ ide_set_signature(ide_t *ide) static int ide_set_features(ide_t *ide) { - uint8_t features, features_data; - int mode, submode, max; + uint8_t features; + uint8_t features_data; + int mode; + int submode; + int max; features = ide->cylprecomp; features_data = ide->secount; @@ -836,7 +846,8 @@ ide_set_features(ide_t *ide) void ide_set_sector(ide_t *ide, int64_t sector_num) { - unsigned int cyl, r; + unsigned int cyl; + unsigned int r; if (ide->lba) { ide->head = (sector_num >> 24); ide->cylinder = (sector_num >> 8); @@ -942,7 +953,8 @@ ide_atapi_command_bus(ide_t *ide) static void ide_atapi_callback(ide_t *ide) { - int out, ret = 0; + int out; + int ret = 0; switch (ide->sc->packet_status) { case PHASE_IDLE: @@ -1326,7 +1338,8 @@ ide_write_devctl(uint16_t addr, uint8_t val, void *priv) { ide_board_t *dev = (ide_board_t *) priv; - ide_t *ide, *ide_other; + ide_t *ide; + ide_t *ide_other; int ch; uint8_t old; @@ -1428,7 +1441,8 @@ ide_writeb(uint16_t addr, uint8_t val, void *priv) { ide_board_t *dev = (ide_board_t *) priv; - ide_t *ide, *ide_other; + ide_t *ide; + ide_t *ide_other; int ch; ch = dev->cur_dev; @@ -1455,9 +1469,15 @@ ide_writeb(uint16_t addr, uint8_t val, void *priv) } ide->cylprecomp = val; +/* The ATA-3 specification says this register is the parameter for the + command and is unclear as to whether or not it's written to both + devices at once. Writing it to both devices at once breaks CD boot + on the AMI Apollo. */ +#ifdef WRITE_PARAM_TO_BOTH_DEVICES if (ide_other->type == IDE_ATAPI) ide_other->sc->features = val; ide_other->cylprecomp = val; +#endif return; case 0x2: /* Sector count */ @@ -1907,7 +1927,8 @@ ide_readb(uint16_t addr, void *priv) { ide_board_t *dev = (ide_board_t *) priv; - int ch, absent = 0; + int ch; + int absent = 0; ide_t *ide; ch = dev->cur_dev; @@ -2164,7 +2185,8 @@ atapi_error_no_ready(ide_t *ide) static void ide_callback(void *priv) { - int snum, ret = 0; + int snum; + int ret = 0; ide_t *ide = (ide_t *) priv; @@ -2574,8 +2596,10 @@ id_not_found: uint8_t ide_read_ali_75(void) { - ide_t *ide0, *ide1; - int ch0, ch1; + ide_t *ide0; + ide_t *ide1; + int ch0; + int ch1; uint8_t ret = 0x00; ch0 = ide_boards[0]->cur_dev; @@ -2598,8 +2622,10 @@ ide_read_ali_75(void) uint8_t ide_read_ali_76(void) { - ide_t *ide0, *ide1; - int ch0, ch1; + ide_t *ide0; + ide_t *ide1; + int ch0; + int ch1; uint8_t ret = 0x00; ch0 = ide_boards[0]->cur_dev; @@ -2737,7 +2763,7 @@ static void ide_board_close(int board) { ide_t *dev; - int c, d; + int c; ide_log("ide_board_close(%i)\n", board); @@ -2751,7 +2777,7 @@ ide_board_close(int board) ide_clear_bus_master(board); /* Close hard disk image files (if previously open) */ - for (d = 0; d < 2; d++) { + for (uint8_t d = 0; d < 2; d++) { c = (board << 1) + d; ide_boards[board]->ide[d] = NULL; @@ -2791,9 +2817,13 @@ static void ide_board_setup(int board) { ide_t *dev; - int c, d; - int ch, is_ide, valid_ch; - int min_ch, max_ch; + int c; + int d; + int ch; + int is_ide; + int valid_ch; + int min_ch; + int max_ch; min_ch = (board << 1); max_ch = min_ch + 1; @@ -3009,7 +3039,7 @@ ide_init(const device_t *info) break; } - return (ide_drives); + return ide_drives; } static void @@ -3041,7 +3071,8 @@ ide_drive_reset(int d) static void ide_board_reset(int board) { - int d, min, max; + int min; + int max; ide_log("Resetting IDE board %i...\n", board); @@ -3050,7 +3081,7 @@ ide_board_reset(int board) min = (board << 1); max = min + 2; - for (d = min; d < max; d++) + for (int d = min; d < max; d++) ide_drive_reset(d); } diff --git a/src/disk/hdc_ide_cmd640.c b/src/disk/hdc_ide_cmd640.c index 1dd92e79e..6f8580cba 100644 --- a/src/disk/hdc_ide_cmd640.c +++ b/src/disk/hdc_ide_cmd640.c @@ -102,7 +102,8 @@ cmd640_set_irq(int channel, void *priv) static void cmd640_ide_handlers(cmd640_t *dev) { - uint16_t main, side; + uint16_t main; + uint16_t side; ide_pri_disable(); diff --git a/src/disk/hdc_ide_cmd646.c b/src/disk/hdc_ide_cmd646.c index df992b41b..a9f5eb883 100644 --- a/src/disk/hdc_ide_cmd646.c +++ b/src/disk/hdc_ide_cmd646.c @@ -96,7 +96,8 @@ cmd646_bus_master_dma(int channel, uint8_t *data, int transfer_length, int out, static void cmd646_ide_handlers(cmd646_t *dev) { - uint16_t main, side; + uint16_t main; + uint16_t side; int irq_mode[2] = { 0, 0 }; ide_pri_disable(); diff --git a/src/disk/hdc_ide_sff8038i.c b/src/disk/hdc_ide_sff8038i.c index b5c75a756..a2c80ac7f 100644 --- a/src/disk/hdc_ide_sff8038i.c +++ b/src/disk/hdc_ide_sff8038i.c @@ -302,7 +302,8 @@ sff_bus_master_dma(int channel, uint8_t *data, int transfer_length, int out, voi char *sop; #endif - int force_end = 0, buffer_pos = 0; + int force_end = 0; + int buffer_pos = 0; #ifdef ENABLE_SFF_LOG sop = out ? "Read" : "Writ"; diff --git a/src/disk/hdc_st506_at.c b/src/disk/hdc_st506_at.c index 2eee8d294..88fd7192b 100644 --- a/src/disk/hdc_st506_at.c +++ b/src/disk/hdc_st506_at.c @@ -177,35 +177,35 @@ get_sector(mfm_t *mfm, off64_t *addr) diagnostics v2.07 will error with: ERROR 152 - SYSTEM BOARD. */ if (drive->curcyl != mfm->cylinder) { st506_at_log("WD1003(%d) sector: wrong cylinder\n"); - return (1); + return 1; } if (mfm->head > drive->cfg_hpc) { st506_at_log("WD1003(%d) get_sector: past end of configured heads\n", mfm->drvsel); - return (1); + return 1; } if (mfm->sector >= drive->cfg_spt + 1) { st506_at_log("WD1003(%d) get_sector: past end of configured sectors\n", mfm->drvsel); - return (1); + return 1; } /* We should check this in the SET_DRIVE_PARAMETERS command! --FvK */ if (mfm->head > drive->hpc) { st506_at_log("WD1003(%d) get_sector: past end of heads\n", mfm->drvsel); - return (1); + return 1; } if (mfm->sector >= drive->spt + 1) { st506_at_log("WD1003(%d) get_sector: past end of sectors\n", mfm->drvsel); - return (1); + return 1; } *addr = ((((off64_t) mfm->cylinder * drive->cfg_hpc) + mfm->head) * drive->cfg_spt) + (mfm->sector - 1); - return (0); + return 0; } /* Move to the next sector using CHS addressing. */ @@ -468,7 +468,7 @@ mfm_readw(uint16_t port, void *priv) } } - return (ret); + return ret; } static uint8_t @@ -517,7 +517,7 @@ mfm_read(uint16_t port, void *priv) st506_at_log("WD1003 read(%04x) = %02x\n", port, ret); - return (ret); + return ret; } static void @@ -689,14 +689,14 @@ static void * mfm_init(const device_t *info) { mfm_t *mfm; - int c, d; + int c; st506_at_log("WD1003: ISA MFM/RLL Fixed Disk Adapter initializing ...\n"); mfm = malloc(sizeof(mfm_t)); memset(mfm, 0x00, sizeof(mfm_t)); c = 0; - for (d = 0; d < HDD_NUM; d++) { + for (uint8_t d = 0; d < HDD_NUM; d++) { if ((hdd[d].bus == HDD_BUS_MFM) && (hdd[d].mfm_channel < MFM_NUM)) { loadhd(mfm, hdd[d].mfm_channel, d, hdd[d].fn); @@ -722,16 +722,15 @@ mfm_init(const device_t *info) ui_sb_update_icon(SB_HDD | HDD_BUS_MFM, 0); - return (mfm); + return mfm; } static void mfm_close(void *priv) { mfm_t *mfm = (mfm_t *) priv; - int d; - for (d = 0; d < 2; d++) { + for (uint8_t d = 0; d < 2; d++) { drive_t *drive = &mfm->drives[d]; hdd_image_close(drive->hdd_num); diff --git a/src/disk/hdc_st506_xt.c b/src/disk/hdc_st506_xt.c index e42516c3f..6f9358e0a 100644 --- a/src/disk/hdc_st506_xt.c +++ b/src/disk/hdc_st506_xt.c @@ -369,7 +369,7 @@ get_sector(hdc_t *dev, drive_t *drive, off64_t *addr) if (!drive->present) { /* No need to log this. */ dev->error = dev->nr_err; - return (0); + return 0; } #if 0 @@ -387,19 +387,19 @@ get_sector(hdc_t *dev, drive_t *drive, off64_t *addr) st506_xt_log("ST506: get_sector: past end of configured heads\n"); #endif dev->error = ERR_ILLEGAL_ADDR; - return (0); + return 0; } if (dev->sector >= drive->cfg_spt) { #ifdef ENABLE_ST506_XT_LOG st506_xt_log("ST506: get_sector: past end of configured sectors\n"); #endif dev->error = ERR_ILLEGAL_ADDR; - return (0); + return 0; } *addr = ((((off64_t) dev->cylinder * drive->cfg_hpc) + dev->head) * drive->cfg_spt) + dev->sector; - return (1); + return 1; } static void @@ -446,12 +446,12 @@ get_chs(hdc_t *dev, drive_t *drive) * result in an ERR_ILLEGAL_ADDR. --FvK */ drive->cylinder = drive->cfg_cyl - 1; - return (0); + return 0; } drive->cylinder = dev->cylinder; - return (1); + return 1; } static void @@ -1217,7 +1217,7 @@ st506_read(uint16_t port, void *priv) } st506_xt_log("ST506: read(%04x) = %02x\n", port, ret); - return (ret); + return ret; } /* Write to one of the registers. */ @@ -1287,7 +1287,8 @@ static void mem_write(uint32_t addr, uint8_t val, void *priv) { hdc_t *dev = (hdc_t *) priv; - uint32_t ptr, mask = 0; + uint32_t ptr; + uint32_t mask = 0; /* Ignore accesses to anything below the configured address, needed because of the emulator's 4k mapping granularity. */ @@ -1317,7 +1318,8 @@ static uint8_t mem_read(uint32_t addr, void *priv) { hdc_t *dev = (hdc_t *) priv; - uint32_t ptr, mask = 0; + uint32_t ptr; + uint32_t mask = 0; uint8_t ret = 0xff; /* Ignore accesses to anything below the configured address, @@ -1373,7 +1375,7 @@ mem_read(uint32_t addr, void *priv) else ret = dev->bios_rom.rom[addr]; - return (ret); + return ret; } /* @@ -1467,12 +1469,11 @@ static void set_switches(hdc_t *dev, hd_type_t *hdt, int num) { drive_t *drive; - int c, d; int e; dev->switches = 0x00; - for (d = 0; d < MFM_NUM; d++) { + for (uint8_t d = 0; d < MFM_NUM; d++) { drive = &dev->drives[d]; if (!drive->present) { @@ -1481,7 +1482,7 @@ set_switches(hdc_t *dev, hd_type_t *hdt, int num) continue; } - for (c = 0; c < num; c++) { + for (int c = 0; c < num; c++) { /* Does the Xebec also support more than 4 types? */ if ((drive->spt == hdt[c].spt) && (drive->hpc == hdt[c].hpc) && (drive->tracks == hdt[c].tracks)) { /* Olivetti M24/M240: Move the upper 2 bites up by 2 bits, as the @@ -1511,7 +1512,8 @@ st506_init(const device_t *info) { char *fn = NULL; hdc_t *dev; - int i, c; + int i; + int c; dev = (hdc_t *) malloc(sizeof(hdc_t)); memset(dev, 0x00, sizeof(hdc_t)); @@ -1703,7 +1705,7 @@ st506_init(const device_t *info) dev->drives[c].cfg_spt = dev->drives[c].spt; } - return (dev); + return dev; } static void @@ -1711,9 +1713,8 @@ st506_close(void *priv) { hdc_t *dev = (hdc_t *) priv; drive_t *drive; - int d; - for (d = 0; d < MFM_NUM; d++) { + for (uint8_t d = 0; d < MFM_NUM; d++) { drive = &dev->drives[d]; hdd_image_close(drive->hdd_num); diff --git a/src/disk/hdc_xta.c b/src/disk/hdc_xta.c index 0ac095929..e698df7ff 100644 --- a/src/disk/hdc_xta.c +++ b/src/disk/hdc_xta.c @@ -308,25 +308,25 @@ get_sector(hdc_t *dev, drive_t *drive, off64_t *addr) xta_log("%s: get_sector: wrong cylinder %d/%d\n", dev->name, drive->cur_cyl, dev->track); dev->sense = ERR_ILLADDR; - return (1); + return 1; } if (dev->head >= drive->hpc) { xta_log("%s: get_sector: past end of heads\n", dev->name); dev->sense = ERR_ILLADDR; - return (1); + return 1; } if (dev->sector >= drive->spt) { xta_log("%s: get_sector: past end of sectors\n", dev->name); dev->sense = ERR_ILLADDR; - return (1); + return 1; } /* Calculate logical address (block number) of desired sector. */ *addr = ((((off64_t) dev->track * drive->hpc) + dev->head) * drive->spt) + dev->sector; - return (0); + return 0; } static void @@ -375,10 +375,11 @@ do_seek(hdc_t *dev, drive_t *drive, int cyl) static void do_format(hdc_t *dev, drive_t *drive, dcb_t *dcb) { - int start_cyl, end_cyl; - int start_hd, end_hd; + int start_cyl; + int end_cyl; + int start_hd; + int end_hd; off64_t addr; - int h, s; /* Get the parameters from the DCB. */ if (dcb->cmd == CMD_FORMAT_DRIVE) { @@ -413,8 +414,8 @@ do_fmt: * data to fill the sectors with, so we will use * that at least. */ - for (h = start_hd; h < end_hd; h++) { - for (s = 0; s < drive->spt; s++) { + for (int h = start_hd; h < end_hd; h++) { + for (uint8_t s = 0; s < drive->spt; s++) { /* Set the sector we need to write. */ dev->head = h; dev->sector = s; @@ -901,7 +902,7 @@ hdc_read(uint16_t port, void *priv) break; } - return (ret); + return ret; } /* Write to one of the controller registers. */ @@ -970,7 +971,7 @@ xta_init(const device_t *info) char *bios_rev = NULL; char *fn = NULL; hdc_t *dev; - int c, i; + int c; int max = XTA_NUM; /* Allocate and initialize device block. */ @@ -1007,7 +1008,7 @@ xta_init(const device_t *info) /* Load any disks for this device class. */ c = 0; - for (i = 0; i < HDD_NUM; i++) { + for (uint8_t i = 0; i < HDD_NUM; i++) { if ((hdd[i].bus == HDD_BUS_XTA) && (hdd[i].xta_channel < max)) { drive = &dev->drives[hdd[i].xta_channel]; @@ -1051,7 +1052,7 @@ xta_init(const device_t *info) /* Create a timer for command delays. */ timer_add(&dev->timer, hdc_callback, dev, 0); - return (dev); + return dev; } static void @@ -1059,14 +1060,13 @@ xta_close(void *priv) { hdc_t *dev = (hdc_t *) priv; drive_t *drive; - int d; /* Remove the I/O handler. */ io_removehandler(dev->base, 4, hdc_read, NULL, NULL, hdc_write, NULL, NULL, dev); /* Close all disks and their images. */ - for (d = 0; d < XTA_NUM; d++) { + for (uint8_t d = 0; d < XTA_NUM; d++) { drive = &dev->drives[d]; hdd_image_close(drive->hdd_num); diff --git a/src/disk/hdc_xtide.c b/src/disk/hdc_xtide.c index 72ad580ae..d1baba8be 100644 --- a/src/disk/hdc_xtide.c +++ b/src/disk/hdc_xtide.c @@ -145,7 +145,7 @@ xtide_init(const device_t *info) xtide_read, NULL, NULL, xtide_write, NULL, NULL, xtide); - return (xtide); + return xtide; } static int @@ -177,7 +177,7 @@ xtide_at_init(const device_t *info) device_add(&ide_isa_2ch_device); - return (xtide); + return xtide; } static int @@ -208,7 +208,7 @@ xtide_acculogic_init(const device_t *info) xtide_read, NULL, NULL, xtide_write, NULL, NULL, xtide); - return (xtide); + return xtide; } static int @@ -239,7 +239,7 @@ xtide_at_ps2_init(const device_t *info) device_add(&ide_isa_2ch_device); - return (xtide); + return xtide; } static int diff --git a/src/disk/hdd.c b/src/disk/hdd.c index 61a355b44..c4daf0f83 100644 --- a/src/disk/hdd.c +++ b/src/disk/hdd.c @@ -41,23 +41,23 @@ hdd_init(void) /* Clear all global data. */ memset(hdd, 0x00, sizeof(hdd)); - return (0); + return 0; } int hdd_string_to_bus(char *str, int cdrom) { if (!strcmp(str, "none")) - return (HDD_BUS_DISABLED); + return HDD_BUS_DISABLED; if (!strcmp(str, "mfm") || !strcmp(str, "rll")) { if (cdrom) { no_cdrom: ui_msgbox_header(MBX_ERROR, (wchar_t *) IDS_2131, (wchar_t *) IDS_4099); - return (0); + return 0; } - return (HDD_BUS_MFM); + return HDD_BUS_MFM; } /* FIXME: delete 'rll' in a year or so.. --FvK */ @@ -65,40 +65,40 @@ no_cdrom: if (cdrom) goto no_cdrom; - return (HDD_BUS_ESDI); + return HDD_BUS_ESDI; } if (!strcmp(str, "ide_pio_only")) - return (HDD_BUS_IDE); + return HDD_BUS_IDE; if (!strcmp(str, "ide")) - return (HDD_BUS_IDE); + return HDD_BUS_IDE; if (!strcmp(str, "atapi_pio_only")) - return (HDD_BUS_ATAPI); + return HDD_BUS_ATAPI; if (!strcmp(str, "atapi")) - return (HDD_BUS_ATAPI); + return HDD_BUS_ATAPI; if (!strcmp(str, "eide")) - return (HDD_BUS_IDE); + return HDD_BUS_IDE; if (!strcmp(str, "xta")) - return (HDD_BUS_XTA); + return HDD_BUS_XTA; if (!strcmp(str, "atide")) - return (HDD_BUS_IDE); + return HDD_BUS_IDE; if (!strcmp(str, "ide_pio_and_dma")) - return (HDD_BUS_IDE); + return HDD_BUS_IDE; if (!strcmp(str, "atapi_pio_and_dma")) - return (HDD_BUS_ATAPI); + return HDD_BUS_ATAPI; if (!strcmp(str, "scsi")) - return (HDD_BUS_SCSI); + return HDD_BUS_SCSI; - return (0); + return 0; } char * @@ -136,22 +136,22 @@ hdd_bus_to_string(int bus, int cdrom) break; } - return (s); + return s; } int hdd_is_valid(int c) { if (hdd[c].bus == HDD_BUS_DISABLED) - return (0); + return 0; if (strlen(hdd[c].fn) == 0) - return (0); + return 0; if ((hdd[c].tracks == 0) || (hdd[c].hpc == 0) || (hdd[c].spt == 0)) - return (0); + return 0; - return (1); + return 1; } double @@ -204,8 +204,9 @@ static void hdd_readahead_update(hard_disk_t *hdd) { uint64_t elapsed_cycles; - double elapsed_us, seek_time; - uint32_t max_read_ahead, i; + double elapsed_us; + double seek_time; + uint32_t max_read_ahead; uint32_t space_needed; hdd_cache_t *cache = &hdd->cache; @@ -219,7 +220,7 @@ hdd_readahead_update(hard_disk_t *hdd) seek_time = 0.0; - for (i = 0; i < max_read_ahead; i++) { + for (uint32_t i = 0; i < max_read_ahead; i++) { seek_time += hdd_seek_get_time(hdd, segment->ra_addr, HDD_OP_READ, 1, elapsed_us - seek_time); if (seek_time > elapsed_us) break; @@ -252,7 +253,8 @@ static void hdd_writecache_update(hard_disk_t *hdd) { uint64_t elapsed_cycles; - double elapsed_us, seek_time; + double elapsed_us; + double seek_time; if (hdd->cache.write_pending) { elapsed_cycles = tsc - hdd->cache.write_start_time; @@ -383,13 +385,12 @@ static void hdd_cache_init(hard_disk_t *hdd) { hdd_cache_t *cache = &hdd->cache; - uint32_t i; cache->ra_segment = 0; cache->ra_ongoing = 0; cache->ra_start_time = 0; - for (i = 0; i < cache->num_segments; i++) { + for (uint32_t i = 0; i < cache->num_segments; i++) { cache->segments[i].valid = 0; cache->segments[i].lru = 0; cache->segments[i].id = i; @@ -401,12 +402,13 @@ hdd_cache_init(hard_disk_t *hdd) static void hdd_zones_init(hard_disk_t *hdd) { - uint32_t lba = 0, track = 0; - uint32_t i, tracks; + uint32_t lba = 0; + uint32_t track = 0; + uint32_t tracks; double revolution_usec = 60.0 / (double) hdd->rpm * 1000000.0; hdd_zone_t *zone; - for (i = 0; i < hdd->num_zones; i++) { + for (uint32_t i = 0; i < hdd->num_zones; i++) { zone = &hdd->zones[i]; zone->start_sector = lba; zone->start_track = track; @@ -467,10 +469,15 @@ void hdd_preset_apply(int hdd_id) { hard_disk_t *hd = &hdd[hdd_id]; - double revolution_usec, zone_percent; - uint32_t disk_sectors, sectors_per_surface, cylinders, cylinders_per_zone; - uint32_t total_sectors = 0, i; - uint32_t spt, zone_sectors; + double revolution_usec; + double zone_percent; + uint32_t disk_sectors; + uint32_t sectors_per_surface; + uint32_t cylinders; + uint32_t cylinders_per_zone; + uint32_t total_sectors = 0; + uint32_t spt; + uint32_t zone_sectors; if (hd->speed_preset >= hdd_preset_get_num()) hd->speed_preset = 0; @@ -503,7 +510,7 @@ hdd_preset_apply(int hdd_id) hd->phy_cyl = cylinders; cylinders_per_zone = cylinders / preset->zones; - for (i = 0; i < preset->zones; i++) { + for (uint32_t i = 0; i < preset->zones; i++) { zone_percent = i * 100 / (double) preset->zones; if (i < preset->zones - 1) { diff --git a/src/disk/hdd_image.c b/src/disk/hdd_image.c index 4007f13f3..856fc382c 100644 --- a/src/disk/hdd_image.c +++ b/src/disk/hdd_image.c @@ -107,7 +107,7 @@ image_is_hdx(const char *s, int check_signature) if (fread(&signature, 1, 8, f) != 8) fatal("image_is_hdx(): Error reading signature\n"); fclose(f); - if (signature == 0xD778A82044445459ll) + if (signature == 0xD778A82044445459LL) return 1; else return 0; @@ -143,7 +143,11 @@ hdd_image_calc_chs(uint32_t *c, uint32_t *h, uint32_t *s, uint32_t size) /* Calculate the geometry from size (in MB), using the algorithm provided in "Virtual Hard Disk Image Format Specification, Appendix: CHS Calculation" */ uint64_t ts = ((uint64_t) size) << 11LL; - uint32_t spt, heads, cyl, cth; + uint32_t spt; + uint32_t heads; + uint32_t cyl; + uint32_t cth; + if (ts > 65535 * 16 * 255) ts = 65535 * 16 * 255; @@ -180,7 +184,7 @@ prepare_new_hard_disk(uint8_t id, uint64_t full_size) uint64_t target_size = (full_size + hdd_images[id].base) - ftello64(hdd_images[id].file); uint32_t size; - uint32_t t, i; + uint32_t t; t = (uint32_t) (target_size >> 20); /* Amount of 1 MB blocks. */ size = (uint32_t) (target_size & 0xfffff); /* 1 MB mask. */ @@ -195,7 +199,7 @@ prepare_new_hard_disk(uint8_t id, uint64_t full_size) /* First, write all the 1 MB blocks. */ if (t > 0) { - for (i = 0; i < t; i++) { + for (uint32_t i = 0; i < t; i++) { fseek(hdd_images[id].file, 0, SEEK_END); fwrite(empty_sector_1mb, 1, 1048576, hdd_images[id].file); pclog("#"); @@ -224,9 +228,7 @@ prepare_new_hard_disk(uint8_t id, uint64_t full_size) void hdd_image_init(void) { - int i; - - for (i = 0; i < HDD_NUM; i++) + for (uint8_t i = 0; i < HDD_NUM; i++) memset(&hdd_images[i], 0, sizeof(hdd_image_t)); } @@ -235,10 +237,12 @@ hdd_image_load(int id) { uint32_t sector_size = 512; uint32_t zero = 0; - uint64_t signature = 0xD778A82044445459ll; + uint64_t signature = 0xD778A82044445459LL; uint64_t full_size = 0; - uint64_t spt = 0, hpc = 0, tracks = 0; - int c, ret; + uint64_t spt = 0; + uint64_t hpc = 0; + uint64_t tracks = 0; + int ret; uint64_t s = 0; char *fn = hdd[id].fn; int is_hdx[2] = { 0, 0 }; @@ -306,7 +310,7 @@ hdd_image_load(int id) fwrite(&(hdd[id].spt), 1, 4, hdd_images[id].file); fwrite(&(hdd[id].hpc), 1, 4, hdd_images[id].file); fwrite(&(hdd[id].tracks), 1, 4, hdd_images[id].file); - for (c = 0; c < 0x3f8; c++) + for (uint16_t c = 0; c < 0x3f8; c++) fwrite(&zero, 1, 4, hdd_images[id].file); hdd_images[id].type = HDD_IMAGE_HDI; } else if (is_hdx[0]) { @@ -330,11 +334,35 @@ hdd_image_load(int id) full_size = ((uint64_t) hdd[id].spt) * ((uint64_t) hdd[id].hpc) * ((uint64_t) hdd[id].tracks) << 9LL; hdd_images[id].last_sector = (full_size >> 9LL) - 1; - hdd_images[id].vhd = mvhd_create_fixed(fn, geometry, &vhd_error, NULL); - if (hdd_images[id].vhd == NULL) - fatal("hdd_image_load(): VHD: Could not create VHD : %s\n", mvhd_strerr(vhd_error)); + if (hdd[id].vhd_blocksize || hdd[id].vhd_parent[0]) { + MVHDCreationOptions options; +retry_vhd: + options.block_size_in_sectors = hdd[id].vhd_blocksize; + options.path = fn; + options.size_in_bytes = 0; + options.geometry = geometry; + if (hdd[id].vhd_parent[0]) { + options.type = MVHD_TYPE_DIFF; + options.parent_path = hdd[id].vhd_parent; + } else { + options.type = MVHD_TYPE_DYNAMIC; + options.parent_path = NULL; + } + hdd_images[id].vhd = mvhd_create_ex(options, &vhd_error); + } else { + hdd_images[id].vhd = mvhd_create_fixed(fn, geometry, &vhd_error, NULL); + } + if (hdd_images[id].vhd == NULL) { + /* Don't lock out if the parent of a differential VHD doesn't exist. */ + if (hdd[id].vhd_parent[0]) { + hdd[id].vhd_parent[0] = '\0'; + goto retry_vhd; + } + fatal("hdd_image_load(): VHD: Could not create VHD : %s\n", mvhd_strerr(vhd_error)); + } hdd_images[id].type = HDD_IMAGE_VHD; + return 1; } else { hdd_images[id].type = HDD_IMAGE_RAW; @@ -425,9 +453,12 @@ hdd_image_load(int id) fatal("hdd_image_load(): VHD: Parent/child timestamp mismatch for VHD file '%s'\n", fn); } - hdd[id].tracks = hdd_images[id].vhd->footer.geom.cyl; - hdd[id].hpc = hdd_images[id].vhd->footer.geom.heads; - hdd[id].spt = hdd_images[id].vhd->footer.geom.spt; + hdd[id].tracks = hdd_images[id].vhd->footer.geom.cyl; + hdd[id].hpc = hdd_images[id].vhd->footer.geom.heads; + hdd[id].spt = hdd_images[id].vhd->footer.geom.spt; + hdd[id].vhd_blocksize = (hdd_images[id].vhd->footer.disk_type == MVHD_TYPE_FIXED) ? 0 : (hdd_images[id].vhd->sparse.block_sz / MVHD_SECTOR_SIZE); + if (hdd_images[id].vhd->parent && hdd_images[id].vhd->parent->filename[0]) + strncpy(hdd[id].vhd_parent, hdd_images[id].vhd->parent->filename, sizeof(hdd[id].vhd_parent) - 1); full_size = ((uint64_t) hdd[id].spt) * ((uint64_t) hdd[id].hpc) * ((uint64_t) hdd[id].tracks) << 9LL; hdd_images[id].type = HDD_IMAGE_VHD; /* If we're here, this means there is a valid VHD footer in the @@ -560,8 +591,6 @@ hdd_image_zero(uint8_t id, uint32_t sector, uint32_t count) int non_transferred_sectors = mvhd_format_sectors(hdd_images[id].vhd, sector, count); hdd_images[id].pos = sector + count - non_transferred_sectors - 1; } else { - uint32_t i = 0; - memset(empty_sector, 0, 512); if (fseeko64(hdd_images[id].file, ((uint64_t) (sector) << 9LL) + hdd_images[id].base, SEEK_SET) == -1) { @@ -569,7 +598,7 @@ hdd_image_zero(uint8_t id, uint32_t sector, uint32_t count) return; } - for (i = 0; i < count; i++) { + for (uint32_t i = 0; i < count; i++) { if (feof(hdd_images[id].file)) break; @@ -626,9 +655,6 @@ hdd_image_unload(uint8_t id, int fn_preserve) hdd_images[id].last_sector = -1; - memset(hdd[id].prev_fn, 0, sizeof(hdd[id].prev_fn)); - if (fn_preserve) - strcpy(hdd[id].prev_fn, hdd[id].fn); memset(hdd[id].fn, 0, sizeof(hdd[id].fn)); } diff --git a/src/disk/mo.c b/src/disk/mo.c index 2180fe544..5a76d4394 100644 --- a/src/disk/mo.c +++ b/src/disk/mo.c @@ -118,7 +118,7 @@ const uint8_t mo_command_flags[0x100] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -static uint64_t mo_mode_sense_page_flags = (GPMODEP_ALL_PAGES); +static uint64_t mo_mode_sense_page_flags = GPMODEP_ALL_PAGES; static const mode_sense_pages_t mo_mode_sense_pages_default = // clang-format off @@ -306,9 +306,7 @@ mo_log(const char *fmt, ...) int find_mo_for_channel(uint8_t channel) { - uint8_t i = 0; - - for (i = 0; i < MO_NUM; i++) { + for (uint8_t i = 0; i < MO_NUM; i++) { if ((mo_drives[i].bus_type == MO_BUS_ATAPI) && (mo_drives[i].ide_channel == channel)) return i; } @@ -340,8 +338,8 @@ int mo_load(mo_t *dev, char *fn) { int is_mdi; - uint32_t size = 0; - unsigned int i, found = 0; + uint32_t size = 0; + unsigned int found = 0; is_mdi = image_is_mdi(fn); @@ -366,7 +364,7 @@ mo_load(mo_t *dev, char *fn) dev->drv->base = 0x1000; } - for (i = 0; i < KNOWN_MO_TYPES; i++) { + for (uint8_t i = 0; i < KNOWN_MO_TYPES; i++) { if (size == (mo_types[i].sectors * mo_types[i].bytes_per_sector)) { found = 1; dev->drv->medium_size = mo_types[i].sectors; @@ -584,9 +582,6 @@ mo_mode_sense(mo_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t block pf = mo_mode_sense_page_flags; - int i = 0; - int j = 0; - uint8_t msplen; page &= 0x3f; @@ -602,14 +597,14 @@ mo_mode_sense(mo_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t block buf[pos++] = (dev->drv->sector_size & 0xff); } - for (i = 0; i < 0x40; i++) { + for (uint8_t i = 0; i < 0x40; i++) { if ((page == GPMODE_ALL_PAGES) || (page == i)) { if (pf & (1LL << ((uint64_t) page))) { buf[pos++] = mo_mode_sense_read(dev, page_control, i, 0); msplen = mo_mode_sense_read(dev, page_control, i, 1); buf[pos++] = msplen; mo_log("MO %i: MODE SENSE: Page [%02X] length %i\n", dev->id, i, msplen); - for (j = 0; j < msplen; j++) + for (uint8_t j = 0; j < msplen; j++) buf[pos++] = mo_mode_sense_read(dev, page_control, i, 2 + j); } } @@ -621,7 +616,8 @@ mo_mode_sense(mo_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t block static void mo_update_request_length(mo_t *dev, int len, int block_len) { - int bt, min_len = 0; + int bt; + int min_len = 0; dev->max_transfer_len = dev->request_length; @@ -696,7 +692,8 @@ mo_bus_speed(mo_t *dev) static void mo_command_common(mo_t *dev) { - double bytes_per_second, period; + double bytes_per_second; + double period; dev->status = BUSY_STAT; dev->phase = 1; @@ -944,7 +941,6 @@ static int mo_blocks(mo_t *dev, int32_t *len, int first_batch, int out) { *len = 0; - int i; if (!dev->sector_len) { mo_command_complete(dev); @@ -961,7 +957,7 @@ mo_blocks(mo_t *dev, int32_t *len, int first_batch, int out) *len = dev->requested_blocks * dev->drv->sector_size; - for (i = 0; i < dev->requested_blocks; i++) { + for (int i = 0; i < dev->requested_blocks; i++) { if (fseek(dev->drv->f, dev->drv->base + (dev->sector_pos * dev->drv->sector_size) + (i * dev->drv->sector_size), SEEK_SET) == 1) break; @@ -1283,11 +1279,14 @@ static void mo_command(scsi_common_t *sc, uint8_t *cdb) { mo_t *dev = (mo_t *) sc; - int pos = 0, block_desc = 0; + int pos = 0; + int block_desc = 0; int ret; - int32_t len, max_len; + int32_t len; + int32_t max_len; int32_t alloc_length; - int size_idx, idx = 0; + int size_idx; + int idx = 0; unsigned preamble_len; char device_identify[9] = { '8', '6', 'B', '_', 'M', 'O', '0', '0', 0 }; int32_t blen = 0; @@ -1769,7 +1768,7 @@ mo_command(scsi_common_t *sc, uint8_t *cdb) case GPCMD_ERASE_10: case GPCMD_ERASE_12: /*Relative address*/ - if ((cdb[1] & 1)) + if (cdb[1] & 1) previous_pos = dev->sector_pos; switch (cdb[0]) { @@ -1782,7 +1781,7 @@ mo_command(scsi_common_t *sc, uint8_t *cdb) } /*Erase all remaining sectors*/ - if ((cdb[1] & 4)) { + if (cdb[1] & 4) { /* Cannot have a sector number when erase all*/ if (dev->sector_len) { mo_invalid_field(dev); @@ -1852,15 +1851,18 @@ mo_phase_data_out(scsi_common_t *sc) { mo_t *dev = (mo_t *) sc; - uint16_t block_desc_len, pos; + uint16_t block_desc_len; + uint16_t pos; uint16_t param_list_len; uint8_t error = 0; - uint8_t page, page_len; + uint8_t page; + uint8_t page_len; - uint32_t i = 0; - - uint8_t hdr_len, val, old_val, ch; + uint8_t hdr_len; + uint8_t val; + uint8_t old_val; + uint8_t ch; int len = 0; @@ -1918,7 +1920,7 @@ mo_phase_data_out(scsi_common_t *sc) if (!(mo_mode_sense_page_flags & (1LL << ((uint64_t) page)))) error |= 1; else { - for (i = 0; i < page_len; i++) { + for (uint8_t i = 0; i < page_len; i++) { ch = mo_mode_sense_pages_changeable.pages[page][i + 2]; val = dev->buffer[pos + i]; old_val = dev->ms_pages_saved.pages[page][i + 2]; @@ -2104,10 +2106,10 @@ void mo_hard_reset(void) { mo_t *dev; - int c; - uint8_t scsi_id, scsi_bus; + uint8_t scsi_id; + uint8_t scsi_bus; - for (c = 0; c < MO_NUM; c++) { + for (uint8_t c = 0; c < MO_NUM; c++) { if ((mo_drives[c].bus_type == MO_BUS_ATAPI) || (mo_drives[c].bus_type == MO_BUS_SCSI)) { mo_log("MO hard_reset drive=%d\n", c); @@ -2154,10 +2156,10 @@ void mo_close(void) { mo_t *dev; - int c; - uint8_t scsi_id, scsi_bus; + uint8_t scsi_id; + uint8_t scsi_bus; - for (c = 0; c < MO_NUM; c++) { + for (uint8_t c = 0; c < MO_NUM; c++) { if (mo_drives[c].bus_type == MO_BUS_SCSI) { scsi_bus = (mo_drives[c].scsi_device_id >> 4) & 0x0f; scsi_id = mo_drives[c].scsi_device_id & 0x0f; diff --git a/src/disk/zip.c b/src/disk/zip.c index a0107d1ef..62b8f0fe1 100644 --- a/src/disk/zip.c +++ b/src/disk/zip.c @@ -460,9 +460,7 @@ zip_log(const char *fmt, ...) int find_zip_for_channel(uint8_t channel) { - uint8_t i = 0; - - for (i = 0; i < ZIP_NUM; i++) { + for (uint8_t i = 0; i < ZIP_NUM; i++) { if ((zip_drives[i].bus_type == ZIP_BUS_ATAPI) && (zip_drives[i].ide_channel == channel)) return i; } @@ -753,9 +751,6 @@ zip_mode_sense(zip_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t blo else pf = zip_mode_sense_page_flags; - int i = 0; - int j = 0; - uint8_t msplen; page &= 0x3f; @@ -771,14 +766,14 @@ zip_mode_sense(zip_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t blo buf[pos++] = 0; } - for (i = 0; i < 0x40; i++) { + for (uint8_t i = 0; i < 0x40; i++) { if ((page == GPMODE_ALL_PAGES) || (page == i)) { if (pf & (1LL << ((uint64_t) page))) { buf[pos++] = zip_mode_sense_read(dev, page_control, i, 0); msplen = zip_mode_sense_read(dev, page_control, i, 1); buf[pos++] = msplen; zip_log("ZIP %i: MODE SENSE: Page [%02X] length %i\n", dev->id, i, msplen); - for (j = 0; j < msplen; j++) + for (uint8_t j = 0; j < msplen; j++) buf[pos++] = zip_mode_sense_read(dev, page_control, i, 2 + j); } } @@ -790,7 +785,8 @@ zip_mode_sense(zip_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t blo static void zip_update_request_length(zip_t *dev, int len, int block_len) { - int bt, min_len = 0; + int bt; + int min_len = 0; dev->max_transfer_len = dev->request_length; @@ -865,7 +861,8 @@ zip_bus_speed(zip_t *dev) static void zip_command_common(zip_t *dev) { - double bytes_per_second, period; + double bytes_per_second; + double period; dev->status = BUSY_STAT; dev->phase = 1; @@ -1122,7 +1119,6 @@ static int zip_blocks(zip_t *dev, int32_t *len, int first_batch, int out) { *len = 0; - int i; if (!dev->sector_len) { zip_command_complete(dev); @@ -1139,7 +1135,7 @@ zip_blocks(zip_t *dev, int32_t *len, int first_batch, int out) *len = dev->requested_blocks << 9; - for (i = 0; i < dev->requested_blocks; i++) { + for (int i = 0; i < dev->requested_blocks; i++) { if (fseek(dev->drv->f, dev->drv->base + (dev->sector_pos << 9) + (i << 9), SEEK_SET) == 1) break; @@ -1355,12 +1351,15 @@ static void zip_command(scsi_common_t *sc, uint8_t *cdb) { zip_t *dev = (zip_t *) sc; - int pos = 0, block_desc = 0; + int pos = 0; + int block_desc = 0; int ret; - int32_t len, max_len; + int32_t len; + int32_t max_len; int32_t alloc_length; uint32_t i = 0; - int size_idx, idx = 0; + int size_idx; + int idx = 0; unsigned preamble_len; int32_t blen = 0; int32_t *BufLen; @@ -2032,18 +2031,25 @@ zip_phase_data_out(scsi_common_t *sc) { zip_t *dev = (zip_t *) sc; - uint16_t block_desc_len, pos; + uint16_t block_desc_len; + uint16_t pos; uint16_t param_list_len; uint8_t error = 0; - uint8_t page, page_len; + uint8_t page; + uint8_t page_len; uint32_t i = 0; - uint8_t hdr_len, val, old_val, ch; + uint8_t hdr_len; + uint8_t val; + uint8_t old_val; + uint8_t ch; uint32_t last_to_write = 0; - uint32_t c, h, s; + uint32_t c; + uint32_t h; + uint32_t s; int len = 0; @@ -2325,10 +2331,10 @@ void zip_hard_reset(void) { zip_t *dev; - int c; - uint8_t scsi_id, scsi_bus; + uint8_t scsi_id; + uint8_t scsi_bus; - for (c = 0; c < ZIP_NUM; c++) { + for (uint8_t c = 0; c < ZIP_NUM; c++) { if ((zip_drives[c].bus_type == ZIP_BUS_ATAPI) || (zip_drives[c].bus_type == ZIP_BUS_SCSI)) { zip_log("ZIP hard_reset drive=%d\n", c); @@ -2375,10 +2381,10 @@ void zip_close(void) { zip_t *dev; - int c; - uint8_t scsi_bus, scsi_id; + uint8_t scsi_bus; + uint8_t scsi_id; - for (c = 0; c < ZIP_NUM; c++) { + for (uint8_t c = 0; c < ZIP_NUM; c++) { if (zip_drives[c].bus_type == ZIP_BUS_SCSI) { scsi_bus = (zip_drives[c].scsi_device_id >> 4) & 0x0f; scsi_id = zip_drives[c].scsi_device_id & 0x0f; diff --git a/src/floppy/fdc.c b/src/floppy/fdc.c index 0c35cfcb6..c3bdf293a 100644 --- a/src/floppy/fdc.c +++ b/src/floppy/fdc.c @@ -146,7 +146,7 @@ fdc_card_available(int card) if (fdc_cards[card].device) return (device_available(fdc_cards[card].device)); - return (1); + return 1; } const device_t * @@ -159,7 +159,7 @@ int fdc_card_has_config(int card) { if (!fdc_cards[card].device) - return (0); + return 0; return (device_has_config(fdc_cards[card].device) ? 1 : 0); } @@ -177,11 +177,11 @@ fdc_card_get_from_internal_name(char *s) while (fdc_cards[c].device != NULL) { if (!strcmp((char *) fdc_cards[c].device->internal_name, s)) - return (c); + return c; c++; } - return (0); + return 0; } void @@ -710,7 +710,9 @@ fdc_write(uint16_t addr, uint8_t val, void *priv) { fdc_t *fdc = (fdc_t *) priv; - int drive, i, drive_num; + int drive; + int i; + int drive_num; fdc_log("Write FDC %04X %02X\n", addr, val); @@ -1630,7 +1632,7 @@ fdc_callback(void *priv) fdc_poll_readwrite_finish(fdc, compare); return; } - if ((fdd_get_head(real_drive(fdc, fdc->drive)) == 0)) { + if (fdd_get_head(real_drive(fdc, fdc->drive)) == 0) { fdc->sector = 1; fdc->head |= 1; fdd_set_head(real_drive(fdc, fdc->drive), 1); @@ -1883,7 +1885,7 @@ fdc_is_verify(fdc_t *fdc) int fdc_data(fdc_t *fdc, uint8_t data, int last) { - int i, result = 0; + int result = 0; int n; if (fdc->deleted & 2) { @@ -1945,7 +1947,7 @@ fdc_data(fdc_t *fdc, uint8_t data, int last) if (fdc->fifobufpos > 0) fdc->fifobufpos = 0; - for (i = 0; i <= n; i++) { + for (int i = 0; i <= n; i++) { result = dma_channel_write(fdc->dma_ch, fdc->fifobuf[i]); if (result & DMA_OVER) { @@ -2057,7 +2059,7 @@ fdc_writeprotect(fdc_t *fdc) int fdc_getdata(fdc_t *fdc, int last) { - int i, data = 0; + int data = 0; if ((fdc->flags & FDC_FLAG_PCJR) || !fdc->dma) { if ((fdc->flags & FDC_FLAG_PCJR) || !fdc->fifo || (fdc->tfifo < 1)) { @@ -2085,7 +2087,7 @@ fdc_getdata(fdc_t *fdc, int last) } } else { if (fdc->fifobufpos == 0) { - for (i = 0; i <= fdc->tfifo; i++) { + for (int i = 0; i <= fdc->tfifo; i++) { data = dma_channel_read(fdc->dma_ch); fdc->fifobuf[i] = data; @@ -2242,7 +2244,6 @@ fdc_remove(fdc_t *fdc) void fdc_reset(void *priv) { - int i = 0; uint8_t default_rwc; fdc_t *fdc = (fdc_t *) priv; @@ -2313,7 +2314,7 @@ fdc_reset(void *priv) current_drive = 0; - for (i = 0; i < FDD_NUM; i++) + for (uint8_t i = 0; i < FDD_NUM; i++) ui_sb_update_icon(SB_FLOPPY | i, 0); } diff --git a/src/floppy/fdd.c b/src/floppy/fdd.c index ee43256a4..16d414af3 100644 --- a/src/floppy/fdd.c +++ b/src/floppy/fdd.c @@ -80,12 +80,14 @@ char *fdd_image_history[FDD_NUM][FLOPPY_IMAGE_HISTORY]; pc_timer_t fdd_poll_time[FDD_NUM]; -static int fdd_notfound = 0, - driveloaders[FDD_NUM]; +static int fdd_notfound = 0; +static int driveloaders[FDD_NUM]; -int writeprot[FDD_NUM], fwriteprot[FDD_NUM], - fdd_changed[FDD_NUM], ui_writeprot[FDD_NUM] = { 0, 0, 0, 0 }, - drive_empty[FDD_NUM] = { 1, 1, 1, 1 }; +int writeprot[FDD_NUM]; +int fwriteprot[FDD_NUM]; +int fdd_changed[FDD_NUM]; +int ui_writeprot[FDD_NUM] = { 0, 0, 0, 0 }; +int drive_empty[FDD_NUM] = { 1, 1, 1, 1 }; DRIVE drives[FDD_NUM]; @@ -296,9 +298,7 @@ fdd_current_track(int drive) void fdd_set_densel(int densel) { - int i = 0; - - for (i = 0; i < FDD_NUM; i++) { + for (uint8_t i = 0; i < FDD_NUM; i++) { if (drive_types[fdd[i].type].flags & FLAG_INVERT_DENSEL) fdd[i].densel = densel ^ 1; else @@ -451,7 +451,8 @@ fdd_get_densel(int drive) void fdd_load(int drive, char *fn) { - int c = 0, size; + int c = 0; + int size; char *p; FILE *f; @@ -593,9 +594,7 @@ fdd_get_bitcell_period(int rate) void fdd_reset(void) { - int i; - - for (i = 0; i < FDD_NUM; i++) { + for (uint8_t i = 0; i < FDD_NUM; i++) { drives[i].id = i; timer_add(&(fdd_poll_time[i]), fdd_poll, &drives[i], 0); } diff --git a/src/floppy/fdd_86f.c b/src/floppy/fdd_86f.c index ff4acb989..f0bf6b7f7 100644 --- a/src/floppy/fdd_86f.c +++ b/src/floppy/fdd_86f.c @@ -231,7 +231,7 @@ static const uint8_t encoded_mfm[64] = { static d86f_t *d86f[FDD_NUM]; static uint16_t CRCTable[256]; static fdc_t *d86f_fdc; -uint64_t poly = 0x42F0E1EBA9EA3693ll; /* ECMA normal */ +uint64_t poly = 0x42F0E1EBA9EA3693LL; /* ECMA normal */ uint16_t d86f_side_flags(int drive); int d86f_is_mfm(int drive); @@ -261,7 +261,8 @@ d86f_log(const char *fmt, ...) static void setup_crc(uint16_t poly) { - int c = 256, bc; + int c = 256; + int bc; uint16_t temp; while (c--) { @@ -283,7 +284,8 @@ void d86f_destroy_linked_lists(int drive, int side) { d86f_t *dev = d86f[drive]; - sector_t *s, *t; + sector_t *s; + sector_t *t; if (dev == NULL) return; @@ -432,7 +434,9 @@ d86f_side_flags(int drive) uint16_t d86f_track_flags(int drive) { - uint16_t dr, rr, tf; + uint16_t dr; + uint16_t rr; + uint16_t tf; tf = d86f_handler[drive].side_flags(drive); rr = tf & 0x67; @@ -468,10 +472,12 @@ uint32_t common_get_raw_size(int drive, int side) { double rate = 0.0; - double rpm, rpm_diff; + double rpm; + double rpm_diff; double size = 100000.0; int mfm; - int rm, ssd; + int rm; + int ssd; uint32_t extra_bc = 0; mfm = d86f_is_mfm(drive); @@ -601,7 +607,8 @@ int d86f_get_array_size(int drive, int side, int words) { int array_size; - int hole, rm; + int hole; + int rm; int ssd; rm = d86f_get_rpm_mode(drive); @@ -692,7 +699,8 @@ d86f_get_array_size(int drive, int side, int words) int d86f_valid_bit_rate(int drive) { - int hole, rate; + int hole; + int rate; rate = fdc_get_bit_rate(d86f_fdc); hole = (d86f_handler[drive].disk_flags(drive) & 6) >> 1; @@ -786,7 +794,8 @@ uint32_t d86f_get_data_len(int drive) { d86f_t *dev = d86f[drive]; - uint32_t i, ret = 128; + uint32_t i; + uint32_t ret = 128; if (dev->req_sector.id.n) ret = (uint32_t) 128 << dev->req_sector.id.n; @@ -930,7 +939,9 @@ d86f_encode_byte(int drive, int sync, decoded_t b, decoded_t prev_b) uint8_t bits89AB = prev_b.nibbles.nibble0; uint8_t bits7654 = b.nibbles.nibble1; uint8_t bits3210 = b.nibbles.nibble0; - uint16_t encoded_7654, encoded_3210, result; + uint16_t encoded_7654; + uint16_t encoded_3210; + uint16_t result; if (encoding > 1) return 0xffff; @@ -1246,7 +1257,7 @@ d86f_find_address_mark_fm(int drive, int side, find_t *find, uint16_t req_am, ui return; } - if ((wrong_am) && (dev->last_word[side] == wrong_am)) { + if (wrong_am && (dev->last_word[side] == wrong_am)) { dev->data_find.sync_marks = dev->data_find.bits_obtained = dev->data_find.bytes_obtained = 0; dev->error_condition = 0; dev->state = STATE_IDLE; @@ -1311,7 +1322,7 @@ d86f_find_address_mark_mfm(int drive, int side, find_t *find, uint16_t req_am, u return; } - if ((wrong_am) && (dev->last_word[side] == wrong_am) && (find->sync_marks >= 3)) { + if (wrong_am && (dev->last_word[side] == wrong_am) && (find->sync_marks >= 3)) { dev->data_find.sync_marks = dev->data_find.bits_obtained = dev->data_find.bytes_obtained = 0; dev->error_condition = 0; dev->state = STATE_IDLE; @@ -1469,7 +1480,8 @@ uint8_t d86f_get_data(int drive, int base) { d86f_t *dev = d86f[drive]; - int data, byte_count; + int data; + int byte_count; if (fdd_get_turbo(drive) && (dev->version == 0x0063)) byte_count = dev->turbo_pos; @@ -1749,8 +1761,13 @@ void d86f_write_direct_common(int drive, int side, uint16_t byte, uint8_t type, uint32_t pos) { d86f_t *dev = d86f[drive]; - uint16_t encoded_byte = 0, mask_data, mask_surface, mask_hole, mask_fuzzy; - decoded_t dbyte, dpbyte; + uint16_t encoded_byte = 0; + uint16_t mask_data; + uint16_t mask_surface; + uint16_t mask_hole; + uint16_t mask_fuzzy; + decoded_t dbyte; + decoded_t dpbyte; if (fdc_get_diswr(d86f_fdc)) return; @@ -2062,7 +2079,8 @@ static uint8_t d86f_sector_flags(int drive, int side, uint8_t c, uint8_t h, uint8_t r, uint8_t n) { d86f_t *dev = d86f[drive]; - sector_t *s, *t; + sector_t *s; + sector_t *t; if (dev->last_side_sector[side]) { s = dev->last_side_sector[side]; @@ -2169,7 +2187,6 @@ d86f_turbo_format(int drive, int side, int nop) int dat; uint16_t sc; uint16_t dtl; - int i; sc = fdc_get_format_sectors(d86f_fdc); dtl = 128 << fdc_get_format_n(d86f_fdc); @@ -2187,7 +2204,7 @@ d86f_turbo_format(int drive, int side, int nop) } } else if (dev->datac == 4) { if (!nop) { - for (i = 0; i < dtl; i++) + for (uint16_t i = 0; i < dtl; i++) d86f_handler[drive].write_data(drive, side, i, dev->fill); } @@ -2213,7 +2230,8 @@ int d86f_sector_is_present(int drive, int side, uint8_t c, uint8_t h, uint8_t r, uint8_t n) { d86f_t *dev = d86f[drive]; - sector_t *s, *t; + sector_t *s; + sector_t *t; if (dev->last_side_sector[side]) { s = dev->last_side_sector[side]; @@ -2354,7 +2372,8 @@ void d86f_poll(int drive) { d86f_t *dev = d86f[drive]; - int mfm, side; + int mfm; + int side; side = fdd_get_head(drive); if (!fdd_is_double_sided(drive)) @@ -2750,11 +2769,18 @@ void d86f_construct_encoded_buffer(int drive, int side) { d86f_t *dev = d86f[drive]; - uint32_t i = 0; /* *_fuzm are fuzzy bit masks, *_holm are hole masks, dst_neim are masks is mask for bits that are neither fuzzy nor holes in both, and src1_d and src2_d are filtered source data. */ - uint16_t src1_fuzm, src2_fuzm, dst_fuzm, src1_holm, src2_holm, dst_holm, dst_neim, src1_d, src2_d; + uint16_t src1_fuzm; + uint16_t src2_fuzm; + uint16_t dst_fuzm; + uint16_t src1_holm; + uint16_t src2_holm; + uint16_t dst_holm; + uint16_t dst_neim; + uint16_t src1_d; + uint16_t src2_d; uint32_t len; uint16_t *dst = dev->track_encoded_data[side]; uint16_t *dst_s = dev->track_surface_data[side]; @@ -2764,7 +2790,7 @@ d86f_construct_encoded_buffer(int drive, int side) uint16_t *src2_s = dev->thin_track_surface_data[1][side]; len = d86f_get_array_size(drive, side, 1); - for (i = 0; i < len; i++) { + for (uint32_t i = 0; i < len; i++) { /* The two bits differ. */ if (d86f_has_surface_desc(drive)) { /* Source image has surface description data, so we have some more handling to do. */ @@ -2799,8 +2825,8 @@ void d86f_decompose_encoded_buffer(int drive, int side) { d86f_t *dev = d86f[drive]; - uint32_t i = 0; - uint16_t temp, temp2; + uint16_t temp; + uint16_t temp2; uint32_t len; uint16_t *dst = dev->track_encoded_data[side]; uint16_t *src1 = dev->thin_track_encoded_data[0][side]; @@ -2810,7 +2836,7 @@ d86f_decompose_encoded_buffer(int drive, int side) dst = d86f_handler[drive].encoded_data(drive, side); len = d86f_get_array_size(drive, side, 1); - for (i = 0; i < len; i++) { + for (uint32_t i = 0; i < len; i++) { if (d86f_has_surface_desc(drive)) { /* Source image has surface description data, so we have some more handling to do. We need hole masks for both buffers. Holes have data bit clear and surface bit set. */ @@ -2901,10 +2927,10 @@ void d86f_zero_track(int drive) { d86f_t *dev = d86f[drive]; - int sides, side; + int sides; sides = d86f_get_sides(drive); - for (side = 0; side < sides; side++) { + for (int side = 0; side < sides; side++) { if (d86f_has_surface_desc(drive)) memset(dev->track_surface_data[side], 0, 106096); memset(dev->track_encoded_data[side], 0, 106096); @@ -2916,7 +2942,8 @@ d86f_seek(int drive, int track) { d86f_t *dev = d86f[drive]; int sides; - int side, thin_track; + int side; + int thin_track; sides = d86f_get_sides(drive); /* If the drive has thick tracks, shift the track number by 1. */ @@ -2995,8 +3022,9 @@ void d86f_write_tracks(int drive, FILE **f, uint32_t *track_table) { d86f_t *dev = d86f[drive]; - int sides, fdd_side; - int side, thin_track; + int sides; + int fdd_side; + int side; int logical_track = 0; uint32_t *tbl; tbl = dev->track_offset; @@ -3011,7 +3039,7 @@ d86f_write_tracks(int drive, FILE **f, uint32_t *track_table) if (sides == 2) d86f_decompose_encoded_buffer(drive, 1); - for (thin_track = 0; thin_track < 2; thin_track++) { + for (uint8_t thin_track = 0; thin_track < 2; thin_track++) { for (side = 0; side < sides; side++) { fdd_set_head(drive, side); @@ -3060,7 +3088,8 @@ d86f_writeback(int drive) { d86f_t *dev = d86f[drive]; uint8_t header[32]; - int header_size, size; + int header_size; + int size; #ifdef D86F_COMPRESS uint32_t len; int ret = 0; @@ -3264,8 +3293,8 @@ void d86f_common_format(int drive, int side, int rate, uint8_t fill, int proxy) { d86f_t *dev = d86f[drive]; - uint32_t i = 0; - uint16_t temp, temp2; + uint16_t temp; + uint16_t temp2; uint32_t array_size; if (writeprot[drive]) { @@ -3297,7 +3326,7 @@ d86f_common_format(int drive, int side, int rate, uint8_t fill, int proxy) if (d86f_has_surface_desc(drive)) { /* Preserve the physical holes but get rid of the fuzzy bytes. */ - for (i = 0; i < array_size; i++) { + for (uint32_t i = 0; i < array_size; i++) { temp = dev->track_encoded_data[side][i] ^ 0xffff; temp2 = dev->track_surface_data[side][i]; temp &= temp2; @@ -3366,7 +3395,6 @@ d86f_export(int drive, char *fn) d86f_t *temp86; FILE *f; int tracks = 86; - int i; int inc = 1; uint32_t magic = 0x46423638; uint16_t version = 0x020C; @@ -3393,7 +3421,7 @@ d86f_export(int drive, char *fn) if (!fdd_doublestep_40(drive)) inc = 2; - for (i = 0; i < tracks; i += inc) { + for (int i = 0; i < tracks; i += inc) { if (inc == 2) fdd_do_seek(drive, i >> 1); else @@ -3426,7 +3454,6 @@ d86f_load(int drive, char *fn) d86f_t *dev = d86f[drive]; uint32_t magic = 0; uint32_t len = 0; - int i = 0, j = 0; #ifdef D86F_COMPRESS char temp_file_name[2048]; uint16_t temp = 0; @@ -3501,11 +3528,11 @@ d86f_load(int drive, char *fn) (void) !fread(&(dev->disk_flags), 2, 1, dev->f); if (d86f_has_surface_desc(drive)) { - for (i = 0; i < 2; i++) + for (uint8_t i = 0; i < 2; i++) dev->track_surface_data[i] = (uint16_t *) malloc(53048 * sizeof(uint16_t)); - for (i = 0; i < 2; i++) { - for (j = 0; j < 2; j++) + for (uint8_t i = 0; i < 2; i++) { + for (uint8_t j = 0; j < 2; j++) dev->thin_track_surface_data[i][j] = (uint16_t *) malloc(53048 * sizeof(uint16_t)); } } @@ -3750,11 +3777,9 @@ d86f_load(int drive, char *fn) void d86f_init(void) { - int i; - setup_crc(0x1021); - for (i = 0; i < FDD_NUM; i++) + for (uint8_t i = 0; i < FDD_NUM; i++) d86f[i] = NULL; } @@ -3767,8 +3792,6 @@ d86f_set_fdc(void *fdc) void d86f_close(int drive) { - int i, j; - char temp_file_name[2048]; d86f_t *dev = d86f[drive]; @@ -3779,15 +3802,15 @@ d86f_close(int drive) memcpy(temp_file_name, drive ? nvr_path("TEMP$$$1.$$$") : nvr_path("TEMP$$$0.$$$"), 26); if (d86f_has_surface_desc(drive)) { - for (i = 0; i < 2; i++) { + for (uint8_t i = 0; i < 2; i++) { if (dev->track_surface_data[i]) { free(dev->track_surface_data[i]); dev->track_surface_data[i] = NULL; } } - for (i = 0; i < 2; i++) { - for (j = 0; j < 2; j++) { + for (uint8_t i = 0; i < 2; i++) { + for (uint8_t j = 0; j < 2; j++) { if (dev->thin_track_surface_data[i][j]) { free(dev->thin_track_surface_data[i][j]); dev->thin_track_surface_data[i][j] = NULL; @@ -3828,23 +3851,21 @@ d86f_setup(int drive) void d86f_destroy(int drive) { - int i, j; - d86f_t *dev = d86f[drive]; if (dev == NULL) return; if (d86f_has_surface_desc(drive)) { - for (i = 0; i < 2; i++) { + for (uint8_t i = 0; i < 2; i++) { if (dev->track_surface_data[i]) { free(dev->track_surface_data[i]); dev->track_surface_data[i] = NULL; } } - for (i = 0; i < 2; i++) { - for (j = 0; j < 2; j++) { + for (uint8_t i = 0; i < 2; i++) { + for (uint8_t j = 0; j < 2; j++) { if (dev->thin_track_surface_data[i][j]) { free(dev->thin_track_surface_data[i][j]); dev->thin_track_surface_data[i][j] = NULL; diff --git a/src/floppy/fdd_common.c b/src/floppy/fdd_common.c index 9c1f98c39..78434a2ad 100644 --- a/src/floppy/fdd_common.c +++ b/src/floppy/fdd_common.c @@ -398,7 +398,7 @@ fdd_sector_size_code(int size) break; } - return (ret); + return ret; } int @@ -410,15 +410,13 @@ fdd_sector_code_size(uint8_t code) int fdd_bps_valid(uint16_t bps) { - int i; - - for (i = 0; i <= 8; i++) { + for (uint8_t i = 0; i <= 8; i++) { if (bps == (128 << i)) { return 1; } } - return (0); + return 0; } int @@ -435,5 +433,5 @@ fdd_interleave(int sector, int skew, int spt) adjusted_r += (adjust + add); } - return (adjusted_r); + return adjusted_r; } diff --git a/src/floppy/fdd_fdi.c b/src/floppy/fdd_fdi.c index 64279c173..a1a2a61ee 100644 --- a/src/floppy/fdd_fdi.c +++ b/src/floppy/fdd_fdi.c @@ -104,7 +104,7 @@ disk_flags(int drive) */ temp_disk_flags |= 0x800; - return (temp_disk_flags); + return temp_disk_flags; } static uint16_t @@ -143,34 +143,34 @@ side_flags(int drive) */ temp_side_flags |= 0x08; - return (temp_side_flags); + return temp_side_flags; } static int fdi_density(void) { if (!fdc_is_mfm(fdi_fdc)) - return (0); + return 0; switch (fdc_get_bit_rate(fdi_fdc)) { case 0: - return (2); + return 2; case 1: - return (1); + return 1; case 2: - return (1); + return 1; case 3: case 5: - return (3); + return 3; default: break; } - return (1); + return 1; } static int32_t @@ -207,14 +207,15 @@ extra_bit_cells(int drive, int side) raw_size = is_300_rpm ? 100000 : 83333; } - return ((dev->tracklen[side][density] - raw_size)); + return (dev->tracklen[side][density] - raw_size); } static void read_revolution(int drive) { fdi_t *dev = fdi[drive]; - int c, den, side; + int c; + int den; int track = dev->track; if (track > dev->lasttrack) { @@ -227,7 +228,7 @@ read_revolution(int drive) } for (den = 0; den < 4; den++) { - for (side = 0; side < dev->sides; side++) { + for (int side = 0; side < dev->sides; side++) { c = fdi2raw_loadtrack(dev->h, (uint16_t *) dev->track_data[side][den], (uint16_t *) dev->track_timing[side][den], diff --git a/src/floppy/fdd_imd.c b/src/floppy/fdd_imd.c index 830a96b0e..c03481db3 100644 --- a/src/floppy/fdd_imd.c +++ b/src/floppy/fdd_imd.c @@ -129,16 +129,21 @@ get_raw_tsize(int side_flags, int slower_rpm) break; } - return (size); + return size; } static int track_is_xdf(int drive, int side, int track) { imd_t *dev = imd[drive]; - int i, effective_sectors, xdf_sectors; - int high_sectors, low_sectors; - int max_high_id, expected_high_count, expected_low_count; + int i; + int effective_sectors; + int xdf_sectors; + int high_sectors; + int low_sectors; + int max_high_id; + int expected_high_count; + int expected_low_count; uint8_t *r_map; uint8_t *n_map; @@ -148,16 +153,16 @@ track_is_xdf(int drive, int side, int track) dev->xdf_ordered_pos[i][side] = 0; if (dev->tracks[track][side].params[2] & 0xC0) - return (0); + return 0; if ((dev->tracks[track][side].params[3] != 16) && (dev->tracks[track][side].params[3] != 19)) - return (0); + return 0; r_map = (uint8_t *) (dev->buffer + dev->tracks[track][side].r_map_offs); if (!track) { if (dev->tracks[track][side].params[4] != 2) - return (0); + return 0; if (!side) { max_high_id = (dev->tracks[track][side].params[3] == 19) ? 0x8B : 0x88; @@ -183,10 +188,10 @@ track_is_xdf(int drive, int side, int track) return ((dev->tracks[track][side].params[3] == 19) ? 2 : 1); } } - return (0); + return 0; } else { if (dev->tracks[track][side].params[4] != 0xFF) - return (0); + return 0; n_map = (uint8_t *) (dev->buffer + dev->tracks[track][side].n_map_offs); @@ -203,31 +208,29 @@ track_is_xdf(int drive, int side, int track) if ((effective_sectors == 3) && (xdf_sectors == 3)) { dev->current_side_flags[side] = 0x28; - return (1); /* 5.25" 2HD XDF */ + return 1; /* 5.25" 2HD XDF */ } if ((effective_sectors == 4) && (xdf_sectors == 4)) { dev->current_side_flags[side] = 0x08; - return (2); /* 3.5" 2HD XDF */ + return 2; /* 3.5" 2HD XDF */ } - return (0); + return 0; } - - return (0); } static int track_is_interleave(int drive, int side, int track) { imd_t *dev = imd[drive]; - int i, effective_sectors; + int effective_sectors; char *r_map; int track_spt; effective_sectors = 0; - for (i = 0; i < 256; i++) + for (uint16_t i = 0; i < 256; i++) dev->interleave_ordered_pos[i][side] = 0; track_spt = dev->tracks[track][side].params[3]; @@ -235,15 +238,15 @@ track_is_interleave(int drive, int side, int track) r_map = dev->buffer + dev->tracks[track][side].r_map_offs; if (dev->tracks[track][side].params[2] & 0xC0) - return (0); + return 0; if (track_spt != 21) - return (0); + return 0; if (dev->tracks[track][side].params[4] != 2) - return (0); + return 0; - for (i = 0; i < track_spt; i++) { + for (int i = 0; i < track_spt; i++) { if ((r_map[i] >= 1) && (r_map[i] <= track_spt)) { effective_sectors++; dev->interleave_ordered_pos[(int) r_map[i]][side] = i; @@ -251,9 +254,9 @@ track_is_interleave(int drive, int side, int track) } if (effective_sectors == track_spt) - return (1); + return 1; - return (0); + return 0; } static void @@ -282,8 +285,11 @@ imd_seek(int drive, int track) uint8_t id[4] = { 0, 0, 0, 0 }; uint8_t type; imd_t *dev = imd[drive]; - int sector, current_pos; - int side, c = 0, h, n; + int sector; + int current_pos; + int c = 0; + int h; + int n; int ssize = 512; int track_rate = 0; int track_gap2 = 22; @@ -329,7 +335,7 @@ imd_seek(int drive, int track) if (track > dev->track_count) return; - for (side = 0; side < dev->sides; side++) { + for (int side = 0; side < dev->sides; side++) { if (!dev->tracks[track][side].is_present) continue; @@ -460,7 +466,7 @@ side_flags(int drive) side = fdd_get_head(drive); sflags = dev->current_side_flags[side]; - return (sflags); + return sflags; } static void @@ -468,8 +474,13 @@ set_sector(int drive, int side, uint8_t c, uint8_t h, uint8_t r, uint8_t n) { imd_t *dev = imd[drive]; int track = dev->track; - int i, sc, sh, sn; - char *c_map = NULL, *h_map = NULL, *r_map = NULL, *n_map = NULL; + int sc; + int sh; + int sn; + char *c_map = NULL; + char *h_map = NULL; + char *r_map = NULL; + char *n_map = NULL; uint8_t id[4] = { 0, 0, 0, 0 }; sc = dev->tracks[track][side].params[1]; sh = dev->tracks[track][side].params[2]; @@ -487,7 +498,7 @@ set_sector(int drive, int side, uint8_t c, uint8_t h, uint8_t r, uint8_t n) if (c != dev->track) return; - for (i = 0; i < dev->tracks[track][side].params[3]; i++) { + for (uint8_t i = 0; i < dev->tracks[track][side].params[3]; i++) { id[0] = (sh & 0x80) ? c_map[i] : sc; id[1] = (sh & 0x40) ? h_map[i] : (sh & 1); id[2] = r_map[i]; @@ -502,17 +513,17 @@ static void imd_writeback(int drive) { imd_t *dev = imd[drive]; - int side; int track = dev->track; - int i = 0; char *n_map = 0; - uint8_t h, n, spt; + uint8_t h; + uint8_t n; + uint8_t spt; uint32_t ssize; if (writeprot[drive]) return; - for (side = 0; side < dev->sides; side++) { + for (int side = 0; side < dev->sides; side++) { if (dev->tracks[track][side].is_present) { fseek(dev->f, dev->tracks[track][side].file_offs, SEEK_SET); h = dev->tracks[track][side].params[2]; @@ -530,7 +541,7 @@ imd_writeback(int drive) n_map = dev->buffer + dev->tracks[track][side].n_map_offs; fwrite(n_map, 1, spt, dev->f); } - for (i = 0; i < spt; i++) { + for (uint8_t i = 0; i < spt; i++) { ssize = (n == 0xFF) ? n_map[i] : n; ssize = 128 << ssize; fwrite(dev->buffer + dev->tracks[track][side].sector_data_offs[i], 1, ssize, dev->f); @@ -546,7 +557,7 @@ poll_read_data(int drive, int side, uint16_t pos) int type = dev->current_data[side][0]; if ((type == 0) || (type > 8)) - return (0xf6); /* Should never happen. */ + return 0xf6; /* Should never happen. */ if (type & 1) return (dev->current_data[side][pos + 1]); @@ -574,13 +585,14 @@ format_conditions(int drive) { imd_t *dev = imd[drive]; int track = dev->track; - int side, temp; + int side; + int temp; side = fdd_get_head(drive); temp = (fdc_get_format_sectors(imd_fdc) == dev->tracks[track][side].params[3]); temp = temp && (fdc_get_format_n(imd_fdc) == dev->tracks[track][side].params[4]); - return (temp); + return temp; } void @@ -613,7 +625,8 @@ imd_load(int drive, char *fn) uint32_t minimum_gap4 = 0; uint8_t converted_rate; uint8_t type; - int size_diff, gap_sum; + int size_diff; + int gap_sum; d86f_unregister(drive); @@ -708,7 +721,7 @@ imd_load(int drive, char *fn) dev->tracks[track][side].side_flags = (buffer2[0] % 3); if (!dev->tracks[track][side].side_flags) - dev->disk_flags |= (0x02); + dev->disk_flags |= 0x02; dev->tracks[track][side].side_flags |= (!(buffer2[0] - dev->tracks[track][side].side_flags) ? 0 : 8); mfm = dev->tracks[track][side].side_flags & 8; track_total = mfm ? 146 : 73; diff --git a/src/floppy/fdd_img.c b/src/floppy/fdd_img.c index a9fc73a24..d9ffaf92d 100644 --- a/src/floppy/fdd_img.c +++ b/src/floppy/fdd_img.c @@ -42,7 +42,7 @@ typedef struct { FILE *f; - uint8_t track_data[2][50000]; + uint8_t track_data[2][688128]; int sectors, tracks, sides; uint8_t sector_size; int xdf_type; /* 0 = not XDF, 1-5 = one of the five XDF types */ @@ -71,10 +71,10 @@ static fdc_t *img_fdc; static double bit_rate_300; static char *ext; -static uint8_t first_byte, - second_byte, - third_byte, - fourth_byte; +static uint8_t first_byte; +static uint8_t second_byte; +static uint8_t third_byte; +static uint8_t fourth_byte; static uint8_t fdf_suppress_final_byte = 0; /* This is hard-coded to 0 - * if you really need to read * those NT 3.1 Beta floppy @@ -339,43 +339,41 @@ sector_size_code(int sector_size) { switch (sector_size) { case 128: - return (0); + return 0; case 256: - return (1); + return 1; default: case 512: - return (2); + return 2; case 1024: - return (3); + return 3; case 2048: - return (4); + return 4; case 4096: - return (5); + return 5; case 8192: - return (6); + return 6; case 16384: - return (7); + return 7; } } static int bps_is_valid(uint16_t bps) { - int i; - - for (i = 0; i <= 8; i++) { + for (uint8_t i = 0; i <= 8; i++) { if (bps == (128 << i)) - return (1); + return 1; } - return (0); + return 0; } static int @@ -385,13 +383,13 @@ first_byte_is_valid(uint8_t first_byte) case 0x60: case 0xE9: case 0xEB: - return (1); + return 1; default: break; } - return (0); + return 0; } #define xdf_img_sector xdf_img_layout[current_xdft][!is_t0][sector] @@ -410,7 +408,7 @@ interleave(int sector, int skew, int track_spt) if (skewed_i & 1) adjusted_r += (adjust + add); - return (adjusted_r); + return adjusted_r; } static void @@ -418,7 +416,7 @@ write_back(int drive) { img_t *dev = img[drive]; int ssize = 128 << ((int) dev->sector_size); - int side, size; + int size; if (dev->f == NULL) return; @@ -428,7 +426,7 @@ write_back(int drive) if (fseek(dev->f, dev->base + (dev->track * dev->sectors * ssize * dev->sides), SEEK_SET) == -1) pclog("IMG write_back(): Error seeking to the beginning of the file\n"); - for (side = 0; side < dev->sides; side++) { + for (int side = 0; side < dev->sides; side++) { size = dev->sectors * ssize; if (fwrite(dev->track_data[side], 1, size, dev->f) != size) fatal("IMG write_back(): Error writing data\n"); @@ -485,7 +483,7 @@ format_conditions(int drive) temp = temp && (fdc_get_format_n(img_fdc) == dev->sector_size); temp = temp && (dev->xdf_type == 0); - return (temp); + return temp; } static void @@ -496,7 +494,16 @@ img_seek(int drive, int track) int current_xdft = dev->xdf_type - 1; int read_bytes = 0; uint8_t id[4] = { 0, 0, 0, 0 }; - int is_t0, sector, current_pos, img_pos, sr, sside, total, array_sector, buf_side, buf_pos; + int is_t0; + int sector; + int current_pos; + int img_pos; + int sr; + int sside; + int total; + int array_sector; + int buf_side; + int buf_pos; int ssize = 128 << ((int) dev->sector_size); uint32_t cur_pos = 0; @@ -647,7 +654,10 @@ img_load(int drive, char *fn) uint8_t bpb_mid; /* Media type ID. */ uint8_t bpb_sectors; uint8_t bpb_sides; - uint8_t cqm, ddi, fdf, fdi; + uint8_t cqm; + uint8_t ddi; + uint8_t fdf; + uint8_t fdi; uint16_t comment_len = 0; int16_t block_len = 0; uint32_t cur_pos = 0; @@ -661,7 +671,6 @@ img_load(int drive, char *fn) int temp_rate; int guess = 0; int size; - int i; ext = path_get_extension(fn); @@ -1152,7 +1161,7 @@ jump_if_fdf: temp_rate = 0xFF; } - for (i = 0; i < 6; i++) { + for (uint8_t i = 0; i < 6; i++) { if ((dev->sectors <= maximum_sectors[dev->sector_size][i]) || (dev->sectors == xdf_sectors[dev->sector_size][i])) { bit_rate_300 = bit_rates_300[i]; temp_rate = rates[i]; diff --git a/src/floppy/fdd_json.c b/src/floppy/fdd_json.c index aba7f1d33..4b8fafb23 100644 --- a/src/floppy/fdd_json.c +++ b/src/floppy/fdd_json.c @@ -125,10 +125,11 @@ static void handle(json_t *dev, char *name, char *str) { sector_t *sec = NULL; - uint32_t l, pat; + uint32_t l; + uint32_t pat; uint8_t *p; char *sp; - int i, s; + int s; /* Point to the currently selected sector. */ sec = &dev->sects[dev->track][dev->side][dev->dmf - 1]; @@ -163,7 +164,7 @@ handle(json_t *dev, char *name, char *str) sec->data = (uint8_t *) malloc(sec->size); p = sec->data; s = (sec->size / sizeof(uint32_t)); - for (i = 0; i < s; i++) { + for (int i = 0; i < s; i++) { l = pat; *p++ = (l & 0x000000ff); l >>= 8; @@ -207,18 +208,21 @@ unexpect(int c, int state, int level) static int load_image(json_t *dev) { - char buff[4096], name[32]; - int c, i, j, state, level; + char buff[4096]; + char name[32]; + int c; + int state; + int level; char *ptr; if (dev->f == NULL) { json_log("JSON: no file loaded!\n"); - return (0); + return 0; } /* Initialize. */ - for (i = 0; i < NTRACKS; i++) { - for (j = 0; j < NSIDES; j++) + for (uint16_t i = 0; i < NTRACKS; i++) { + for (uint8_t j = 0; j < NSIDES; j++) memset(dev->sects[i][j], 0x00, sizeof(sector_t)); } dev->track = dev->side = dev->dmf = 0; /* "dmf" is "sector#" */ @@ -375,7 +379,7 @@ load_image(json_t *dev) dev->tracks = dev->track; dev->sides = dev->side; - return (1); + return 1; } /* Seek the heads to a track, and prepare to read data from that track. */ @@ -384,9 +388,13 @@ json_seek(int drive, int track) { uint8_t id[4] = { 0, 0, 0, 0 }; json_t *dev = images[drive]; - int side, sector; - int rate, gap2, gap3, pos; - int ssize, rsec, asec; + int rate; + int gap2; + int gap3; + int pos; + int ssize; + int rsec; + int asec; if (dev->f == NULL) { json_log("JSON: seek: no file loaded!\n"); @@ -412,7 +420,7 @@ json_seek(int drive, int track) return; } - for (side = 0; side < dev->sides; side++) { + for (uint8_t side = 0; side < dev->sides; side++) { /* Get transfer rate for this side. */ rate = dev->track_flags & 0x07; if (!rate && (dev->track_flags & 0x20)) @@ -428,7 +436,7 @@ json_seek(int drive, int track) pos = d86f_prepare_pretrack(drive, side, 0); - for (sector = 0; sector < dev->spt[track][side]; sector++) { + for (uint8_t sector = 0; sector < dev->spt[track][side]; sector++) { rsec = dev->sects[track][side][sector].sector; asec = sector; @@ -473,7 +481,6 @@ static void set_sector(int drive, int side, uint8_t c, uint8_t h, uint8_t r, uint8_t n) { json_t *dev = images[drive]; - int i; dev->sector[side] = 0; @@ -485,7 +492,7 @@ set_sector(int drive, int side, uint8_t c, uint8_t h, uint8_t r, uint8_t n) dev->side = side; /* Now loop over all sector ID's on this side to find our sector. */ - for (i = 0; i < dev->spt[c][side]; i++) { + for (uint8_t i = 0; i < dev->spt[c][side]; i++) { if ((dev->sects[dev->track][side][i].track == c) && (dev->sects[dev->track][side][i].side == h) && (dev->sects[dev->track][side][i].sector == r) && (dev->sects[dev->track][side][i].size == n)) { dev->sector[side] = i; } @@ -514,7 +521,6 @@ json_load(int drive, char *fn) int temp_rate; sector_t *sec; json_t *dev; - int i; /* Just in case- remove ourselves from 86F. */ d86f_unregister(drive); @@ -571,7 +577,7 @@ json_load(int drive, char *fn) temp_rate = 0xff; sec = &dev->sects[0][0][0]; - for (i = 0; i < 6; i++) { + for (uint8_t i = 0; i < 6; i++) { if (dev->spt[0][0] > fdd_max_sectors[sec->size][i]) continue; @@ -667,7 +673,6 @@ void json_close(int drive) { json_t *dev = images[drive]; - int t, h, s; if (dev == NULL) return; @@ -676,10 +681,10 @@ json_close(int drive) d86f_unregister(drive); /* Release all the sector buffers. */ - for (t = 0; t < 256; t++) { - for (h = 0; h < 2; h++) { + for (uint16_t t = 0; t < 256; t++) { + for (uint8_t h = 0; h < 2; h++) { memset(dev->sects[t][h], 0x00, sizeof(sector_t)); - for (s = 0; s < 256; s++) { + for (uint16_t s = 0; s < 256; s++) { if (dev->sects[t][h][s].data != NULL) free(dev->sects[t][h][s].data); dev->sects[t][h][s].data = NULL; diff --git a/src/floppy/fdd_mfm.c b/src/floppy/fdd_mfm.c index 5196bcbe0..55c549150 100644 --- a/src/floppy/fdd_mfm.c +++ b/src/floppy/fdd_mfm.c @@ -103,9 +103,9 @@ static int get_track_index(int drive, int side, int track) { mfm_t *dev = mfm[drive]; - int i, ret = -1; + int ret = -1; - for (i = 0; i < dev->total_tracks; i++) { + for (int i = 0; i < dev->total_tracks; i++) { if ((dev->tracks[i].track_no == track) && (dev->tracks[i].side_no == side)) { ret = i; break; @@ -119,9 +119,9 @@ static int get_adv_track_index(int drive, int side, int track) { mfm_t *dev = mfm[drive]; - int i, ret = -1; + int ret = -1; - for (i = 0; i < dev->total_tracks; i++) { + for (int i = 0; i < dev->total_tracks; i++) { if ((dev->adv_tracks[i].track_no == track) && (dev->adv_tracks[i].side_no == side)) { ret = i; break; @@ -154,7 +154,8 @@ get_adv_track_bitrate(int drive, int side, int track, int *br, int *rpm) static void set_disk_flags(int drive) { - int br = 250, rpm = 300; + int br = 250; + int rpm = 300; mfm_t *dev = mfm[drive]; uint16_t temp_disk_flags = 0x1080; /* We ALWAYS claim to have extra bit cells, even if the actual amount is 0; Bit 12 = 1, bits 6, 5 = 0 - extra bit cells field specifies the entire @@ -203,7 +204,8 @@ set_side_flags(int drive, int side) { mfm_t *dev = mfm[drive]; uint16_t temp_side_flags = 0; - int br = 250, rpm = 300; + int br = 250; + int rpm = 300; if (dev->hdr.if_type & 0x80) get_adv_track_bitrate(drive, side, dev->cur_track, &br, &rpm); @@ -264,8 +266,10 @@ static uint32_t get_raw_size(int drive, int side) { mfm_t *dev = mfm[drive]; - int track_index, is_300_rpm; - int br = 250, rpm = 300; + int track_index; + int is_300_rpm; + int br = 250; + int rpm = 300; if (dev->hdr.if_type & 0x80) { track_index = get_adv_track_index(drive, side, dev->cur_track); @@ -319,8 +323,10 @@ void mfm_read_side(int drive, int side) { mfm_t *dev = mfm[drive]; - int track_index, track_size; - int track_bytes, ret; + int track_index; + int track_size; + int track_bytes; + int ret; if (dev->hdr.if_type & 0x80) track_index = get_adv_track_index(drive, side, dev->cur_track); @@ -382,7 +388,7 @@ mfm_load(int drive, char *fn) { mfm_t *dev; double dbr; - int i, size; + int size; writeprot[drive] = fwriteprot[drive] = 1; @@ -427,7 +433,7 @@ mfm_load(int drive, char *fn) dev->hdr.tracks_no >>= 1; dev->hdr.sides_no <<= 1; - for (i = 0; i < dev->total_tracks; i++) { + for (int i = 0; i < dev->total_tracks; i++) { if (dev->hdr.if_type & 0x80) { dev->adv_tracks[i].side_no <<= 1; dev->adv_tracks[i].side_no |= (dev->adv_tracks[i].track_no & 1); diff --git a/src/floppy/fdd_td0.c b/src/floppy/fdd_td0.c index bf2b643ff..56f594c0b 100644 --- a/src/floppy/fdd_td0.c +++ b/src/floppy/fdd_td0.c @@ -237,11 +237,11 @@ dsk_identify(int drive) fdd_image_read(drive, header, 0, 2); if (header[0] == 'T' && header[1] == 'D') - return (1); + return 1; else if (header[0] == 't' && header[1] == 'd') - return (1); + return 1; - return (0); + return 0; } static int @@ -259,7 +259,7 @@ state_data_read(td0dsk_t *state, uint8_t *buf, uint16_t size) fatal("TD0: Error reading data in state_data_read()\n"); state->fdd_file_offset += size; - return (size); + return size; } static int @@ -277,7 +277,7 @@ state_next_word(td0dsk_t *state) state->getlen += 8; } - return (0); + return 0; } /* get one bit */ @@ -293,9 +293,9 @@ state_GetBit(td0dsk_t *state) state->getbuf <<= 1; state->getlen--; if (i < 0) - return (1); + return 1; - return (0); + return 0; } /* get a byte */ @@ -305,7 +305,7 @@ state_GetByte(td0dsk_t *state) uint16_t i; if (state_next_word(state) != 0) - return (-1); + return -1; i = state->getbuf; state->getbuf <<= 8; @@ -319,7 +319,8 @@ state_GetByte(td0dsk_t *state) static void state_StartHuff(td0dsk_t *state) { - int i, j; + int i; + int j; for (i = 0; i < N_CHAR; i++) { state->freq[i] = 1; @@ -343,8 +344,11 @@ state_StartHuff(td0dsk_t *state) static void state_reconst(td0dsk_t *state) { - int16_t i, j, k; - uint16_t f, l; + int16_t i; + int16_t j; + int16_t k; + uint16_t f; + uint16_t l; /* halven cumulative freq for leaf nodes */ j = 0; @@ -385,7 +389,10 @@ state_reconst(td0dsk_t *state) static void state_update(td0dsk_t *state, int c) { - int i, j, k, l; + int i; + int j; + int k; + int l; if (state->freq[R] == MAX_FREQ) state_reconst(state); @@ -444,14 +451,16 @@ state_DecodeChar(td0dsk_t *state) state_update(state, c); - return (c); + return c; } static int16_t state_DecodePosition(td0dsk_t *state) { int16_t bit; - uint16_t i, j, c; + uint16_t i; + uint16_t j; + uint16_t c; /* decode upper 6 bits from given table */ if ((bit = state_GetByte(state)) < 0) @@ -476,15 +485,13 @@ state_DecodePosition(td0dsk_t *state) static void state_init_Decode(td0dsk_t *state) { - int i; - state->getbuf = 0; state->getlen = 0; state->tdctl.ibufcnt = state->tdctl.ibufndx = 0; /* input buffer is empty */ state->tdctl.bufcnt = 0; state_StartHuff(state); - for (i = 0; i < N - F; i++) + for (uint16_t i = 0; i < N - F; i++) state->text_buf[i] = ' '; state->tdctl.r = N - F; @@ -494,13 +501,14 @@ state_init_Decode(td0dsk_t *state) static int state_Decode(td0dsk_t *state, uint8_t *buf, int len) { - int16_t c, pos; + int16_t c; + int16_t pos; int count; /* was an unsigned long, seems unnecessary */ for (count = 0; count < len;) { if (state->tdctl.bufcnt == 0) { if ((c = state_DecodeChar(state)) < 0) - return (count); /* fatal error */ + return count; /* fatal error */ if (c < 256) { *(buf++) = c & 0xff; state->text_buf[state->tdctl.r++] = c & 0xff; @@ -508,7 +516,7 @@ state_Decode(td0dsk_t *state, uint8_t *buf, int len) count++; } else { if ((pos = state_DecodePosition(state)) < 0) - return (count); /* fatal error */ + return count; /* fatal error */ state->tdctl.bufpos = (state->tdctl.r - pos - 1) & (N - 1); state->tdctl.bufcnt = c - 255 + THRESHOLD; state->tdctl.bufndx = 0; @@ -530,7 +538,7 @@ state_Decode(td0dsk_t *state, uint8_t *buf, int len) } } - return (count); /* count == len, success */ + return count; /* count == len, success */ } static uint32_t @@ -578,7 +586,7 @@ get_raw_tsize(int side_flags, int slower_rpm) break; } - return (size); + return size; } static int @@ -586,15 +594,19 @@ td0_initialize(int drive) { td0_t *dev = td0[drive]; uint8_t header[12]; - int fm, head, track; + int fm; + int head; + int track; int track_count = 0; int head_count = 0; - int track_spt, track_spt_adjusted; + int track_spt; + int track_spt_adjusted; int offset = 0; int density = 0; int temp_rate = 0; uint32_t file_size; - uint16_t len, rep; + uint16_t len; + uint16_t rep; td0dsk_t disk_decode; uint8_t *hs; uint16_t size; @@ -606,12 +618,15 @@ td0_initialize(int drive) int32_t raw_tsize = 0; uint32_t minimum_gap3 = 0; uint32_t minimum_gap4 = 0; - int i, j, k; - int size_diff, gap_sum; + int i; + int j; + int k; + int size_diff; + int gap_sum; if (dev->f == NULL) { td0_log("TD0: Attempted to initialize without loading a file first\n"); - return (0); + return 0; } fseek(dev->f, 0, SEEK_END); @@ -619,12 +634,12 @@ td0_initialize(int drive) if (file_size < 12) { td0_log("TD0: File is too small to even contain the header\n"); - return (0); + return 0; } if (file_size > TD0_MAX_BUFSZ) { td0_log("TD0: File exceeds the maximum size\n"); - return (0); + return 0; } fseek(dev->f, 0, SEEK_SET); @@ -652,14 +667,14 @@ td0_initialize(int drive) if (track_spt == 255) { /* Empty file? */ td0_log("TD0: File has no tracks\n"); - return (0); + return 0; } density = (header[5] >> 1) & 3; if (density == 3) { td0_log("TD0: Unknown density\n"); - return (0); + return 0; } /* @@ -737,7 +752,7 @@ td0_initialize(int drive) size = 128 << hs[3]; if ((total_size + size) >= TD0_MAX_BUFSZ) { td0_log("TD0: Processed buffer overflow\n"); - return (0); + return 0; } if (hs[4] & 0x30) @@ -747,7 +762,7 @@ td0_initialize(int drive) switch (hs[8]) { default: td0_log("TD0: Image uses an unsupported sector data encoding: %i\n", hs[8]); - return (0); + return 0; case 0: memcpy(dbuf, &dev->imagebuf[offset], size); @@ -862,7 +877,7 @@ td0_initialize(int drive) td0_log("TD0: File loaded: %i tracks, %i sides, disk flags: %02X, side flags: %02X, %02X, GAP3 length: %02X\n", dev->tracks, dev->sides, dev->disk_flags, dev->current_side_flags[0], dev->current_side_flags[1], dev->gap3_len); - return (1); + return 1; } static uint16_t @@ -883,19 +898,19 @@ side_flags(int drive) side = fdd_get_head(drive); sflags = dev->current_side_flags[side]; - return (sflags); + return sflags; } static void set_sector(int drive, int side, uint8_t c, uint8_t h, uint8_t r, uint8_t n) { td0_t *dev = td0[drive]; - int i = 0, cyl = c; + int cyl = c; dev->current_sector_index[side] = 0; if (cyl != dev->track) return; - for (i = 0; i < dev->track_spt[cyl][side]; i++) { + for (uint8_t i = 0; i < dev->track_spt[cyl][side]; i++) { if ((dev->sects[cyl][side][i].track == c) && (dev->sects[cyl][side][i].head == h) && (dev->sects[cyl][side][i].sector == r) && (dev->sects[cyl][side][i].size == n)) { dev->current_sector_index[side] = i; } @@ -915,9 +930,14 @@ track_is_xdf(int drive, int side, int track) { td0_t *dev = td0[drive]; uint8_t id[4] = { 0, 0, 0, 0 }; - int i, effective_sectors, xdf_sectors; - int high_sectors, low_sectors; - int max_high_id, expected_high_count, expected_low_count; + int i; + int effective_sectors; + int xdf_sectors; + int high_sectors; + int low_sectors; + int max_high_id; + int expected_high_count; + int expected_low_count; effective_sectors = xdf_sectors = high_sectors = low_sectors = 0; @@ -976,23 +996,24 @@ track_is_xdf(int drive, int side, int track) if ((effective_sectors == 3) && (xdf_sectors == 3)) { dev->current_side_flags[side] = 0x28; - return (1); /* 5.25" 2HD XDF */ + return 1; /* 5.25" 2HD XDF */ } if ((effective_sectors == 4) && (xdf_sectors == 4)) { dev->current_side_flags[side] = 0x08; - return (2); /* 3.5" 2HD XDF */ + return 2; /* 3.5" 2HD XDF */ } } - return (0); + return 0; } static int track_is_interleave(int drive, int side, int track) { td0_t *dev = td0[drive]; - int i, effective_sectors; + int i; + int effective_sectors; int track_spt; effective_sectors = 0; @@ -1003,7 +1024,7 @@ track_is_interleave(int drive, int side, int track) track_spt = dev->track_spt[track][side]; if (track_spt != 21) - return (0); + return 0; for (i = 0; i < track_spt; i++) { if ((dev->sects[track][side][i].track == track) && (dev->sects[track][side][i].head == side) && (dev->sects[track][side][i].sector >= 1) && (dev->sects[track][side][i].sector <= track_spt) && (dev->sects[track][side][i].size == 2)) { @@ -1013,18 +1034,18 @@ track_is_interleave(int drive, int side, int track) } if (effective_sectors == track_spt) - return (1); + return 1; - return (0); + return 0; } static void td0_seek(int drive, int track) { td0_t *dev = td0[drive]; - int side; uint8_t id[4] = { 0, 0, 0, 0 }; - int sector, current_pos; + int sector; + int current_pos; int ssize = 512; int track_rate = 0; int track_gap2 = 22; @@ -1037,7 +1058,8 @@ td0_seek(int drive, int track) int ordered_pos = 0; int real_sector = 0; int actual_sector = 0; - int fm, sector_adjusted; + int fm; + int sector_adjusted; if (dev->f == NULL) return; @@ -1064,7 +1086,7 @@ td0_seek(int drive, int track) return; } - for (side = 0; side < dev->sides; side++) { + for (int side = 0; side < dev->sides; side++) { track_rate = dev->current_side_flags[side] & 7; /* Make sure 300 kbps @ 360 rpm is treated the same as 250 kbps @ 300 rpm. */ if (!track_rate && (dev->current_side_flags[side] & 0x20)) @@ -1234,7 +1256,6 @@ void td0_close(int drive) { td0_t *dev = td0[drive]; - int i, j, k; if (dev == NULL) return; @@ -1246,18 +1267,18 @@ td0_close(int drive) if (dev->processed_buf) free(dev->processed_buf); - for (i = 0; i < 256; i++) { - for (j = 0; j < 2; j++) { - for (k = 0; k < 256; k++) + for (uint16_t i = 0; i < 256; i++) { + for (uint8_t j = 0; j < 2; j++) { + for (uint16_t k = 0; k < 256; k++) dev->sects[i][j][k].data = NULL; } } - for (i = 0; i < 256; i++) { + for (uint16_t i = 0; i < 256; i++) { memset(dev->side_flags[i], 0, 4); memset(dev->track_in_file[i], 0, 2); memset(dev->calculated_gap3_lengths[i], 0, 2); - for (j = 0; j < 2; j++) + for (uint8_t j = 0; j < 2; j++) memset(dev->sects[i][j], 0, sizeof(td0_sector_t)); } diff --git a/src/floppy/fdi2raw.c b/src/floppy/fdi2raw.c index 810293264..0be984d8a 100644 --- a/src/floppy/fdi2raw.c +++ b/src/floppy/fdi2raw.c @@ -188,7 +188,8 @@ struct node { }; typedef struct node NODE; -static uint8_t temp, temp2; +static uint8_t temp; +static uint8_t temp2; static uint8_t * expand_tree(uint8_t *stream, NODE *node) @@ -280,8 +281,9 @@ sign_extend8(uint32_t v) static void fdi_decode(uint8_t *stream, int size, uint8_t *out) { - int i; - uint8_t sign_extend, sixteen_bit, sub_stream_shift; + uint8_t sign_extend; + uint8_t sixteen_bit; + uint8_t sub_stream_shift; NODE root; NODE *current_node; @@ -310,7 +312,7 @@ fdi_decode(uint8_t *stream, int size, uint8_t *out) /* sub-stream data decode */ temp2 = 0; - for (i = 0; i < size; i++) { + for (int i = 0; i < size; i++) { uint32_t v; uint8_t decode = 1; current_node = &root; @@ -462,8 +464,7 @@ bit_dedrop(FDI *fdi) static void byte_add(FDI *fdi, uint8_t v) { - int i; - for (i = 7; i >= 0; i--) + for (int8_t i = 7; i >= 0; i--) bit_add(fdi, v & (1 << i)); } /* add one word */ @@ -477,24 +478,21 @@ word_add(FDI *fdi, uint16_t v) static void byte_mfm_add(FDI *fdi, uint8_t v) { - int i; - for (i = 7; i >= 0; i--) + for (int8_t i = 7; i >= 0; i--) bit_mfm_add(fdi, v & (1 << i)); } /* add multiple bytes and mfm encode them */ static void bytes_mfm_add(FDI *fdi, uint8_t v, int len) { - int i; - for (i = 0; i < len; i++) + for (int i = 0; i < len; i++) byte_mfm_add(fdi, v); } /* add one mfm encoded word and re-mfm encode it */ static void word_post_mfm_add(FDI *fdi, uint16_t v) { - int i; - for (i = 14; i >= 0; i -= 2) + for (int8_t i = 14; i >= 0; i -= 2) bit_mfm_add(fdi, v & (1 << i)); } @@ -557,7 +555,8 @@ s09(FDI *fdi) static void s0a(FDI *fdi) { - int i, bits = (fdi->track_src[0] << 8) | fdi->track_src[1]; + int i; + int bits = (fdi->track_src[0] << 8) | fdi->track_src[1]; uint8_t b; fdi->track_src += 2; fdi2raw_log("s0a:bits=%d,data=%s", bits, datalog(fdi->track_src, (bits + 7) / 8)); @@ -578,7 +577,8 @@ s0a(FDI *fdi) static void s0b(FDI *fdi) { - int i, bits = ((fdi->track_src[0] << 8) | fdi->track_src[1]) + 65536; + int i; + int bits = ((fdi->track_src[0] << 8) | fdi->track_src[1]) + 65536; uint8_t b; fdi->track_src += 2; fdi2raw_log("s0b:bits=%d,data=%s", bits, datalog(fdi->track_src, (bits + 7) / 8)); @@ -599,7 +599,8 @@ s0b(FDI *fdi) static void s0c(FDI *fdi) { - int i, bits = (fdi->track_src[0] << 8) | fdi->track_src[1]; + int i; + int bits = (fdi->track_src[0] << 8) | fdi->track_src[1]; uint8_t b; fdi->track_src += 2; bit_drop_next(fdi); @@ -621,7 +622,8 @@ s0c(FDI *fdi) static void s0d(FDI *fdi) { - int i, bits = ((fdi->track_src[0] << 8) | fdi->track_src[1]) + 65536; + int i; + int bits = ((fdi->track_src[0] << 8) | fdi->track_src[1]) + 65536; uint8_t b; fdi->track_src += 2; bit_drop_next(fdi); @@ -854,10 +856,11 @@ static void amiga_data(FDI *fdi, uint8_t *secbuf) { uint16_t mfmbuf[4 + 512]; - uint32_t dodd, deven, dck; - int i; + uint32_t dodd; + uint32_t deven; + uint32_t dck; - for (i = 0; i < 512; i += 4) { + for (uint16_t i = 0; i < 512; i += 4) { deven = ((secbuf[i + 0] << 24) | (secbuf[i + 1] << 16) | (secbuf[i + 2] << 8) | (secbuf[i + 3])); dodd = deven >> 1; @@ -869,7 +872,7 @@ amiga_data(FDI *fdi, uint8_t *secbuf) mfmbuf[(i >> 1) + 256 + 5] = (uint16_t) deven; } dck = 0; - for (i = 4; i < 4 + 512; i += 2) + for (uint32_t i = 4; i < 4 + 512; i += 2) dck ^= (mfmbuf[i] << 16) | mfmbuf[i + 1]; deven = dodd = dck; dodd >>= 1; @@ -880,17 +883,19 @@ amiga_data(FDI *fdi, uint8_t *secbuf) mfmbuf[2] = (uint16_t) (deven >> 16); mfmbuf[3] = (uint16_t) deven; - for (i = 0; i < 4 + 512; i++) + for (uint32_t i = 0; i < 4 + 512; i++) word_post_mfm_add(fdi, mfmbuf[i]); } static void amiga_sector_header(FDI *fdi, uint8_t *header, uint8_t *data, int sector, int untilgap) { - uint8_t headerbuf[4], databuf[16]; - uint32_t deven, dodd, hck; + uint8_t headerbuf[4]; + uint8_t databuf[16]; + uint32_t deven; + uint32_t dodd; + uint32_t hck; uint16_t mfmbuf[24]; - int i; byte_mfm_add(fdi, 0); byte_mfm_add(fdi, 0); @@ -918,7 +923,7 @@ amiga_sector_header(FDI *fdi, uint8_t *header, uint8_t *data, int sector, int un mfmbuf[1] = (uint16_t) dodd; mfmbuf[2] = (uint16_t) (deven >> 16); mfmbuf[3] = (uint16_t) deven; - for (i = 0; i < 16; i += 4) { + for (uint8_t i = 0; i < 16; i += 4) { deven = ((databuf[i] << 24) | (databuf[i + 1] << 16) | (databuf[i + 2] << 8) | (databuf[i + 3])); dodd = deven >> 1; @@ -930,7 +935,7 @@ amiga_sector_header(FDI *fdi, uint8_t *header, uint8_t *data, int sector, int un mfmbuf[(i >> 1) + 8 + 5] = (uint16_t) deven; } hck = 0; - for (i = 0; i < 4 + 16; i += 2) + for (uint32_t i = 0; i < 4 + 16; i += 2) hck ^= (mfmbuf[i] << 16) | mfmbuf[i + 1]; deven = dodd = hck; dodd >>= 1; @@ -941,7 +946,7 @@ amiga_sector_header(FDI *fdi, uint8_t *header, uint8_t *data, int sector, int un mfmbuf[22] = (uint16_t) (deven >> 16); mfmbuf[23] = (uint16_t) deven; - for (i = 0; i < 4 + 16 + 4; i++) + for (uint32_t i = 0; i < 4 + 16 + 4; i++) word_post_mfm_add(fdi, mfmbuf[i]); } @@ -1025,11 +1030,10 @@ static uint16_t ibm_crc(uint8_t byte, int reset) { static uint16_t crc; - int i; if (reset) crc = 0xcdb4; - for (i = 0; i < 8; i++) { + for (uint8_t i = 0; i < 8; i++) { if (crc & 0x8000) { crc <<= 1; if (!(byte & 0x80)) @@ -1047,7 +1051,6 @@ ibm_crc(uint8_t byte, int reset) static void ibm_data(FDI *fdi, uint8_t *data, uint8_t *crc, int len) { - int i; uint8_t crcbuf[2]; uint16_t crcv = 0; @@ -1056,7 +1059,7 @@ ibm_data(FDI *fdi, uint8_t *data, uint8_t *crc, int len) word_add(fdi, 0x4489); byte_mfm_add(fdi, 0xfb); ibm_crc(0xfb, 1); - for (i = 0; i < len; i++) { + for (int i = 0; i < len; i++) { byte_mfm_add(fdi, data[i]); crcv = ibm_crc(data[i], 0); } @@ -1075,7 +1078,6 @@ ibm_sector_header(FDI *fdi, uint8_t *data, uint8_t *crc, int secnum, int pre) uint8_t secbuf[5]; uint8_t crcbuf[2]; uint16_t crcv; - int i; if (pre) bytes_mfm_add(fdi, 0, 12); @@ -1103,7 +1105,7 @@ ibm_sector_header(FDI *fdi, uint8_t *data, uint8_t *crc, int secnum, int pre) crcbuf[1] = (uint8_t) crcv; } /* data */ - for (i = 0; i < 5; i++) + for (uint8_t i = 0; i < 5; i++) byte_mfm_add(fdi, secbuf[i]); /* crc */ byte_mfm_add(fdi, crcbuf[0]); @@ -1263,11 +1265,9 @@ static decode_described_track_func decode_sectors_described_track[] = { static void track_amiga(struct fdi *fdi, int first_sector, int max_sector) { - int i; - bit_add(fdi, 0); bit_drop_next(fdi); - for (i = 0; i < max_sector; i++) { + for (int i = 0; i < max_sector; i++) { amiga_sector_header(fdi, 0, 0, first_sector, max_sector - i); amiga_data(fdi, fdi->track_src + first_sector * 512); first_sector++; @@ -1279,7 +1279,7 @@ track_amiga(struct fdi *fdi, int first_sector, int max_sector) static void track_atari_st(struct fdi *fdi, int max_sector) { - int i, gap3 = 0; + int gap3 = 0; uint8_t *p = fdi->track_src; switch (max_sector) { @@ -1291,7 +1291,7 @@ track_atari_st(struct fdi *fdi, int max_sector) break; } s15(fdi); - for (i = 0; i < max_sector; i++) { + for (int i = 0; i < max_sector; i++) { byte_mfm_add(fdi, 0x4e); byte_mfm_add(fdi, 0x4e); ibm_sector_header(fdi, 0, 0, fdi->current_track, 1); @@ -1304,7 +1304,7 @@ track_atari_st(struct fdi *fdi, int max_sector) static void track_pc(struct fdi *fdi, int max_sector) { - int i, gap3; + int gap3; uint8_t *p = fdi->track_src; switch (max_sector) { @@ -1319,7 +1319,7 @@ track_pc(struct fdi *fdi, int max_sector) break; } s11(fdi); - for (i = 0; i < max_sector; i++) { + for (int i = 0; i < max_sector; i++) { byte_mfm_add(fdi, 0x4e); byte_mfm_add(fdi, 0x4e); ibm_sector_header(fdi, 0, 0, fdi->current_track, 1); @@ -1402,9 +1402,15 @@ static decode_normal_track_func decode_normal_track[] = { static void fix_mfm_sync(FDI *fdi) { - int i, pos, off1, off2, off3, mask1, mask2, mask3; + int pos; + int off1; + int off2; + int off3; + int mask1; + int mask2; + int mask3; - for (i = 0; i < fdi->mfmsync_offset; i++) { + for (int i = 0; i < fdi->mfmsync_offset; i++) { pos = fdi->mfmsync_buffer[i]; off1 = (pos - 1) >> 3; off2 = (pos + 1) >> 3; @@ -1464,7 +1470,7 @@ fdi_decompress(int pulses, uint8_t *sizep, uint8_t *src, int *dofree) uint32_t *dst2; int len = size & 0x3fffff; uint8_t *dst; - int mode = size >> 22, i; + int mode = size >> 22; *dofree = 0; if (mode == 0 && pulses * 2 > len) @@ -1472,7 +1478,7 @@ fdi_decompress(int pulses, uint8_t *sizep, uint8_t *src, int *dofree) if (mode == 0) { dst2 = (uint32_t *) src; dst = src; - for (i = 0; i < pulses; i++) { + for (int i = 0; i < pulses; i++) { *dst2++ = get_u32(src); src += 4; } @@ -1526,9 +1532,7 @@ static int totaldiv; static void init_array(uint32_t standard_MFM_2_bit_cell_size, int nb_of_bits) { - int i; - - for (i = 0; i < FDI_MAX_ARRAY; i++) { + for (uint8_t i = 0; i < FDI_MAX_ARRAY; i++) { psarray[i].size = standard_MFM_2_bit_cell_size; /* That is (total track length / 50000) for Amiga double density */ total += psarray[i].size; psarray[i].number_of_bits = nb_of_bits; @@ -1672,11 +1676,18 @@ fdi2_decode(FDI *fdi, uint32_t totalavg, uint32_t *avgp, uint32_t *minp, uint32_ uint32_t adjusted_pulse; uint32_t standard_MFM_2_bit_cell_size = totalavg / 50000; uint32_t standard_MFM_8_bit_cell_size = totalavg / 12500; - int real_size, i, j, nexti, eodat, outstep, randval; + int real_size; + int i; + int j; + int nexti; + int eodat; + int outstep; + int randval; int indexoffset = *indexoffsetp; uint8_t *d = fdi->track_dst_buffer; uint16_t *pt = fdi->track_dst_buffer_timing; - uint32_t ref_pulse, pulse; + uint32_t ref_pulse; + uint32_t pulse; int32_t jitter; /* detects a long-enough stable pulse coming just after another stable pulse */ @@ -1714,7 +1725,9 @@ fdi2_decode(FDI *fdi, uint32_t totalavg, uint32_t *avgp, uint32_t *minp, uint32_ /* gets the next long-enough pulse (this may require more than one pulse) */ pulse = 0; while (pulse < ((avg_size / 4) - (avg_size / 16))) { - uint32_t avg_pulse, min_pulse, max_pulse; + uint32_t avg_pulse; + uint32_t min_pulse; + uint32_t max_pulse; i++; if (i >= pulses) i = 0; @@ -1742,7 +1755,7 @@ fdi2_decode(FDI *fdi, uint32_t totalavg, uint32_t *avgp, uint32_t *minp, uint32_ randval = rand(); if (randval < (RAND_MAX / 2)) { if (randval > (RAND_MAX / 4)) { - if (randval <= (((3LL * (uint64_t) RAND_MAX) / 8))) + if (randval <= ((3LL * (uint64_t) RAND_MAX) / 8)) randval = (2 * randval) - (RAND_MAX / 4); else randval = (4 * randval) - RAND_MAX; @@ -1751,7 +1764,7 @@ fdi2_decode(FDI *fdi, uint32_t totalavg, uint32_t *avgp, uint32_t *minp, uint32_ } else { randval -= RAND_MAX / 2; if (randval > (RAND_MAX / 4)) { - if (randval <= (((3LL * (uint64_t) RAND_MAX) / 8))) + if (randval <= ((3LL * (uint64_t) RAND_MAX) / 8)) randval = (2 * randval) - (RAND_MAX / 4); else randval = (4 * randval) - RAND_MAX; @@ -1777,7 +1790,7 @@ fdi2_decode(FDI *fdi, uint32_t totalavg, uint32_t *avgp, uint32_t *minp, uint32_ randval = rand(); if (randval < (RAND_MAX / 2)) { if (randval > (RAND_MAX / 4)) { - if (randval <= (((3LL * (uint64_t) RAND_MAX) / 8))) + if (randval <= ((3LL * (uint64_t) RAND_MAX) / 8)) randval = (2 * randval) - (RAND_MAX / 4); else randval = (4 * randval) - RAND_MAX; @@ -1786,7 +1799,7 @@ fdi2_decode(FDI *fdi, uint32_t totalavg, uint32_t *avgp, uint32_t *minp, uint32_ } else { randval -= RAND_MAX / 2; if (randval > (RAND_MAX / 4)) { - if (randval <= (((3LL * (uint64_t) RAND_MAX) / 8))) + if (randval <= ((3LL * (uint64_t) RAND_MAX) / 8)) randval = (2 * randval) - (RAND_MAX / 4); else randval = (4 * randval) - RAND_MAX; @@ -1899,14 +1912,14 @@ fdi2_decode(FDI *fdi, uint32_t totalavg, uint32_t *avgp, uint32_t *minp, uint32_ static void fdi2_celltiming(FDI *fdi, uint32_t totalavg, int bitoffset, uint16_t *out) { - uint16_t *pt2, *pt; + uint16_t *pt2; + uint16_t *pt; double avg_bit_len; - int i; avg_bit_len = (double) totalavg / (double) bitoffset; pt2 = fdi->track_dst_buffer_timing; pt = out; - for (i = 0; i < bitoffset / 8; i++) { + for (int i = 0; i < bitoffset / 8; i++) { double v = (pt2[0] + pt2[1] + pt2[2] + pt2[3] + pt2[4] + pt2[5] + pt2[6] + pt2[7]) / 8.0; v = 1000.0 * v / avg_bit_len; *pt++ = (uint16_t) v; @@ -1921,12 +1934,25 @@ decode_lowlevel_track(FDI *fdi, int track, struct fdi_cache *cache) { uint8_t *p1; uint32_t *p2; - uint32_t *avgp, *minp = 0, *maxp = 0; + uint32_t *avgp; + uint32_t *minp = 0; + uint32_t *maxp = 0; uint8_t *idxp = 0; - uint32_t maxidx, totalavg, weakbits; - int i, j, len, pulses, indexoffset; - int avg_free, min_free = 0, max_free = 0, idx_free; - int idx_off1 = 0, idx_off2 = 0, idx_off3 = 0; + uint32_t maxidx; + uint32_t totalavg; + uint32_t weakbits; + int i; + int j; + int len; + int pulses; + int indexoffset; + int avg_free; + int min_free = 0; + int max_free = 0; + int idx_free; + int idx_off1 = 0; + int idx_off2 = 0; + int idx_off3 = 0; p1 = fdi->track_src; pulses = get_u32(p1); @@ -2056,13 +2082,11 @@ static int bit_rate_table[16] = { 125, 150, 250, 300, 500, 1000 }; void fdi2raw_header_free(FDI *fdi) { - int i; - fdi_free(fdi->mfmsync_buffer); fdi_free(fdi->track_src_buffer); fdi_free(fdi->track_dst_buffer); fdi_free(fdi->track_dst_buffer_timing); - for (i = 0; i < MAX_TRACKS; i++) { + for (uint8_t i = 0; i < MAX_TRACKS; i++) { struct fdi_cache *c = &fdi->cache[i]; if (c->idx_free) fdi_free(c->idxp); @@ -2130,8 +2154,11 @@ fdi2raw_get_tpi(FDI *fdi) FDI * fdi2raw_header(FILE *f) { - long i, offset, oldseek; - uint8_t type, size; + long i; + long offset; + long oldseek; + uint8_t type; + uint8_t size; FDI *fdi; fdi2raw_log("ALLOC: memory allocated %d\n", fdi_allocated); @@ -2204,7 +2231,8 @@ static int fdi2raw_loadrevolution_2(FDI *fdi, uint16_t *mfmbuf, uint16_t *tracktiming, int track, int *tracklength, int *indexoffsetp, int *multirev, int mfm) { struct fdi_cache *cache = &fdi->cache[track]; - int len, i, idx; + int len; + int idx; memset(fdi->track_dst_buffer, 0, MAX_DST_BUFFER); idx = cache->indexoffset; @@ -2218,7 +2246,7 @@ fdi2raw_loadrevolution_2(FDI *fdi, uint16_t *mfmbuf, uint16_t *tracktiming, int *multirev = 1; *tracklength = len; - for (i = 0; i < (len + 15) / (2 * 8); i++) { + for (int i = 0; i < (len + 15) / (2 * 8); i++) { uint8_t *data = fdi->track_dst_buffer + i * 2; *mfmbuf++ = 256 * *data + *(data + 1); } @@ -2239,7 +2267,7 @@ int fdi2raw_loadtrack(FDI *fdi, uint16_t *mfmbuf, uint16_t *tracktiming, int track, int *tracklength, int *indexoffsetp, int *multirev, int mfm) { uint8_t *p; - int outlen, i; + int outlen; struct fdi_cache *cache = &fdi->cache[track]; track ^= fdi->reversed_side; @@ -2285,7 +2313,7 @@ fdi2raw_loadtrack(FDI *fdi, uint16_t *mfmbuf, uint16_t *tracktiming, int track, outlen = handle_sectors_described_track(fdi); - } else if ((fdi->track_type & 0xf0)) { + } else if (fdi->track_type & 0xf0) { zxx(fdi); outlen = -1; @@ -2309,7 +2337,7 @@ fdi2raw_loadtrack(FDI *fdi, uint16_t *mfmbuf, uint16_t *tracktiming, int track, if (cache->lowlevel) return fdi2raw_loadrevolution_2(fdi, mfmbuf, tracktiming, track, tracklength, indexoffsetp, multirev, mfm); *tracklength = fdi->out; - for (i = 0; i < ((*tracklength) + 15) / (2 * 8); i++) { + for (int i = 0; i < ((*tracklength) + 15) / (2 * 8); i++) { uint8_t *data = fdi->track_dst_buffer + i * 2; *mfmbuf++ = 256 * *data + *(data + 1); } diff --git a/src/include/86box/hdd.h b/src/include/86box/hdd.h index 58fff9ffd..1508939ba 100644 --- a/src/include/86box/hdd.h +++ b/src/include/86box/hdd.h @@ -154,8 +154,8 @@ typedef struct { void *priv; - char fn[1024], /* Name of current image file */ - prev_fn[1024]; /* Name of previous image file */ + char fn[1024]; /* Name of current image file */ + char vhd_parent[1041]; /* Differential VHD parent file */ uint32_t res0, pad1, base, @@ -176,6 +176,7 @@ typedef struct { uint32_t cur_addr; uint32_t speed_preset; + uint32_t vhd_blocksize; double avg_rotation_lat_usec; double full_stroke_usec; diff --git a/src/include/86box/language.h b/src/include/86box/language.h index e3ffd1db9..ff400fe84 100644 --- a/src/include/86box/language.h +++ b/src/include/86box/language.h @@ -163,6 +163,8 @@ # define IDS_DYNAREC IDS_2163 #endif #define IDS_2166 2166 // "Video card #2 ""%hs"" is not..." +#define IDS_2167 2167 // "Network driver initialization failed" +#define IDS_2168 2168 // "The network configuration will be switched to the null driver" #define IDS_4096 4096 // "Hard disk (%s)" #define IDS_4097 4097 // "%01i:%01i" @@ -271,7 +273,7 @@ #define IDS_LANG_ENUS IDS_7168 -#define STR_NUM_2048 118 +#define STR_NUM_2048 120 // UNUSED: #define STR_NUM_3072 11 #define STR_NUM_4096 40 #define STR_NUM_4352 6 diff --git a/src/include/86box/network.h b/src/include/86box/network.h index 3b5be7e76..2684ed1c4 100644 --- a/src/include/86box/network.h +++ b/src/include/86box/network.h @@ -64,6 +64,9 @@ #define NET_PERIOD_10M 0.8 #define NET_PERIOD_100M 0.08 +/* Error buffers for network driver init */ +#define NET_DRV_ERRBUF_SIZE 384 + enum { NET_LINK_DOWN = (1 << 1), NET_LINK_TEMP_DOWN = (1 << 2), @@ -118,7 +121,7 @@ typedef struct _netcard_t netcard_t; typedef struct netdrv_t { void (*notify_in)(void *priv); - void *(*init)(const netcard_t *card, const uint8_t *mac_addr, void *priv); + void *(*init)(const netcard_t *card, const uint8_t *mac_addr, void *priv, char *netdrv_errbuf); void (*close)(void *priv); void *priv; } netdrv_t; diff --git a/src/include/86box/pit.h b/src/include/86box/pit.h index 3f682b67d..a9d114d8e 100644 --- a/src/include/86box/pit.h +++ b/src/include/86box/pit.h @@ -23,7 +23,7 @@ typedef struct { uint8_t m, ctrl, read_status, latch, s1_det, l_det, - bcd, pad; + bcd, incomplete; uint16_t rl; diff --git a/src/mem/i2c_eeprom.c b/src/mem/i2c_eeprom.c index 22b7154d6..e29d16139 100644 --- a/src/mem/i2c_eeprom.c +++ b/src/mem/i2c_eeprom.c @@ -117,7 +117,7 @@ uint8_t log2i(uint32_t i) { uint8_t ret = 0; - while ((i >>= 1)) + while (i >>= 1) ret++; return ret; } diff --git a/src/mem/intel_flash.c b/src/mem/intel_flash.c index f06b2426d..af7a71eea 100644 --- a/src/mem/intel_flash.c +++ b/src/mem/intel_flash.c @@ -282,8 +282,9 @@ flash_writel(uint32_t addr, uint32_t val, void *p) static void intel_flash_add_mappings(flash_t *dev) { - int max = 2, i = 0; - uint32_t base, fbase; + int max = 2; + uint32_t base; + uint32_t fbase; uint32_t sub = 0x20000; if (biosmask == 0x7ffff) { @@ -294,7 +295,7 @@ intel_flash_add_mappings(flash_t *dev) max = 4; } - for (i = 0; i < max; i++) { + for (int i = 0; i < max; i++) { if (biosmask == 0x7ffff) base = 0x80000 + (i << 16); else if (biosmask == 0x3ffff) diff --git a/src/mem/rom.c b/src/mem/rom.c index 25ca1db71..80881c723 100644 --- a/src/mem/rom.c +++ b/src/mem/rom.c @@ -90,12 +90,11 @@ FILE * rom_fopen(const char *fn, char *mode) { char temp[1024]; - rom_path_t *rom_path; FILE *fp = NULL; if (strstr(fn, "roms/") == fn) { /* Relative path */ - for (rom_path = &rom_paths; rom_path != NULL; rom_path = rom_path->next) { + for (rom_path_t *rom_path = &rom_paths; rom_path != NULL; rom_path = rom_path->next) { path_append_filename(temp, rom_path->path, fn + 5); if ((fp = plat_fopen(temp, mode)) != NULL) { @@ -114,11 +113,10 @@ int rom_getfile(char *fn, char *s, int size) { char temp[1024]; - rom_path_t *rom_path; if (strstr(fn, "roms/") == fn) { /* Relative path */ - for (rom_path = &rom_paths; rom_path != NULL; rom_path = rom_path->next) { + for (rom_path_t *rom_path = &rom_paths; rom_path != NULL; rom_path = rom_path->next) { path_append_filename(temp, rom_path->path, fn + 5); if (rom_present(temp)) { @@ -147,10 +145,10 @@ rom_present(char *fn) f = rom_fopen(fn, "rb"); if (f != NULL) { (void) fclose(f); - return (1); + return 1; } - return (0); + return 0; } uint8_t @@ -212,7 +210,7 @@ rom_load_linear_oddeven(const char *fn, uint32_t addr, int sz, int off, uint8_t if (f == NULL) { rom_log("ROM: image '%s' not found\n", fn); - return (0); + return 0; } /* Make sure we only look at the base-256K offset. */ @@ -236,7 +234,7 @@ rom_load_linear_oddeven(const char *fn, uint32_t addr, int sz, int off, uint8_t (void) fclose(f); - return (1); + return 1; } /* Load a ROM BIOS from its chips, interleaved mode. */ @@ -247,7 +245,7 @@ rom_load_linear(const char *fn, uint32_t addr, int sz, int off, uint8_t *ptr) if (f == NULL) { rom_log("ROM: image '%s' not found\n", fn); - return (0); + return 0; } /* Make sure we only look at the base-256K offset. */ @@ -265,7 +263,7 @@ rom_load_linear(const char *fn, uint32_t addr, int sz, int off, uint8_t *ptr) (void) fclose(f); - return (1); + return 1; } /* Load a ROM BIOS from its chips, linear mode with high bit flipped. */ @@ -276,7 +274,7 @@ rom_load_linear_inverted(const char *fn, uint32_t addr, int sz, int off, uint8_t if (f == NULL) { rom_log("ROM: image '%s' not found\n", fn); - return (0); + return 0; } /* Make sure we only look at the base-256K offset. */ @@ -289,7 +287,7 @@ rom_load_linear_inverted(const char *fn, uint32_t addr, int sz, int off, uint8_t (void) fseek(f, 0, SEEK_END); if (ftell(f) < sz) { (void) fclose(f); - return (0); + return 0; } if (ptr != NULL) { @@ -303,7 +301,7 @@ rom_load_linear_inverted(const char *fn, uint32_t addr, int sz, int off, uint8_t (void) fclose(f); - return (1); + return 1; } /* Load a ROM BIOS from its chips, interleaved mode. */ @@ -312,7 +310,6 @@ rom_load_interleaved(const char *fnl, const char *fnh, uint32_t addr, int sz, in { FILE *fl = rom_fopen(fnl, "rb"); FILE *fh = rom_fopen(fnh, "rb"); - int c; if (fl == NULL || fh == NULL) { if (fl == NULL) @@ -324,7 +321,7 @@ rom_load_interleaved(const char *fnl, const char *fnh, uint32_t addr, int sz, in else (void) fclose(fh); - return (0); + return 0; } /* Make sure we only look at the base-256K offset. */ @@ -337,7 +334,7 @@ rom_load_interleaved(const char *fnl, const char *fnh, uint32_t addr, int sz, in if (ptr != NULL) { (void) fseek(fl, off, SEEK_SET); (void) fseek(fh, off, SEEK_SET); - for (c = 0; c < sz; c += 2) { + for (int c = 0; c < sz; c += 2) { ptr[addr + c] = fgetc(fl) & 0xff; ptr[addr + c + 1] = fgetc(fh) & 0xff; } @@ -346,7 +343,7 @@ rom_load_interleaved(const char *fnl, const char *fnh, uint32_t addr, int sz, in (void) fclose(fh); (void) fclose(fl); - return (1); + return 1; } static int @@ -428,8 +425,10 @@ bios_readl(uint32_t addr, void *priv) static void bios_add(void) { - int temp_cpu_type, temp_cpu_16bitbus = 1; - int temp_is286 = 0, temp_is6117 = 0; + int temp_cpu_type; + int temp_cpu_16bitbus = 1; + int temp_is286 = 0; + int temp_is6117 = 0; if (/*AT && */ cpu_s) { temp_cpu_type = cpu_s->cpu_type; @@ -482,7 +481,7 @@ bios_load(const char *fn1, const char *fn2, uint32_t addr, int sz, int off, int { uint8_t ret = 0; uint8_t *ptr = NULL; - int i, old_sz = sz; + int old_sz = sz; /* f0000, 65536 = prepare 64k rom starting at f0000, load 64k bios at 0000 @@ -512,7 +511,7 @@ bios_load(const char *fn1, const char *fn2, uint32_t addr, int sz, int off, int if (!bios_only && (flags & FLAG_REP) && (old_sz >= 65536) && (sz < old_sz)) { old_sz /= sz; - for (i = 0; i < (old_sz - 1); i++) { + for (int i = 0; i < (old_sz - 1); i++) { rom_log("Copying ptr[%08X] to ptr[%08X]\n", addr - biosaddr, i * sz); memcpy(&(ptr[i * sz]), &(ptr[addr - biosaddr]), sz); } @@ -591,7 +590,7 @@ rom_init(rom_t *rom, const char *fn, uint32_t addr, int sz, int mask, int off, u NULL, NULL, NULL, rom->rom, flags | MEM_MAPPING_ROM_WS, rom); - return (0); + return 0; } int @@ -620,7 +619,7 @@ rom_init_oddeven(rom_t *rom, const char *fn, uint32_t addr, int sz, int mask, in NULL, NULL, NULL, rom->rom, flags | MEM_MAPPING_ROM_WS, rom); - return (0); + return 0; } int @@ -647,5 +646,5 @@ rom_init_interleaved(rom_t *rom, const char *fnl, const char *fnh, uint32_t addr NULL, NULL, NULL, rom->rom, flags | MEM_MAPPING_ROM_WS, rom); - return (0); + return 0; } diff --git a/src/mem/smram.c b/src/mem/smram.c index 6057f0a3c..7a1fbb664 100644 --- a/src/mem/smram.c +++ b/src/mem/smram.c @@ -29,7 +29,8 @@ #include <86box/mem.h> #include <86box/smram.h> -static smram_t *base_smram, *last_smram; +static smram_t *base_smram; +static smram_t *last_smram; static uint8_t use_separate_smram = 0; static uint8_t smram[0x40000]; @@ -135,7 +136,8 @@ smram_writel(uint32_t addr, uint32_t val, void *priv) void smram_backup_all(void) { - smram_t *temp_smram = base_smram, *next; + smram_t *temp_smram = base_smram; + smram_t *next; while (temp_smram != NULL) { temp_smram->old_host_base = temp_smram->host_base; @@ -150,7 +152,8 @@ smram_backup_all(void) void smram_recalc_all(int ret) { - smram_t *temp_smram = base_smram, *next; + smram_t *temp_smram = base_smram; + smram_t *next; if (base_smram == NULL) return; @@ -316,7 +319,8 @@ smram_disable(smram_t *smr) void smram_disable_all(void) { - smram_t *temp_smram = base_smram, *next; + smram_t *temp_smram = base_smram; + smram_t *next; while (temp_smram != NULL) { smram_disable(temp_smram); @@ -339,7 +343,7 @@ smram_enable_ex(smram_t *smr, uint32_t host_base, uint32_t ram_base, uint32_t si if ((size != 0x00000000) && (flags_normal || flags_smm)) { smr->host_base = host_base; - smr->ram_base = ram_base, + smr->ram_base = ram_base; smr->size = size; mem_mapping_set_addr(&(smr->mapping), smr->host_base, smr->size); diff --git a/src/mem/spd.c b/src/mem/spd.c index b1f2b5ecd..c39a3bffd 100644 --- a/src/mem/spd.c +++ b/src/mem/spd.c @@ -92,7 +92,9 @@ comp_ui16_rev(const void *elem1, const void *elem2) void spd_populate(uint16_t *rows, uint8_t slot_count, uint16_t total_size, uint16_t min_module_size, uint16_t max_module_size, uint8_t enable_asym) { - uint8_t row, next_empty_row, split, i; + uint8_t row; + uint8_t next_empty_row; + uint8_t split; uint16_t asym; /* Populate rows with modules in power-of-2 capacities. */ @@ -138,7 +140,7 @@ spd_populate(uint16_t *rows, uint8_t slot_count, uint16_t total_size, uint16_t m /* Find next empty row. */ next_empty_row = 0; - for (i = row + 1; i < slot_count && !next_empty_row; i++) { + for (uint8_t i = row + 1; i < slot_count && !next_empty_row; i++) { if (!rows[i]) next_empty_row = i; } @@ -176,8 +178,13 @@ spd_write_part_no(char *part_no, char *type, uint16_t size) void spd_register(uint8_t ram_type, uint8_t slot_mask, uint16_t max_module_size) { - uint8_t slot, slot_count, row, i; - uint16_t min_module_size, rows[SPD_MAX_SLOTS], asym; + uint8_t slot; + uint8_t slot_count; + uint8_t row; + uint8_t i; + uint16_t min_module_size; + uint16_t rows[SPD_MAX_SLOTS]; + uint16_t asym; spd_edo_t *edo_data; spd_sdram_t *sdram_data; @@ -336,8 +343,11 @@ spd_register(uint8_t ram_type, uint8_t slot_mask, uint16_t max_module_size) void spd_write_drbs(uint8_t *regs, uint8_t reg_min, uint8_t reg_max, uint8_t drb_unit) { - uint8_t row, dimm, drb, apollo = 0; - uint16_t size, rows[SPD_MAX_SLOTS]; + uint8_t dimm; + uint8_t drb; + uint8_t apollo = 0; + uint16_t size; + uint16_t rows[SPD_MAX_SLOTS]; /* Special case for VIA Apollo Pro family, which jumps from 5F to 56. */ if (reg_max < reg_min) { @@ -353,7 +363,7 @@ spd_write_drbs(uint8_t *regs, uint8_t reg_min, uint8_t reg_max, uint8_t drb_unit /* Write DRBs for each row. */ spd_log("SPD: Writing DRBs... regs=[%02X:%02X] unit=%d\n", reg_min, reg_max, drb_unit); - for (row = 0; row <= (reg_max - reg_min); row++) { + for (uint8_t row = 0; row <= (reg_max - reg_min); row++) { dimm = (row >> 1); size = 0; @@ -392,8 +402,11 @@ spd_write_drbs(uint8_t *regs, uint8_t reg_min, uint8_t reg_max, uint8_t drb_unit void spd_write_drbs_with_ext(uint8_t *regs, uint8_t reg_min, uint8_t reg_max, uint8_t drb_unit) { - uint8_t row, dimm, drb; - uint16_t size, row_val = 0, rows[SPD_MAX_SLOTS]; + uint8_t dimm; + uint8_t drb; + uint16_t size; + uint16_t row_val = 0; + uint16_t rows[SPD_MAX_SLOTS]; int shift; /* No SPD: split SIMMs into pairs as if they were "DIMM"s. */ @@ -404,7 +417,7 @@ spd_write_drbs_with_ext(uint8_t *regs, uint8_t reg_min, uint8_t reg_max, uint8_t /* Write DRBs for each row. */ spd_log("SPD: Writing DRBs... regs=[%02X:%02X] unit=%d\n", reg_min, reg_max, drb_unit); - for (row = 0; row <= (reg_max - reg_min); row++) { + for (uint8_t row = 0; row <= (reg_max - reg_min); row++) { dimm = (row >> 1); size = 0; @@ -441,9 +454,10 @@ spd_write_drbs_with_ext(uint8_t *regs, uint8_t reg_min, uint8_t reg_max, uint8_t void spd_write_drbs_interleaved(uint8_t *regs, uint8_t reg_min, uint8_t reg_max, uint8_t drb_unit) { - uint8_t row, dimm; + uint8_t dimm; uint8_t drb; - uint16_t size, size_acc = 0; + uint16_t size; + uint16_t size_acc = 0; uint16_t rows[SPD_MAX_SLOTS]; /* No SPD: split SIMMs into pairs as if they were "DIMM"s. */ @@ -454,7 +468,7 @@ spd_write_drbs_interleaved(uint8_t *regs, uint8_t reg_min, uint8_t reg_max, uint /* Write DRBs for each row. */ spd_log("SPD: Writing DRBs... regs=[%02X:%02X] unit=%d\n", reg_min, reg_max, drb_unit); - for (row = 0; row <= (reg_max - reg_min); row += 2) { + for (uint8_t row = 0; row <= (reg_max - reg_min); row += 2) { dimm = (row >> 2); size = 0; @@ -493,7 +507,8 @@ spd_write_drbs_interleaved(uint8_t *regs, uint8_t reg_min, uint8_t reg_max, uint void spd_write_drbs_ali1621(uint8_t *regs, uint8_t reg_min, uint8_t reg_max) { - uint8_t dimm, drb; + uint8_t dimm; + uint8_t drb; uint16_t size; uint16_t rows[SPD_MAX_SLOTS]; diff --git a/src/mem/sst_flash.c b/src/mem/sst_flash.c index 551e2da63..169a1dc6d 100644 --- a/src/mem/sst_flash.c +++ b/src/mem/sst_flash.c @@ -89,7 +89,7 @@ static char flash_path[1024]; #define SST39LF080 0xd800 #define SST39LF016 0xd900 -/* +#if 0 // 16 wide #define SST39WF400 0x272f #define SST39WF400B 0x272e @@ -103,7 +103,7 @@ static char flash_path[1024]; #define SST39LF400 0x2780 #define SST39LF800 0x2781 #define SST39LF160 0x2782 -*/ +#endif #define SST49LF002 0x5700 #define SST49LF020 0x6100 @@ -150,7 +150,8 @@ sst_sector_erase(sst_t *dev, uint32_t addr) static void sst_new_command(sst_t *dev, uint32_t addr, uint8_t val) { - uint32_t base = 0x00000, size = dev->size; + uint32_t base = 0x00000; + uint32_t size = dev->size; if (dev->command_state == 5) switch (val) { @@ -230,11 +231,10 @@ static void sst_page_write(void *priv) { sst_t *dev = (sst_t *) priv; - int i; if (dev->last_addr != 0xffffffff) { dev->page_base = dev->last_addr & dev->page_mask; - for (i = 0; i < 128; i++) { + for (uint8_t i = 0; i < 128; i++) { if (dev->page_dirty[i]) { if (((dev->page_base + i) < 0x2000) && (dev->bbp_first_8k & 0x01)) continue; @@ -419,14 +419,15 @@ sst_readl(uint32_t addr, void *p) static void sst_add_mappings(sst_t *dev) { - int i = 0, count; - uint32_t base, fbase; + int count; + uint32_t base; + uint32_t fbase; uint32_t root_base; count = dev->size >> 16; root_base = 0x100000 - dev->size; - for (i = 0; i < count; i++) { + for (int i = 0; i < count; i++) { base = root_base + (i << 16); fbase = base & biosmask; diff --git a/src/minitrace/minitrace.c b/src/minitrace/minitrace.c index 0b2208605..36a3a535b 100644 --- a/src/minitrace/minitrace.c +++ b/src/minitrace/minitrace.c @@ -252,7 +252,6 @@ void mtr_init(const char *json_file) { } void mtr_shutdown(void) { - int i; #ifndef MTR_ENABLED return; #endif @@ -266,7 +265,7 @@ void mtr_shutdown(void) { f = 0; free(event_buffer); event_buffer = 0; - for (i = 0; i < STRING_POOL_SIZE; i++) { + for (uint8_t i = 0; i < STRING_POOL_SIZE; i++) { if (str_pool[i]) { free(str_pool[i]); str_pool[i] = 0; @@ -275,8 +274,7 @@ void mtr_shutdown(void) { } const char *mtr_pool_string(const char *str) { - int i; - for (i = 0; i < STRING_POOL_SIZE; i++) { + for (uint8_t i = 0; i < STRING_POOL_SIZE; i++) { if (!str_pool[i]) { str_pool[i] = (char*)malloc(strlen(str) + 1); strcpy(str_pool[i], str); diff --git a/src/network/net_3c501.c b/src/network/net_3c501.c index 5f542e41a..0c73ea028 100644 --- a/src/network/net_3c501.c +++ b/src/network/net_3c501.c @@ -473,7 +473,9 @@ static int elnkReceiveLocked(void *priv, uint8_t *src, int size) { threec501_t *dev = (threec501_t *) priv; - int is_padr = 0, is_bcast = 0, is_mcast = 0; + int is_padr = 0; + int is_bcast = 0; + int is_mcast = 0; bool fLoopback = dev->RcvCmd.adr_match == EL_BCTL_LOOPBACK; union { @@ -644,7 +646,7 @@ elnkAsyncTransmit(threec501_t *dev) return; } - if (((dev->AuxCmd.buf_ctl != EL_BCTL_XMT_RCV) && (dev->AuxCmd.buf_ctl != EL_BCTL_LOOPBACK))) { + if ((dev->AuxCmd.buf_ctl != EL_BCTL_XMT_RCV) && (dev->AuxCmd.buf_ctl != EL_BCTL_LOOPBACK)) { #ifdef ENABLE_3COM501_LOG threec501_log("3Com501: Nope, not in xmit-then-receive or loopback state\n"); #endif @@ -656,8 +658,8 @@ elnkAsyncTransmit(threec501_t *dev) */ do { /* Don't send anything when the link is down. */ - if ((!elnkIsLinkUp(dev) - && dev->cLinkDownReported > ELNK_MAX_LINKDOWN_REPORTED)) + if (!elnkIsLinkUp(dev) + && dev->cLinkDownReported > ELNK_MAX_LINKDOWN_REPORTED) break; bool const fLoopback = dev->AuxCmd.buf_ctl == EL_BCTL_LOOPBACK; @@ -925,7 +927,7 @@ threec501_read(uint16_t addr, void *priv) #ifdef ENABLE_3COM501_LOG threec501_log("3Com501: read addr %x, value %x\n", addr & 0x0f, retval); #endif - return (retval); + return retval; } static uint8_t @@ -1130,7 +1132,7 @@ threec501_nic_init(const device_t *info) timer_add(&dev->timer_restore, elnkR3TimerRestore, dev, 0); - return (dev); + return dev; } static void diff --git a/src/network/net_3c503.c b/src/network/net_3c503.c index 9e4f9c12b..ce4650456 100644 --- a/src/network/net_3c503.c +++ b/src/network/net_3c503.c @@ -239,7 +239,7 @@ threec503_nic_lo_read(uint16_t addr, void *priv) break; } - return (retval); + return retval; } static void @@ -611,7 +611,7 @@ threec503_nic_init(const device_t *info) /* Attach ourselves to the network module. */ dev->dp8390->card = network_attach(dev->dp8390, dev->dp8390->physaddr, dp8390_rx, NULL); - return (dev); + return dev; } static void diff --git a/src/network/net_dp8390.c b/src/network/net_dp8390.c index 3b54fdb9d..754f0449a 100644 --- a/src/network/net_dp8390.c +++ b/src/network/net_dp8390.c @@ -63,13 +63,13 @@ mcast_index(const void *dst) { #define POLYNOMIAL 0x04c11db6 uint32_t crc = 0xffffffffL; - int carry, i, j; + int carry; uint8_t b; uint8_t *ep = (uint8_t *) dst; - for (i = 6; --i >= 0;) { + for (int8_t i = 6; --i >= 0;) { b = *ep++; - for (j = 8; --j >= 0;) { + for (int8_t j = 8; --j >= 0;) { carry = ((crc & 0x80000000L) ? 1 : 0) ^ (b & 0x01); crc <<= 1; b >>= 1; @@ -93,7 +93,6 @@ mcast_index(const void *dst) uint32_t dp8390_chipmem_read(dp8390_t *dev, uint32_t addr, unsigned int len) { - int i; uint32_t retval = 0; #ifdef ENABLE_DP8390_LOG @@ -104,7 +103,7 @@ dp8390_chipmem_read(dp8390_t *dev, uint32_t addr, unsigned int len) dp8390_log("DP8390: Chipmem Read Address=%04x\n", addr); /* ROM'd MAC address */ - for (i = 0; i < len; i++) { + for (unsigned int i = 0; i < len; i++) { if ((addr >= dev->mem_start) && (addr < dev->mem_end)) retval |= (uint32_t) (dev->mem[addr - dev->mem_start]) << (i << 3); else if (addr < dev->macaddr_size) @@ -116,14 +115,12 @@ dp8390_chipmem_read(dp8390_t *dev, uint32_t addr, unsigned int len) addr++; } - return (retval); + return retval; } void dp8390_chipmem_write(dp8390_t *dev, uint32_t addr, uint32_t val, unsigned len) { - int i; - #ifdef ENABLE_DP8390_LOG if ((len > 1) && (addr & (len - 1))) dp8390_log("DP8390: unaligned chipmem word write\n"); @@ -131,7 +128,7 @@ dp8390_chipmem_write(dp8390_t *dev, uint32_t addr, uint32_t val, unsigned len) dp8390_log("DP8390: Chipmem Write Address=%04x\n", addr); - for (i = 0; i < len; i++) { + for (unsigned int i = 0; i < len; i++) { if ((addr < dev->mem_start) || (addr >= dev->mem_end)) { dp8390_log("DP8390: out-of-bounds chipmem write, %04X\n", addr); return; @@ -152,7 +149,7 @@ dp8390_read_cr(dp8390_t *dev) retval = (((dev->CR.pgsel & 0x03) << 6) | ((dev->CR.rdma_cmd & 0x07) << 3) | (dev->CR.tx_packet << 2) | (dev->CR.start << 1) | (dev->CR.stop)); dp8390_log("DP8390: read CR returns 0x%02x\n", retval); - return (retval); + return retval; } void @@ -270,8 +267,10 @@ dp8390_rx_common(void *priv, uint8_t *buf, int io_len) static uint8_t bcast_addr[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; uint8_t pkthdr[4]; uint8_t *startptr; - int pages, avail; - int idx, nextpage; + int pages; + int avail; + int idx; + int nextpage; int endbytes; if (io_len != 60) @@ -427,7 +426,7 @@ dp8390_page0_read(dp8390_t *dev, uint32_t off, unsigned int len) /* encountered with win98 hardware probe */ dp8390_log("DP8390: bad length! Page0 read from register 0x%02x, len=%u\n", off, len); - return (retval); + return retval; } switch (off) { @@ -503,7 +502,7 @@ dp8390_page0_read(dp8390_t *dev, uint32_t off, unsigned int len) dp8390_log("DP8390: Page0 read from register 0x%02x, value=0x%02x\n", off, retval); - return (retval); + return retval; } void @@ -730,7 +729,7 @@ dp8390_page1_read(dp8390_t *dev, uint32_t off, unsigned int len) default: dp8390_log("DP8390: Page1 read register 0x%02x out of range\n", off); - return (0); + return 0; } } @@ -812,7 +811,7 @@ dp8390_page2_read(dp8390_t *dev, uint32_t off, unsigned int len) case 0x0b: dp8390_log("DP8390: reserved Page2 read - register 0x%02x\n", off); - return (0xff); + return 0xff; case 0x0c: /* RCR */ return ((dev->RCR.monitor << 5) | (dev->RCR.promisc << 4) | (dev->RCR.multicast << 3) | (dev->RCR.broadcast << 2) | (dev->RCR.runts_ok << 1) | (dev->RCR.errors_ok)); @@ -832,7 +831,7 @@ dp8390_page2_read(dp8390_t *dev, uint32_t off, unsigned int len) break; } - return (0); + return 0; } void @@ -931,7 +930,8 @@ dp8390_set_id(dp8390_t *dev, uint8_t id0, uint8_t id1) void dp8390_reset(dp8390_t *dev) { - int i, max, shift = 0; + int max; + int shift = 0; if (dev->flags & DP8390_FLAG_EVEN_MAC) shift = 1; @@ -939,7 +939,7 @@ dp8390_reset(dp8390_t *dev) max = 16 << shift; /* Initialize the MAC address area by doubling the physical address */ - for (i = 0; i < max; i++) { + for (int i = 0; i < max; i++) { if (i < (6 << shift)) dev->macaddr[i] = dev->physaddr[i >> shift]; else /* Signature */ diff --git a/src/network/net_ne2000.c b/src/network/net_ne2000.c index 9a598538d..263d38970 100644 --- a/src/network/net_ne2000.c +++ b/src/network/net_ne2000.c @@ -251,7 +251,7 @@ asic_read(nic_t *dev, uint32_t off, unsigned int len) break; } - return (retval); + return retval; } static void @@ -316,7 +316,7 @@ page3_read(nic_t *dev, uint32_t off, unsigned int len) return (dev->_9346cr); case 0x3: /* CONFIG0 */ - return (0x00); /* Cable not BNC */ + return 0x00; /* Cable not BNC */ case 0x5: /* CONFIG2 */ return (dev->config2 & 0xe0); @@ -329,12 +329,12 @@ page3_read(nic_t *dev, uint32_t off, unsigned int len) case 0xe: /* 8029ASID0 */ if (dev->board == NE2K_RTL8029AS) - return (0x29); + return 0x29; break; case 0xf: /* 8029ASID1 */ if (dev->board == NE2K_RTL8029AS) - return (0x80); + return 0x80; break; default: @@ -342,7 +342,7 @@ page3_read(nic_t *dev, uint32_t off, unsigned int len) } nelog(3, "%s: Page3 read register 0x%02x attempted\n", dev->name, off); - return (0x00); + return 0x00; } static void @@ -409,7 +409,7 @@ nic_read(nic_t *dev, uint32_t addr, unsigned len) break; } - return (retval); + return retval; } static uint8_t @@ -711,7 +711,7 @@ nic_pci_read(int func, int addr, void *priv) nelog(2, "%s: PCI_Read(%d, %04x) = %02x\n", dev->name, func, addr, ret); - return (ret); + return ret; } static void @@ -1095,7 +1095,7 @@ nic_init(const device_t *info) nelog(1, "%s: %s attached IO=0x%X IRQ=%d\n", dev->name, dev->is_pci ? "PCI" : "ISA", dev->base_address, dev->base_irq); - return (dev); + return dev; } static void diff --git a/src/network/net_null.c b/src/network/net_null.c index e69b4acb6..27a0d4da7 100644 --- a/src/network/net_null.c +++ b/src/network/net_null.c @@ -158,7 +158,7 @@ net_null_thread(void *priv) #endif void * -net_null_init(const netcard_t *card, const uint8_t *mac_addr, void *priv) +net_null_init(const netcard_t *card, const uint8_t *mac_addr, void *priv, char *netdrv_errbuf) { net_null_log("Null Network: Init\n"); @@ -221,4 +221,4 @@ const netdrv_t net_null_drv = { &net_null_init, &net_null_close, NULL -}; \ No newline at end of file +}; diff --git a/src/network/net_pcap.c b/src/network/net_pcap.c index 8c9326ec3..b9e2f32e8 100644 --- a/src/network/net_pcap.c +++ b/src/network/net_pcap.c @@ -357,7 +357,7 @@ int net_pcap_prepare(netdev_t *list) { char errbuf[PCAP_ERRBUF_SIZE]; - pcap_if_t *devlist, *dev; + pcap_if_t *devlist; int i = 0; /* Try loading the DLL. */ @@ -379,7 +379,7 @@ net_pcap_prepare(netdev_t *list) return (-1); } - for (dev = devlist; dev != NULL; dev = dev->next) { + for (pcap_if_t *dev = devlist; dev != NULL; dev = dev->next) { if (i >= (NET_HOST_INTF_MAX - 1)) break; @@ -405,7 +405,16 @@ net_pcap_prepare(netdev_t *list) /* Release the memory. */ f_pcap_freealldevs(devlist); - return (i); + return i; +} + +/* + * Copy error message to the error buffer + * and log if enabled. + */ +void net_pcap_error(char *errbuf, const char *message) { + strncpy(errbuf, message, NET_DRV_ERRBUF_SIZE); + pcap_log("PCAP: %s\n", message); } /* @@ -416,18 +425,19 @@ net_pcap_prepare(netdev_t *list) * tries to attach to the network module. */ void * -net_pcap_init(const netcard_t *card, const uint8_t *mac_addr, void *priv) +net_pcap_init(const netcard_t *card, const uint8_t *mac_addr, void *priv, char *netdrv_errbuf) { char errbuf[PCAP_ERRBUF_SIZE]; char *str; char filter_exp[255]; struct bpf_program fp; + char errbuf_prep[NET_DRV_ERRBUF_SIZE]; char *intf_name = (char *) priv; /* Did we already load the library? */ if (libpcap_handle == NULL) { - pcap_log("PCAP: net_pcap_init without handle.\n"); + net_pcap_error(netdrv_errbuf, "net_pcap_init without handle"); return NULL; } @@ -440,7 +450,7 @@ net_pcap_init(const netcard_t *card, const uint8_t *mac_addr, void *priv) /* Get the value of our capture interface. */ if ((intf_name[0] == '\0') || !strcmp(intf_name, "none")) { - pcap_log("PCAP: no interface configured!\n"); + net_pcap_error(netdrv_errbuf, "No interface configured"); return NULL; } @@ -451,7 +461,8 @@ net_pcap_init(const netcard_t *card, const uint8_t *mac_addr, void *priv) memcpy(pcap->mac_addr, mac_addr, sizeof(pcap->mac_addr)); if ((pcap->pcap = f_pcap_create(intf_name, errbuf)) == NULL) { - pcap_log(" Unable to open device: %s!\n", intf_name); + snprintf(errbuf_prep, NET_DRV_ERRBUF_SIZE, " Unable to open device: %s!\n", intf_name); + net_pcap_error(netdrv_errbuf, errbuf_prep); free(pcap); return NULL; } @@ -469,7 +480,8 @@ net_pcap_init(const netcard_t *card, const uint8_t *mac_addr, void *priv) pcap_log("PCAP: error setting snaplen\n"); if (f_pcap_activate((void *) pcap->pcap) != 0) { - pcap_log("PCAP: failed pcap_activate"); + snprintf(errbuf_prep, NET_DRV_ERRBUF_SIZE, "%s", (char *)f_pcap_geterr(pcap->pcap)); + net_pcap_error(netdrv_errbuf, errbuf_prep); f_pcap_close((void *) pcap->pcap); free(pcap); return NULL; @@ -484,13 +496,15 @@ net_pcap_init(const netcard_t *card, const uint8_t *mac_addr, void *priv) mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]); if (f_pcap_compile((void *) pcap->pcap, &fp, filter_exp, 0, 0xffffffff) != -1) { if (f_pcap_setfilter((void *) pcap->pcap, &fp) != 0) { - pcap_log("PCAP: error installing filter (%s) !\n", filter_exp); + snprintf(errbuf_prep, NET_DRV_ERRBUF_SIZE, "Error installing filter (%s)\n", filter_exp); + net_pcap_error(netdrv_errbuf, errbuf_prep); f_pcap_close((void *) pcap->pcap); free(pcap); return NULL; } } else { - pcap_log("PCAP: could not compile filter (%s) : %s!\n", filter_exp, f_pcap_geterr((void *) pcap->pcap)); + snprintf(errbuf_prep, NET_DRV_ERRBUF_SIZE, "Could not compile filter (%s) : %s!\n", filter_exp, (char *)f_pcap_geterr((void *) pcap->pcap)); + net_pcap_error(netdrv_errbuf, errbuf_prep); f_pcap_close((void *) pcap->pcap); free(pcap); return NULL; diff --git a/src/network/net_pcnet.c b/src/network/net_pcnet.c index 7b48b063f..17dd506fc 100644 --- a/src/network/net_pcnet.c +++ b/src/network/net_pcnet.c @@ -446,7 +446,8 @@ pcnetIsLinkUp(nic_t *dev) static __inline int pcnetTmdLoad(nic_t *dev, TMD *tmd, uint32_t addr, int fRetIfNotOwn) { - uint8_t ownbyte, bytes[4] = { 0, 0, 0, 0 }; + uint8_t ownbyte; + uint8_t bytes[4] = { 0, 0, 0, 0 }; uint16_t xda[4]; uint32_t xda32[4]; @@ -539,7 +540,8 @@ pcnetTmdStorePassHost(nic_t *dev, TMD *tmd, uint32_t addr) static __inline int pcnetRmdLoad(nic_t *dev, RMD *rmd, uint32_t addr, int fRetIfNotOwn) { - uint8_t ownbyte, bytes[4] = { 0, 0, 0, 0 }; + uint8_t ownbyte; + uint8_t bytes[4] = { 0, 0, 0, 0 }; uint16_t rda[4]; uint32_t rda32[4]; @@ -654,10 +656,10 @@ lnc_mchash(const uint8_t *ether_addr) { #define LNC_POLYNOMIAL 0xEDB88320UL uint32_t crc = 0xFFFFFFFF; - int idx, bit; + int bit; uint8_t data; - for (idx = 0; idx < ETHER_ADDR_LEN; idx++) { + for (uint8_t idx = 0; idx < ETHER_ADDR_LEN; idx++) { for (data = *ether_addr++, bit = 0; bit < MULTICAST_FILTER_LEN; bit++) { crc = (crc >> 1) ^ (((crc ^ data) & 1) ? LNC_POLYNOMIAL : 0); data >>= 1; @@ -915,7 +917,6 @@ pcnetUpdateIrq(nic_t *dev) static void pcnetInit(nic_t *dev) { - int i; pcnet_log(3, "%s: pcnetInit: init_addr=%#010x\n", dev->name, PHYSADDR(dev, CSR_IADR(dev))); /** @todo Documentation says that RCVRL and XMTRL are stored as two's complement! @@ -956,7 +957,7 @@ pcnetInit(nic_t *dev) #undef PCNET_INIT size_t cbRxBuffers = 0; - for (i = CSR_RCVRL(dev); i >= 1; i--) { + for (int i = CSR_RCVRL(dev); i >= 1; i--) { RMD rmd; uint32_t rdaddr = PHYSADDR(dev, pcnetRdraAddr(dev, i)); @@ -1200,8 +1201,10 @@ pcnetCalcPacketLen(nic_t *dev, int cb) static int pcnetReceiveNoSync(void *priv, uint8_t *buf, int size) { - nic_t *dev = (nic_t *) priv; - int is_padr = 0, is_bcast = 0, is_ladr = 0; + nic_t *dev = (nic_t *) priv; + int is_padr = 0; + int is_bcast = 0; + int is_ladr = 0; uint32_t iRxDesc; int cbPacket; uint8_t buf1[60]; @@ -1266,7 +1269,8 @@ pcnetReceiveNoSync(void *priv, uint8_t *buf, int size) uint8_t *src = &dev->abRecvBuf[8]; uint32_t crda = CSR_CRDA(dev); uint32_t next_crda; - RMD rmd, next_rmd; + RMD rmd; + RMD next_rmd; /* * Ethernet framing considers these two octets to be @@ -1473,8 +1477,8 @@ pcnetAsyncTransmit(nic_t *dev) break; /* Don't continue sending packets when the link is down. */ - if ((!pcnetIsLinkUp(dev) - && dev->cLinkDownReported > PCNET_MAX_LINKDOWN_REPORTED)) + if (!pcnetIsLinkUp(dev) + && dev->cLinkDownReported > PCNET_MAX_LINKDOWN_REPORTED) break; pcnet_log(3, "%s: TMDLOAD %#010x\n", dev->name, PHYSADDR(dev, CSR_CXDA(dev))); @@ -1488,7 +1492,7 @@ pcnetAsyncTransmit(nic_t *dev) const int cb = 4096 - tmd.tmd1.bcnt; pcnet_log(3, "%s: pcnetAsyncTransmit: stp&enp: cb=%d xmtrc=%#x\n", dev->name, cb, CSR_XMTRC(dev)); - if ((pcnetIsLinkUp(dev) || fLoopback)) { + if (pcnetIsLinkUp(dev) || fLoopback) { /* From the manual: ``A zero length buffer is acceptable as * long as it is not the last buffer in a chain (STP = 0 and @@ -2024,7 +2028,10 @@ static uint16_t pcnet_mii_readw(nic_t *dev, uint16_t miiaddr) { uint16_t val; - int autoneg, duplex, fast, isolate; + int autoneg; + int duplex; + int fast; + int isolate; /* If the DANAS (BCR32.7) bit is set, the MAC does not do any * auto-negotiation and the PHY must be set up explicitly. DANAS @@ -2238,7 +2245,7 @@ pcnet_byte_read(nic_t *dev, uint32_t addr) pcnet_log(3, "%s: pcnet_word_read: addr = %04x, val = %04x, DWIO not set = %04x\n", dev->name, addr & 0x0f, val, !BCR_DWIO(dev)); - return (val); + return val; } static uint16_t @@ -2276,7 +2283,7 @@ pcnet_word_read(nic_t *dev, uint32_t addr) skip_update_irq: pcnet_log(3, "%s: pcnet_word_read: addr = %04x, val = %04x, DWIO not set = %04x\n", dev->name, addr & 0x0f, val, !BCR_DWIO(dev)); - return (val); + return val; } static void @@ -2300,7 +2307,7 @@ pcnet_dword_write(nic_t *dev, uint32_t addr, uint32_t val) /* switch device to dword i/o mode */ pcnet_bcr_writew(dev, BCR_BSBC, pcnet_bcr_readw(dev, BCR_BSBC) | 0x0080); pcnet_log(3, "%s: device switched into dword i/o mode\n", dev->name); - }; + } } static uint32_t @@ -2334,7 +2341,7 @@ pcnet_dword_read(nic_t *dev, uint32_t addr) skip_update_irq: pcnet_log(3, "%s: Read Long mode, addr = %08x, val = %08x\n", dev->name, addr, val); - return (val); + return val; } static void @@ -2424,7 +2431,7 @@ pcnet_read(nic_t *dev, uint32_t addr, int len) } pcnet_log(3, "%s: value in read - %08x\n", dev->name, retval); - return (retval); + return retval; } static uint8_t @@ -2682,7 +2689,7 @@ pcnet_pci_read(int func, int addr, void *p) return 0xff; } - return (0); + return 0; } static void @@ -3005,7 +3012,7 @@ pcnet_init(const device_t *info) timer_add(&dev->timer_restore, pcnetTimerRestore, dev, 0); - return (dev); + return dev; } static void diff --git a/src/network/net_slirp.c b/src/network/net_slirp.c index 7651464a2..9e979c380 100644 --- a/src/network/net_slirp.c +++ b/src/network/net_slirp.c @@ -384,7 +384,7 @@ static int slirp_card_num = 2; /* Initialize SLiRP for use. */ void * -net_slirp_init(const netcard_t *card, const uint8_t *mac_addr, void *priv) +net_slirp_init(const netcard_t *card, const uint8_t *mac_addr, void *priv, char *netdrv_errbuf) { slirp_log("SLiRP: initializing...\n"); net_slirp_t *slirp = calloc(1, sizeof(net_slirp_t)); @@ -410,12 +410,16 @@ net_slirp_init(const netcard_t *card, const uint8_t *mac_addr, void *priv) slirp->slirp = slirp_init(0, 1, net, mask, host, 0, ipv6_dummy, 0, ipv6_dummy, NULL, NULL, NULL, NULL, dhcp, dns, ipv6_dummy, NULL, NULL, &slirp_cb, slirp); if (!slirp->slirp) { slirp_log("SLiRP: initialization failed\n"); + snprintf(netdrv_errbuf, NET_DRV_ERRBUF_SIZE, "SLiRP initialization failed"); free(slirp); return NULL; } /* Set up port forwarding. */ - int udp, external, internal, i = 0; + int udp; + int i = 0; + int external; + int internal; char category[32]; snprintf(category, sizeof(category), "SLiRP Port Forwarding #%d", card->card_num + 1); char key[20]; diff --git a/src/network/net_vde.c b/src/network/net_vde.c index 9bed78a9e..5bcf1ffff 100644 --- a/src/network/net_vde.c +++ b/src/network/net_vde.c @@ -235,6 +235,15 @@ void net_vde_in_available(void *priv) { net_event_set(&vde->tx_event); } +//+ +// Copy error message to the error buffer +// and log if enabled. +//- +void net_vde_error(char *errbuf, const char *message) { + strncpy(errbuf, message, NET_DRV_ERRBUF_SIZE); + vde_log("VDE: %s\n", message); +} + //+ // Initialize VDE for use // At this point the vdeplug library is already loaded @@ -242,19 +251,18 @@ void net_vde_in_available(void *priv) { // mac_addr: MAC address we are using // priv: Name of the VDE contol socket directory //- -void *net_vde_init(const netcard_t *card, const uint8_t *mac_addr, void *priv) { +void *net_vde_init(const netcard_t *card, const uint8_t *mac_addr, void *priv, char *netdrv_errbuf) { struct vde_open_args vde_args; - int i; char *socket_name = (char *) priv; if (libvde_handle == NULL) { - vde_log("VDE: net_vde_init without library handle!\n"); + net_vde_error(netdrv_errbuf, "net_vde_init without library handle"); return NULL; } if ((socket_name[0] == '\0') || !strcmp(socket_name, "none")) { - vde_log("VDE: No socket name configured!\n"); + net_vde_error(netdrv_errbuf, "No socket name configured"); return NULL; } @@ -271,23 +279,15 @@ void *net_vde_init(const netcard_t *card, const uint8_t *mac_addr, void *priv) { // We are calling vde_open_real(), not the vde_open() macro... if ((vde->vdeconn = f_vde_open(socket_name, VDE_DESCRIPTION, LIBVDEPLUG_INTERFACE_VERSION, &vde_args)) == NULL) { - vde_log("VDE: Unable to open socket %s (%s)!\n", socket_name, strerror(errno)); + char buf[NET_DRV_ERRBUF_SIZE]; + snprintf(buf, NET_DRV_ERRBUF_SIZE, "Unable to open socket %s (%s)", socket_name, strerror(errno)); + net_vde_error(netdrv_errbuf, buf); free(vde); - //+ - // There is a bug upstream that causes an uncontrolled crash if the network is not - // properly initialized. - // To avoid that crash, we tell the user we cannot continue and exit the program. - // TODO: Once there is a solution for the mentioned crash, this should be removed - // and/or replaced by proper error handling code. - //- - // fatal("Could not open the specified VDE socket (%s). Please fix your networking configuration.", socket_name); - // It makes no sense to issue this warning since the program will crash anyway... - // ui_msgbox_header(MBX_WARNING, (wchar_t *) IDS_2167, (wchar_t *) IDS_2168); return NULL; } vde_log("VDE: Socket opened (%s).\n", socket_name); - for(i=0; i < VDE_PKT_BATCH; i++) { + for(uint8_t i = 0; i < VDE_PKT_BATCH; i++) { vde->pktv[i].data = calloc(1, NET_MAX_FRAME); } vde->pkt.data = calloc(1,NET_MAX_FRAME); diff --git a/src/network/net_wd8003.c b/src/network/net_wd8003.c index c820e7444..385f4332a 100644 --- a/src/network/net_wd8003.c +++ b/src/network/net_wd8003.c @@ -194,9 +194,9 @@ wd_ram_write(uint32_t addr, uint8_t val, void *priv) static int wd_get_irq_index(wd_t *dev) { - uint8_t i, irq = 255; + uint8_t irq = 255; - for (i = 0; i < 4; i++) { + for (uint8_t i = 0; i < 4; i++) { if (we_int_table[i] == dev->irq) irq = i; } @@ -285,7 +285,7 @@ wd_smc_read(wd_t *dev, uint32_t off) wdlog("%s: ASIC read addr=0x%02x, value=0x%04x\n", dev->name, (unsigned) off, (unsigned) retval); - return (retval); + return retval; } static void @@ -423,7 +423,7 @@ wd_read(uint16_t addr, void *priv, int len) } } - return (retval); + return retval; } static uint8_t @@ -776,7 +776,7 @@ wd_init(const device_t *info) dev->base_address, dev->irq, dev->ram_addr); } - return (dev); + return dev; } static void diff --git a/src/network/network.c b/src/network/network.c index c05c72cd0..eec85fcb0 100644 --- a/src/network/network.c +++ b/src/network/network.c @@ -442,6 +442,9 @@ network_attach(void *card_drv, uint8_t *mac, NETRXCB rx, NETSETLINKSTATE set_lin card->card_num = net_card_current; card->byte_period = NET_PERIOD_10M; + char net_drv_error[NET_DRV_ERRBUF_SIZE]; + wchar_t tempmsg[NET_DRV_ERRBUF_SIZE * 2]; + for (int i = 0; i < NET_QUEUE_COUNT; i++) { network_queue_init(&card->queues[i]); } @@ -449,17 +452,17 @@ network_attach(void *card_drv, uint8_t *mac, NETRXCB rx, NETSETLINKSTATE set_lin switch (net_cards_conf[net_card_current].net_type) { case NET_TYPE_SLIRP: card->host_drv = net_slirp_drv; - card->host_drv.priv = card->host_drv.init(card, mac, NULL); + card->host_drv.priv = card->host_drv.init(card, mac, NULL, net_drv_error); break; case NET_TYPE_PCAP: card->host_drv = net_pcap_drv; - card->host_drv.priv = card->host_drv.init(card, mac, net_cards_conf[net_card_current].host_dev_name); + card->host_drv.priv = card->host_drv.init(card, mac, net_cards_conf[net_card_current].host_dev_name, net_drv_error); break; #ifdef HAS_VDE case NET_TYPE_VDE: card->host_drv = net_vde_drv; - card->host_drv.priv = card->host_drv.init(card, mac, net_cards_conf[net_card_current].host_dev_name); + card->host_drv.priv = card->host_drv.init(card, mac, net_cards_conf[net_card_current].host_dev_name, net_drv_error); break; #endif default: @@ -474,13 +477,14 @@ network_attach(void *card_drv, uint8_t *mac, NETRXCB rx, NETSETLINKSTATE set_lin if(net_cards_conf[net_card_current].net_type != NET_TYPE_NONE) { // We're here because of a failure - // Placeholder to display a msgbox about falling back to null - ui_msgbox(MBX_ERROR | MBX_ANSI, "Network driver initialization failed. Falling back to NULL driver."); + swprintf(tempmsg, sizeof_w(tempmsg), L"%ls:

%s

%ls", plat_get_string(IDS_2167), net_drv_error, plat_get_string(IDS_2168)); + ui_msgbox(MBX_ERROR, tempmsg); + net_cards_conf[net_card_current].net_type = NET_TYPE_NONE; } // Init null driver card->host_drv = net_null_drv; - card->host_drv.priv = card->host_drv.init(card, mac, NULL); + card->host_drv.priv = card->host_drv.init(card, mac, NULL, net_drv_error); // Set link state to disconnected by default network_connect(card->card_num, 0); ui_sb_update_icon_state(SB_NETWORK | card->card_num, 1); @@ -548,15 +552,13 @@ network_close(void) void network_reset(void) { - int i = -1; - ui_sb_update_icon(SB_NETWORK, 0); #if defined ENABLE_NETWORK_LOG && !defined(_WIN32) network_dump_mutex = thread_create_mutex(); #endif - for (i = 0; i < NET_CARD_MAX; i++) { + for (uint8_t i = 0; i < NET_CARD_MAX; i++) { if (!network_dev_available(i)) { continue; } @@ -652,15 +654,13 @@ network_is_connected(int id) int network_dev_to_id(char *devname) { - int i = 0; - - for (i = 0; i < network_ndev; i++) { + for (int i = 0; i < network_ndev; i++) { if (!strcmp((char *) network_devs[i].device, devname)) { - return (i); + return i; } } - return (-1); + return -1; } /* UI */ @@ -669,7 +669,7 @@ network_dev_available(int id) { int available = (net_cards_conf[id].device_num > 0); - if ((net_cards_conf[id].net_type == NET_TYPE_PCAP && (network_dev_to_id(net_cards_conf[id].host_dev_name) <= 0))) + if (net_cards_conf[id].net_type == NET_TYPE_PCAP && (network_dev_to_id(net_cards_conf[id].host_dev_name) <= 0)) available = 0; // TODO: Handle VDE device @@ -696,7 +696,7 @@ network_card_available(int card) if (net_cards[card]) return (device_available(net_cards[card])); - return (1); + return 1; } /* UI */ @@ -711,7 +711,7 @@ int network_card_has_config(int card) { if (!net_cards[card]) - return (0); + return 0; return (device_has_config(net_cards[card]) ? 1 : 0); } @@ -731,9 +731,9 @@ network_card_get_from_internal_name(char *s) while (net_cards[c] != NULL) { if (!strcmp((char *) net_cards[c]->internal_name, s)) - return (c); + return c; c++; } return 0; -} \ No newline at end of file +} diff --git a/src/network/pcap_if.c b/src/network/pcap_if.c index 56fa3eaf1..19abb74c3 100644 --- a/src/network/pcap_if.c +++ b/src/network/pcap_if.c @@ -87,7 +87,7 @@ static int get_devlist(capdev_t *list) { char errbuf[PCAP_ERRBUF_SIZE]; - pcap_if_t *devlist, *dev; + pcap_if_t *devlist; int i = 0; /* Retrieve the device list from the local machine */ @@ -96,7 +96,7 @@ get_devlist(capdev_t *list) return (-1); } - for (dev = devlist; dev != NULL; dev = dev->next) { + for (pcap_if_t *dev = devlist; dev != NULL; dev = dev->next) { strcpy(list->device, dev->name); if (dev->description) strcpy(list->description, dev->description); @@ -109,7 +109,7 @@ get_devlist(capdev_t *list) /* Release the memory. */ f_pcap_freealldevs(devlist); - return (i); + return i; } /* Simple HEXDUMP routine for raw data. */ @@ -127,7 +127,7 @@ hex_dump(unsigned char *bufp, int len) printf("%04lx %02x", addr, c); else printf(" %02x", c); - asci[(addr & 15)] = (uint8_t) isprint(c) ? c : '.'; + asci[addr & 15] = (uint8_t) isprint(c) ? c : '.'; if ((++addr % 16) == 0) { asci[16] = '\0'; printf(" | %s |\n", asci); @@ -137,7 +137,7 @@ hex_dump(unsigned char *bufp, int len) if (addr % 16) { while (addr % 16) { printf(" "); - asci[(addr & 15)] = ' '; + asci[addr & 15] = ' '; addr++; } asci[16] = '\0'; @@ -166,7 +166,7 @@ eth_prhdr(unsigned char *ptr) type = (ptr[12] << 8) | ptr[13]; printf(" type %04x\n", type); - return (14); + return 14; } /* Capture packets from the network, and print them. */ @@ -189,7 +189,7 @@ start_cap(char *dev) temp); if (pcap == NULL) { fprintf(stderr, "Pcap: open_live(%s): %s\n", dev, temp); - return (2); + return 2; } printf("Listening on '%s'..\n", dev); @@ -217,19 +217,17 @@ start_cap(char *dev) /* All done, close up. */ f_pcap_close(pcap); - return (0); + return 0; } /* Show a list of available network interfaces. */ static void show_devs(capdev_t *list, int num) { - int i; - if (num > 0) { printf("Available network interfaces:\n\n"); - for (i = 0; i < num; i++) { + for (int i = 0; i < num; i++) { printf(" %d - %s\n", i + 1, list->device); if (list->description[0] != '\0') printf(" (%s)\n", list->description); @@ -247,7 +245,8 @@ int main(int argc, char **argv) { capdev_t interfaces[32]; - int numdev, i; + int numdev; + int i; /* Try loading the DLL. */ #ifdef _WIN32 @@ -263,7 +262,7 @@ main(int argc, char **argv) #else fprintf(stderr, "Unable to load libpcap.so !\n"); #endif - return (1); + return 1; } /* Get the list. */ @@ -275,7 +274,7 @@ main(int argc, char **argv) dynld_close(pcap_handle); - return (numdev); + return numdev; } /* Assume argument to be the interface number to listen on. */ @@ -285,7 +284,7 @@ main(int argc, char **argv) dynld_close(pcap_handle); - return (1); + return 1; } /* Looks good, go and listen.. */ @@ -293,5 +292,5 @@ main(int argc, char **argv) dynld_close(pcap_handle); - return (i); + return i; } diff --git a/src/pic.c b/src/pic.c index 53cd76876..ffb370ce2 100644 --- a/src/pic.c +++ b/src/pic.c @@ -787,7 +787,6 @@ pic_irq_ack(void) /* If we are on AT, IRQ 2 is pending, and we cannot find a pending IRQ on PIC 2, fatal out. */ fatal("IRQ %i pending on AT without a pending IRQ on PIC %i (normal)\n", pic.interrupt, pic.interrupt); exit(-1); - return -1; } pic.interrupt |= 0x40; /* Mark slave pending. */ @@ -818,7 +817,6 @@ picinterrupt(void) /* If we are on AT, IRQ 2 is pending, and we cannot find a pending IRQ on PIC 2, fatal out. */ fatal("IRQ %i pending on AT without a pending IRQ on PIC %i (normal)\n", pic.interrupt, pic.interrupt); exit(-1); - return -1; } pic.interrupt |= 0x40; /* Mark slave pending. */ diff --git a/src/pit.c b/src/pit.c index e0c500ea6..b39d565d3 100644 --- a/src/pit.c +++ b/src/pit.c @@ -139,6 +139,9 @@ ctr_load_count(ctr_t *ctr) pit_log("ctr->count = %i\n", l); ctr->null_count = 0; ctr->newcount = !!(l & 1); + + /* Undocumented feature - writing MSB after reload after writing LSB causes an instant reload. */ + ctr->incomplete = !!(ctr->wm & 0x80); } static void @@ -146,16 +149,13 @@ ctr_tick(ctr_t *ctr) { uint8_t state = ctr->state; - if (state == 1) { + if ((state & 0x03) == 0x01) { /* This is true for all modes */ ctr_load_count(ctr); - ctr->state = 2; - if ((ctr->m & 0x07) == 0x01) + ctr->state++; + if (((ctr->m & 0x07) == 0x01) && (ctr->state == 2)) ctr_set_out(ctr, 0); - return; - } - - switch (ctr->m & 0x07) { + } else switch (ctr->m & 0x07) { case 0: /* Interrupt on terminal count */ switch (state) { @@ -176,11 +176,6 @@ ctr_tick(ctr_t *ctr) case 1: /* Hardware retriggerable one-shot */ switch (state) { - case 1: - ctr_load_count(ctr); - ctr->state = 2; - ctr_set_out(ctr, 0); - break; case 2: if (ctr->count >= 1) { ctr_decrease_count(ctr); @@ -191,6 +186,7 @@ ctr_tick(ctr_t *ctr) } break; case 3: + case 6: ctr_decrease_count(ctr); break; } @@ -267,6 +263,7 @@ ctr_tick(ctr_t *ctr) if ((ctr->gate != 0) || (ctr->m != 4)) { switch (state) { case 0: + case 6: ctr_decrease_count(ctr); break; case 2: @@ -310,9 +307,12 @@ static void ctr_set_state_1(ctr_t *ctr) { uint8_t mode = (ctr->m & 0x03); + int do_reload = !!ctr->incomplete || (ctr->state == 0); - if ((mode == 0) || ((mode > 1) && (ctr->state == 0))) - ctr->state = 1; + ctr->incomplete = 0; + + if (do_reload) + ctr->state = 1 + ((mode == 1) << 2); } static void @@ -607,6 +607,8 @@ pit_write(uint16_t addr, uint8_t val, void *priv) } } +extern uint8_t *ram; + static uint8_t pit_read(uint16_t addr, void *priv) { diff --git a/src/printer/png.c b/src/printer/png.c index bb862a953..49da1ee18 100644 --- a/src/printer/png.c +++ b/src/printer/png.c @@ -110,7 +110,6 @@ png_write_gray(char *fn, int inv, uint8_t *pix, int16_t w, int16_t h) png_structp png = NULL; png_infop info = NULL; png_bytep row; - int16_t x, y; FILE *fp; /* Create the image file. */ @@ -127,7 +126,7 @@ error: (&png, &info); if (fp != NULL) (void) fclose(fp); - return (0); + return 0; } /* Initialize PNG stuff. */ @@ -159,8 +158,8 @@ error: row = (png_bytep) malloc(PNGFUNC(get_rowbytes)(png, info)); /* Process all scanlines in the image. */ - for (y = 0; y < h; y++) { - for (x = 0; x < w; x++) { + for (int16_t y = 0; y < h; y++) { + for (int16_t x = 0; x < w; x++) { /* Copy the pixel data. */ if (inv) row[x] = 255 - pix[(y * w) + x]; @@ -185,7 +184,7 @@ error: /* Clean up. */ (void) fclose(fp); - return (1); + return 1; } /* Write the given BITMAP-format image as an 8-bit RGBA PNG image file. */ diff --git a/src/printer/prt_escp.c b/src/printer/prt_escp.c index 1cca57da0..f1697e074 100644 --- a/src/printer/prt_escp.c +++ b/src/printer/prt_escp.c @@ -442,7 +442,6 @@ static void fill_palette(uint8_t redmax, uint8_t greenmax, uint8_t bluemax, uint8_t colorID, escp_t *dev) { uint8_t colormask; - int i; double red = (double) redmax / (double) 30.9; double green = (double) greenmax / (double) 30.9; @@ -450,7 +449,7 @@ fill_palette(uint8_t redmax, uint8_t greenmax, uint8_t bluemax, uint8_t colorID, colormask = colorID <<= 5; - for (i = 0; i < 32; i++) { + for (uint8_t i = 0; i < 32; i++) { dev->palcol[i + colormask].r = 255 - (uint8_t) floor(red * (double) i); dev->palcol[i + colormask].g = 255 - (uint8_t) floor(green * (double) i); dev->palcol[i + colormask].b = 255 - (uint8_t) floor(blue * (double) i); @@ -460,8 +459,6 @@ fill_palette(uint8_t redmax, uint8_t greenmax, uint8_t bluemax, uint8_t colorID, static void reset_printer(escp_t *dev) { - int i; - /* TODO: these should be configurable. */ dev->color = COLOR_BLACK; dev->curr_x = dev->curr_y = 0.0; @@ -501,7 +498,7 @@ reset_printer(escp_t *dev) new_page(dev, 0, 1); - for (i = 0; i < 32; i++) + for (uint8_t i = 0; i < 32; i++) dev->horizontal_tabs[i] = i * 8.0 * (1.0 / dev->cpi); dev->num_horizontal_tabs = 32; dev->num_vertical_tabs = -1; @@ -646,11 +643,13 @@ update_font(escp_t *dev) static int process_char(escp_t *dev, uint8_t ch) { - double new_x, new_y; + double new_x; + double new_y; double move_to; double unit_size; double reverse; - double new_top, new_bottom; + double new_top; + double new_bottom; uint16_t rel_move; int16_t i; @@ -788,7 +787,6 @@ process_char(escp_t *dev, uint8_t ch) case 0x2e: fatal("ESC/P: Print Raster Graphics (2E) command is not implemented.\nTerminating the emulator to avoid endless PNG generation.\n"); exit(-1); - return 1; default: escp_log("ESC/P: Unknown command ESC %c (0x%02x). Unable to skip parameters.\n", @@ -1562,19 +1560,19 @@ process_char(escp_t *dev, uint8_t ch) return 1; default: + /* This is a printable character -> print it. */ return 0; } - - /* This is a printable character -> print it. */ - return 0; } static void handle_char(escp_t *dev, uint8_t ch) { FT_UInt char_index; - uint16_t pen_x, pen_y; - uint16_t line_start, line_y; + uint16_t pen_x; + uint16_t pen_y; + uint16_t line_start; + uint16_t line_y; double x_advance; if (dev->page == NULL) @@ -1689,15 +1687,15 @@ static void blit_glyph(escp_t *dev, unsigned destx, unsigned desty, int8_t add) { FT_Bitmap *bitmap = &dev->fontface->glyph->bitmap; - unsigned x, y; - uint8_t src, *dst; + uint8_t src; + uint8_t *dst; /* check if freetype is available */ if (ft_lib == NULL) return; - for (y = 0; y < bitmap->rows; y++) { - for (x = 0; x < bitmap->width; x++) { + for (unsigned int y = 0; y < bitmap->rows; y++) { + for (unsigned int x = 0; x < bitmap->width; x++) { src = *(bitmap->buffer + x + y * bitmap->pitch); /* ignore background, and respect page size */ if (src > 0 && (destx + x < (unsigned) dev->page->w) && (desty + y < (unsigned) dev->page->h)) { @@ -1724,9 +1722,8 @@ draw_hline(escp_t *dev, unsigned from_x, unsigned to_x, unsigned y, int8_t broke { unsigned breakmod = dev->dpi / 15; unsigned gapstart = (breakmod * 4) / 5; - unsigned x; - for (x = from_x; x <= to_x; x++) { + for (unsigned int x = from_x; x <= to_x; x++) { /* Skip parts if broken line or going over the border. */ if ((!broken || (x % breakmod <= gapstart)) && (x < dev->page->w)) { if (y > 0 && (y - 1) < dev->page->h) @@ -1856,7 +1853,6 @@ print_bit_graph(escp_t *dev, uint8_t ch) { uint8_t pixel_w; /* width of the "pixel" */ uint8_t pixel_h; /* height of the "pixel" */ - unsigned i, j, xx, yy; double old_y; dev->bg_column[dev->bg_bytes_read++] = ch; @@ -1877,14 +1873,14 @@ print_bit_graph(escp_t *dev, uint8_t ch) pixel_h = dev->dpi / dev->bg_v_density > 0 ? dev->dpi / dev->bg_v_density : 1; } - for (i = 0; i < dev->bg_bytes_per_column; i++) { + for (uint8_t i = 0; i < dev->bg_bytes_per_column; i++) { /* for each byte */ - for (j = 128; j != 0; j >>= 1) { + for (uint8_t j = 128; j != 0; j >>= 1) { /* for each bit */ if (dev->bg_column[i] & j) { /* draw a "pixel" */ - for (xx = 0; xx < pixel_w; xx++) { - for (yy = 0; yy < pixel_h; yy++) { + for (uint8_t xx = 0; xx < pixel_w; xx++) { + for (uint8_t yy = 0; yy < pixel_h; yy++) { if (((PIXX + xx) < (unsigned) dev->page->w) && ((PIXY + yy) < (unsigned) dev->page->h)) *((uint8_t *) dev->page->pixels + (PIXX + xx) + (PIXY + yy) * dev->page->pitch) |= (dev->color | 0x1f); } @@ -1983,7 +1979,7 @@ read_status(void *priv) if (!dev->ack) ret |= 0x40; - return (ret); + return ret; } static void * @@ -1991,7 +1987,6 @@ escp_init(void *lpt) { const char *fn = PATH_FREETYPE_DLL; escp_t *dev; - int i; /* Dynamically load FreeType. */ if (ft_handle == NULL) { @@ -2047,7 +2042,7 @@ escp_init(void *lpt) memset(dev->page->pixels, 0x00, (size_t) dev->page->pitch * dev->page->h); /* Initialize parameters. */ - for (i = 0; i < 32; i++) { + for (uint8_t i = 0; i < 32; i++) { dev->palcol[i].r = 255; dev->palcol[i].g = 255; dev->palcol[i].b = 255; @@ -2082,7 +2077,7 @@ escp_init(void *lpt) timer_add(&dev->pulse_timer, pulse_timer, dev, 0); timer_add(&dev->timeout_timer, timeout_timer, dev, 0); - return (dev); + return dev; } static void diff --git a/src/printer/prt_ps.c b/src/printer/prt_ps.c index 0de04926d..6c72e48de 100644 --- a/src/printer/prt_ps.c +++ b/src/printer/prt_ps.c @@ -143,7 +143,9 @@ convert_to_pdf(ps_t *dev) { volatile int code; void *instance = NULL; - char input_fn[1024], output_fn[1024], *gsargv[9]; + char input_fn[1024]; + char output_fn[1024]; + char *gsargv[9]; strcpy(input_fn, dev->printer_path); path_slash(input_fn); @@ -323,7 +325,7 @@ ps_read_status(void *p) if (!dev->ack) ret |= 0x40; - return (ret); + return ret; } static void * @@ -362,7 +364,7 @@ ps_init(void *lpt) reset_ps(dev); - return (dev); + return dev; } static void diff --git a/src/printer/prt_text.c b/src/printer/prt_text.c index 506261ccf..54e5fe6d5 100644 --- a/src/printer/prt_text.c +++ b/src/printer/prt_text.c @@ -138,7 +138,6 @@ static void dump_page(prnt_t *dev) { char path[1024]; - uint16_t x, y; uint8_t ch; FILE *fp; @@ -162,8 +161,8 @@ dump_page(prnt_t *dev) if (ftell(fp) != 0) fputc('\014', fp); - for (y = 0; y < dev->curr_y; y++) { - for (x = 0; x < dev->page->w; x++) { + for (uint16_t y = 0; y < dev->curr_y; y++) { + for (uint16_t x = 0; x < dev->page->w; x++) { ch = dev->page->chars[(y * dev->page->w) + x]; if (ch == 0x00) { /* End of line marker. */ @@ -329,7 +328,7 @@ process_char(prnt_t *dev, uint8_t ch) } /* Just a printable character. */ - return (0); + return 0; } static void @@ -416,7 +415,7 @@ read_status(void *priv) if (!dev->ack) ret |= 0x40; - return (ret); + return ret; } static void * @@ -443,7 +442,7 @@ prnt_init(void *lpt) timer_add(&dev->pulse_timer, pulse_timer, dev, 0); timer_add(&dev->timeout_timer, timeout_timer, dev, 0); - return (dev); + return dev; } static void diff --git a/src/qt/languages/cs-CZ.po b/src/qt/languages/cs-CZ.po index 5f85c4f81..422a00947 100644 --- a/src/qt/languages/cs-CZ.po +++ b/src/qt/languages/cs-CZ.po @@ -1219,3 +1219,9 @@ msgstr "2% pod dokonalými ot./m" msgid "(System Default)" msgstr "(Výchozí nastavení systému)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/de-DE.po b/src/qt/languages/de-DE.po index efbd5f95e..568599449 100644 --- a/src/qt/languages/de-DE.po +++ b/src/qt/languages/de-DE.po @@ -1219,3 +1219,9 @@ msgstr "2% unterhalb der perfekten Drehzahl" msgid "(System Default)" msgstr "(Systemstandard)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/en-GB.po b/src/qt/languages/en-GB.po index 7613cf4b3..ddf6e7ef0 100644 --- a/src/qt/languages/en-GB.po +++ b/src/qt/languages/en-GB.po @@ -1219,3 +1219,9 @@ msgstr "2% below perfect RPM" msgid "(System Default)" msgstr "(System Default)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/en-US.po b/src/qt/languages/en-US.po index bf822aceb..09adcdb76 100644 --- a/src/qt/languages/en-US.po +++ b/src/qt/languages/en-US.po @@ -1219,3 +1219,9 @@ msgstr "2% below perfect RPM" msgid "(System Default)" msgstr "(System Default)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/es-ES.po b/src/qt/languages/es-ES.po index 0c2bd6aa9..8fbc442b9 100644 --- a/src/qt/languages/es-ES.po +++ b/src/qt/languages/es-ES.po @@ -1219,3 +1219,9 @@ msgstr "2% por debajo de RPM perfectas" msgid "(System Default)" msgstr "(Por defecto del sistema)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/fi-FI.po b/src/qt/languages/fi-FI.po index 6224472fa..d1c524558 100644 --- a/src/qt/languages/fi-FI.po +++ b/src/qt/languages/fi-FI.po @@ -1219,3 +1219,10 @@ msgstr "2% alle täydellisen RPM:n" msgid "(System Default)" msgstr "(Järjestelmän oletus)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + + diff --git a/src/qt/languages/fr-FR.po b/src/qt/languages/fr-FR.po index 3ae18533d..f83c8f5fd 100644 --- a/src/qt/languages/fr-FR.po +++ b/src/qt/languages/fr-FR.po @@ -1219,3 +1219,9 @@ msgstr "Précision RPM de moins 2%" msgid "(System Default)" msgstr "(Défaut du système)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/hr-HR.po b/src/qt/languages/hr-HR.po index 06c3ad8b5..76973f796 100644 --- a/src/qt/languages/hr-HR.po +++ b/src/qt/languages/hr-HR.po @@ -1219,3 +1219,9 @@ msgstr "2% ispod savršenog broja okretaja" msgid "(System Default)" msgstr "(Zadana postavka operativnog sustava)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/hu-HU.po b/src/qt/languages/hu-HU.po index 6658cbb00..2f812ba2e 100644 --- a/src/qt/languages/hu-HU.po +++ b/src/qt/languages/hu-HU.po @@ -1219,3 +1219,9 @@ msgstr "2%-kal a tökéletes RPM alatt" msgid "(System Default)" msgstr "(A rendszer nyelve)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/it-IT.po b/src/qt/languages/it-IT.po index c02e3510f..a9b3b7ce3 100644 --- a/src/qt/languages/it-IT.po +++ b/src/qt/languages/it-IT.po @@ -1219,3 +1219,9 @@ msgstr "RPM 2% sotto perfezione" msgid "(System Default)" msgstr "(Predefinito del sistema)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/ja-JP.po b/src/qt/languages/ja-JP.po index 420d34a2e..eb4e5241e 100644 --- a/src/qt/languages/ja-JP.po +++ b/src/qt/languages/ja-JP.po @@ -1219,3 +1219,9 @@ msgstr "2%低い回転数" msgid "(System Default)" msgstr "(システム既定値)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/ko-KR.po b/src/qt/languages/ko-KR.po index 6d189d8e3..112506fe5 100644 --- a/src/qt/languages/ko-KR.po +++ b/src/qt/languages/ko-KR.po @@ -1219,3 +1219,9 @@ msgstr "2% 낮은 회전수" msgid "(System Default)" msgstr "(시스템 기본값)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/pl-PL.po b/src/qt/languages/pl-PL.po index 26c652c87..7809cd263 100644 --- a/src/qt/languages/pl-PL.po +++ b/src/qt/languages/pl-PL.po @@ -1219,3 +1219,9 @@ msgstr "2% poniżej idealnych obrotów" msgid "(System Default)" msgstr "(Domyślne ustawienie systemowe)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index 0202b42a7..b6c2e2b70 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -1219,3 +1219,9 @@ msgstr "2% abaixo das RPM perfeita" msgid "(System Default)" msgstr "(Padrão do sistema)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/pt-PT.po b/src/qt/languages/pt-PT.po index a8ce8bbca..7e4fc9053 100644 --- a/src/qt/languages/pt-PT.po +++ b/src/qt/languages/pt-PT.po @@ -1219,3 +1219,9 @@ msgstr "RPM 2% abaixo do RPM perfeito" msgid "(System Default)" msgstr "(Padrão do sistema)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/ru-RU.po b/src/qt/languages/ru-RU.po index a424c5f6f..78794cd35 100644 --- a/src/qt/languages/ru-RU.po +++ b/src/qt/languages/ru-RU.po @@ -1219,3 +1219,9 @@ msgstr "На 2% медленнее точного RPM" msgid "(System Default)" msgstr "(Системный)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/sl-SI.po b/src/qt/languages/sl-SI.po index ba11014d2..5f32a6b03 100644 --- a/src/qt/languages/sl-SI.po +++ b/src/qt/languages/sl-SI.po @@ -1219,3 +1219,9 @@ msgstr "2% pod popolnimi obrati" msgid "(System Default)" msgstr "(Sistemsko privzeto)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/tr-TR.po b/src/qt/languages/tr-TR.po index f9608e9d0..72ad49bf8 100644 --- a/src/qt/languages/tr-TR.po +++ b/src/qt/languages/tr-TR.po @@ -1219,3 +1219,9 @@ msgstr "mükemmel RPM değerinin 2% altı" msgid "(System Default)" msgstr "(Sistem Varsayılanı)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/uk-UA.po b/src/qt/languages/uk-UA.po index 4193fe934..4d7708ef6 100644 --- a/src/qt/languages/uk-UA.po +++ b/src/qt/languages/uk-UA.po @@ -1219,3 +1219,9 @@ msgstr "На 2% повільніше точного RPM" msgid "(System Default)" msgstr "(Системний)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/zh-CN.po b/src/qt/languages/zh-CN.po index 65977da27..da37b4fb2 100644 --- a/src/qt/languages/zh-CN.po +++ b/src/qt/languages/zh-CN.po @@ -1219,3 +1219,9 @@ msgstr "低于标准转速的 2%" msgid "(System Default)" msgstr "(系统默认)" +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/languages/zh-TW.po b/src/qt/languages/zh-TW.po index 1f7b7cfff..e1acd1fbc 100644 --- a/src/qt/languages/zh-TW.po +++ b/src/qt/languages/zh-TW.po @@ -1218,3 +1218,10 @@ msgstr "低於標準轉速的 2%" msgid "(System Default)" msgstr "(系統預設)" + +msgid "Failed to initialize network driver" +msgstr "Failed to initialize network driver" + +msgid "The network configuration will be switched to the null driver" +msgstr "The network configuration will be switched to the null driver" + diff --git a/src/qt/qt_d3d9renderer.cpp b/src/qt/qt_d3d9renderer.cpp index f2c9fe9f4..868f58274 100644 --- a/src/qt/qt_d3d9renderer.cpp +++ b/src/qt/qt_d3d9renderer.cpp @@ -60,7 +60,7 @@ D3D9Renderer::finalize() if (d3d9) { d3d9->Release(); d3d9 = nullptr; - }; + } } void @@ -113,7 +113,8 @@ void D3D9Renderer::paintEvent(QPaintEvent *event) { IDirect3DSurface9 *backbuffer = nullptr; - RECT srcRect, dstRect; + RECT srcRect; + RECT dstRect; HRESULT result = d3d9dev->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &backbuffer); if (FAILED(result)) { diff --git a/src/qt/qt_d3d9renderer.hpp b/src/qt/qt_d3d9renderer.hpp index 2ec7b0327..37c27443b 100644 --- a/src/qt/qt_d3d9renderer.hpp +++ b/src/qt/qt_d3d9renderer.hpp @@ -36,7 +36,8 @@ private: IDirect3DDevice9Ex *d3d9dev = nullptr; IDirect3DSurface9 *d3d9surface = nullptr; - std::atomic surfaceInUse { false }, finalized { false }; + std::atomic surfaceInUse { false }; + std::atomic finalized { false }; bool alreadyInitialized = false; int m_monitor_index = 0; }; diff --git a/src/qt/qt_deviceconfig.cpp b/src/qt/qt_deviceconfig.cpp index 770e28157..233a16851 100644 --- a/src/qt/qt_deviceconfig.cpp +++ b/src/qt/qt_deviceconfig.cpp @@ -66,7 +66,8 @@ DeviceConfig::~DeviceConfig() static QStringList EnumerateSerialDevices() { - QStringList serialDevices, ttyEntries; + QStringList serialDevices; + QStringList ttyEntries; QByteArray devstr(1024, 0); #ifdef Q_OS_LINUX QDir class_dir("/sys/class/tty/"); @@ -108,7 +109,9 @@ DeviceConfig::ConfigureDevice(const _device_ *device, int instance, Settings *se { DeviceConfig dc(settings); dc.setWindowTitle(QString("%1 Device Configuration").arg(device->name)); - int c, d, p, q; + int c; + int p; + int q; device_context_t device_context; device_set_context(&device_context, device, instance); @@ -216,7 +219,7 @@ DeviceConfig::ConfigureDevice(const _device_ *device, int instance, Settings *se c = q = 0; for (auto *bios = config->bios; (bios != nullptr) && (bios->name != nullptr) && (strlen(bios->name) > 0); ++bios) { p = 0; - for (d = 0; d < bios->files_no; d++) + for (int d = 0; d < bios->files_no; d++) p += !!rom_present(const_cast(bios->files[d])); if (p == bios->files_no) { int row = Models::AddEntry(model, bios->name, q); diff --git a/src/qt/qt_harddiskdialog.cpp b/src/qt/qt_harddiskdialog.cpp index 088ef0413..6489b9c77 100644 --- a/src/qt/qt_harddiskdialog.cpp +++ b/src/qt/qt_harddiskdialog.cpp @@ -75,7 +75,7 @@ HarddiskDialog::HarddiskDialog(bool existing, QWidget *parent) uint64_t size = ((uint64_t) hdd_table[i][0]) * hdd_table[i][1] * hdd_table[i][2]; uint32_t size_mb = size >> 11LL; // QString text = QString("%1 MiB (CHS: %2, %3, %4)").arg(size_mb).arg(hdd_table[i][0]).arg(hdd_table[i][1]).arg(hdd_table[i][2]); - QString text = QString::asprintf(tr("%u MB (CHS: %i, %i, %i)").toUtf8().constData(), (size_mb), (hdd_table[i][0]), (hdd_table[i][1]), (hdd_table[i][2])); + QString text = QString::asprintf(tr("%u MB (CHS: %i, %i, %i)").toUtf8().constData(), size_mb, (hdd_table[i][0]), (hdd_table[i][1]), (hdd_table[i][2])); Models::AddEntry(model, text, i); } Models::AddEntry(model, tr("Custom..."), 127); @@ -312,7 +312,7 @@ HarddiskDialog::onCreateNewFile() ui->progressBar->setEnabled(true); setResult(QDialog::Rejected); quint64 size = ui->lineEditSize->text().toULongLong() << 20U; - if (size > 0x1FFFFFFE00ll) { + if (size > 0x1FFFFFFE00LL) { QMessageBox::critical(this, tr("Disk image too large"), tr("Disk images cannot be larger than 127 GB.")); return; } @@ -357,7 +357,7 @@ HarddiskDialog::onCreateNewFile() if (img_format == IMG_FMT_HDI) { /* HDI file */ QDataStream stream(&file); stream.setByteOrder(QDataStream::LittleEndian); - if (size >= 0x100000000ll) { + if (size >= 0x100000000LL) { QMessageBox::critical(this, tr("Disk image too large"), tr("HDI disk images cannot be larger than 4 GB.")); return; } diff --git a/src/qt/qt_hardwarerenderer.cpp b/src/qt/qt_hardwarerenderer.cpp index 647827e85..ee2ec07df 100644 --- a/src/qt/qt_hardwarerenderer.cpp +++ b/src/qt/qt_hardwarerenderer.cpp @@ -141,7 +141,8 @@ HardwareRenderer::paintGL() { m_context->makeCurrent(this); glClear(GL_COLOR_BUFFER_BIT); - QVector verts, texcoords; + QVector verts; + QVector texcoords; QMatrix4x4 mat; mat.setToIdentity(); mat.ortho(QRectF(0, 0, (qreal) width(), (qreal) height())); diff --git a/src/qt/qt_machinestatus.cpp b/src/qt/qt_machinestatus.cpp index 29b394114..e667ae4eb 100644 --- a/src/qt/qt_machinestatus.cpp +++ b/src/qt/qt_machinestatus.cpp @@ -355,15 +355,14 @@ static int hdd_count(int bus) { int c = 0; - int i; - for (i = 0; i < HDD_NUM; i++) { + for (uint8_t i = 0; i < HDD_NUM; i++) { if (hdd[i].bus == bus) { c++; } } - return (c); + return c; } void diff --git a/src/qt/qt_main.cpp b/src/qt/qt_main.cpp index a41a3e889..daf13f72d 100644 --- a/src/qt/qt_main.cpp +++ b/src/qt/qt_main.cpp @@ -86,8 +86,10 @@ void qt_set_sequence_auto_mnemonic(bool b); void main_thread_fn() { - uint64_t old_time, new_time; - int drawits, frames; + uint64_t old_time; + uint64_t new_time; + int drawits; + int frames; QThread::currentThread()->setPriority(QThread::HighestPriority); framecountx = 0; diff --git a/src/qt/qt_mainwindow.cpp b/src/qt/qt_mainwindow.cpp index 8df0dba3d..e7ced9c67 100644 --- a/src/qt/qt_mainwindow.cpp +++ b/src/qt/qt_mainwindow.cpp @@ -48,7 +48,9 @@ extern "C" { #include <86box/machine.h> #include <86box/vid_ega.h> #include <86box/version.h> -//#include <86box/acpi.h> /* Requires timer.h include, which conflicts with Qt headers */ +#if 0 +#include <86box/acpi.h> /* Requires timer.h include, which conflicts with Qt headers */ +#endif extern atomic_int acpi_pwrbut_pressed; extern int acpi_enabled; @@ -413,19 +415,19 @@ MainWindow::MainWindow(QWidget *parent) newVidApi = RendererStack::Renderer::Software; break; case 1: - newVidApi = (RendererStack::Renderer::OpenGL); + newVidApi = RendererStack::Renderer::OpenGL; break; case 2: - newVidApi = (RendererStack::Renderer::OpenGLES); + newVidApi = RendererStack::Renderer::OpenGLES; break; case 3: - newVidApi = (RendererStack::Renderer::OpenGL3); + newVidApi = RendererStack::Renderer::OpenGL3; break; case 4: - newVidApi = (RendererStack::Renderer::Vulkan); + newVidApi = RendererStack::Renderer::Vulkan; break; case 5: - newVidApi = (RendererStack::Renderer::Direct3D9); + newVidApi = RendererStack::Renderer::Direct3D9; break; #ifdef USE_VNC case 6: diff --git a/src/qt/qt_mediahistorymanager.cpp b/src/qt/qt_mediahistorymanager.cpp index b895b46aa..f71f74fbe 100644 --- a/src/qt/qt_mediahistorymanager.cpp +++ b/src/qt/qt_mediahistorymanager.cpp @@ -241,7 +241,7 @@ MediaHistoryManager::addImageToHistory(int index, ui::MediaType type, const QStr } // Pop any extras - if ((device_history.size() > MAX_PREV_IMAGES)) { + if (device_history.size() > MAX_PREV_IMAGES) { device_history.pop_back(); } diff --git a/src/qt/qt_mediahistorymanager.hpp b/src/qt/qt_mediahistorymanager.hpp index f1942b81c..4eae46f9c 100644 --- a/src/qt/qt_mediahistorymanager.hpp +++ b/src/qt/qt_mediahistorymanager.hpp @@ -90,7 +90,8 @@ private: [[nodiscard]] const master_list_t &getMasterList() const; void setMasterList(const master_list_t &masterList); - device_index_list_t index_list, empty_device_index_list; + device_index_list_t index_list; + device_index_list_t empty_device_index_list; // Return a blank, initialized image history list master_list_t &blankImageHistory(master_list_t &initialized_master_list) const; diff --git a/src/qt/qt_newfloppydialog.cpp b/src/qt/qt_newfloppydialog.cpp index 479b6711f..10c505e3b 100644 --- a/src/qt/qt_newfloppydialog.cpp +++ b/src/qt/qt_newfloppydialog.cpp @@ -61,10 +61,12 @@ struct disk_size_t { static const disk_size_t disk_sizes[14] = { // clang-format off -// { 1, 1, 2, 1, 1, 77, 26, 0, 0, 4, 2, 6, 68 }, /* 250k 8" */ -// { 1, 2, 2, 1, 1, 77, 26, 0, 0, 4, 2, 6, 68 }, /* 500k 8" */ -// { 1, 1, 2, 1, 1, 77, 8, 3, 0, 1, 2, 2, 192 }, /* 616k 8" */ -// { 1, 2, 0, 1, 1, 77, 8, 3, 0, 1, 2, 2, 192 }, /* 1232k 8" */ +#if 0 + { 1, 1, 2, 1, 1, 77, 26, 0, 0, 4, 2, 6, 68 }, /* 250k 8" */ + { 1, 2, 2, 1, 1, 77, 26, 0, 0, 4, 2, 6, 68 }, /* 500k 8" */ + { 1, 1, 2, 1, 1, 77, 8, 3, 0, 1, 2, 2, 192 }, /* 616k 8" */ + { 1, 2, 0, 1, 1, 77, 8, 3, 0, 1, 2, 2, 192 }, /* 1232k 8" */ +#endif { 0, 1, 2, 1, 0, 40, 8, 2, 0xfe, 2, 2, 1, 64 }, /* 160k */ { 0, 1, 2, 1, 0, 40, 9, 2, 0xfc, 2, 2, 1, 64 }, /* 180k */ { 0, 2, 2, 1, 0, 40, 8, 2, 0xff, 2, 2, 1, 112 }, /* 320k */ @@ -79,8 +81,10 @@ static const disk_size_t disk_sizes[14] = { { 2, 2, 3, 1, 0, 80, 36, 2, 0xf0, 2, 2, 9, 240 }, /* 2.88M */ { 0, 64, 0, 0, 0, 96, 32, 2, 0, 0, 0, 0, 0 }, /* ZIP 100 */ { 0, 64, 0, 0, 0, 239, 32, 2, 0, 0, 0, 0, 0 }, /* ZIP 250 */ -// { 0, 8, 0, 0, 0, 963, 32, 2, 0, 0, 0, 0, 0 }, /* LS-120 */ -// { 0, 32, 0, 0, 0, 262, 56, 2, 0, 0, 0, 0, 0 } /* LS-240 */ +#if 0 + { 0, 8, 0, 0, 0, 963, 32, 2, 0, 0, 0, 0, 0 }, /* LS-120 */ + { 0, 32, 0, 0, 0, 262, 56, 2, 0, 0, 0, 0, 0 } /* LS-240 */ +#endif // clang-format on }; @@ -264,7 +268,8 @@ NewFloppyDialog::create86f(const QString &filename, const disk_size_t &disk_size uint32_t index_hole_pos = 0; uint32_t tarray[512]; uint32_t array_size; - uint32_t track_base, track_size; + uint32_t track_base; + uint32_t track_size; int i; uint32_t shift = 0; @@ -644,11 +649,13 @@ bool NewFloppyDialog::createMoSectorImage(const QString &filename, int8_t disk_size, FileType type, QProgressDialog &pbar) { const mo_type_t *dp = &mo_types[disk_size]; - uint32_t total_size = 0, total_size2; + uint32_t total_size = 0; + uint32_t total_size2; uint32_t total_sectors = 0; uint32_t sector_bytes = 0; uint16_t base = 0x1000; - uint32_t pbar_max = 0, blocks_num; + uint32_t pbar_max = 0; + uint32_t blocks_num; QFile file(filename); if (!file.open(QIODevice::WriteOnly)) { diff --git a/src/qt/qt_platform.cpp b/src/qt/qt_platform.cpp index 1fa3b5637..749be8b43 100644 --- a/src/qt/qt_platform.cpp +++ b/src/qt/qt_platform.cpp @@ -48,7 +48,9 @@ # include #endif -// static QByteArray buf; +#if 0 +static QByteArray buf; +#endif extern QElapsedTimer elapsed_timer; extern MainWindow *main_window; QElapsedTimer elapsed_timer; @@ -145,7 +147,9 @@ void do_stop(void) { cpu_thread_run = 0; - // main_window->close(); +#if 0 + main_window->close(); +#endif } void @@ -249,7 +253,7 @@ path_get_filename(char *s) c--; } - return (s); + return s; #else auto idx = QByteArray::fromRawData(s, strlen(s)).lastIndexOf(QDir::separator().toLatin1()); if (idx >= 0) { @@ -353,7 +357,8 @@ void plat_pause(int p) { static wchar_t oldtitle[512]; - wchar_t title[1024], paused_msg[512]; + wchar_t title[1024]; + wchar_t paused_msg[512]; if (p == dopause) { #ifdef Q_OS_WINDOWS @@ -602,6 +607,8 @@ ProgSettings::reloadStrings() translatedstrings[IDS_2143] = QCoreApplication::translate("", "Monitor in sleep mode").toStdWString(); translatedstrings[IDS_2121] = QCoreApplication::translate("", "No ROMs found").toStdWString(); translatedstrings[IDS_2056] = QCoreApplication::translate("", "86Box could not find any usable ROM images.\n\nPlease download a ROM set and extract it into the \"roms\" directory.").toStdWString(); + translatedstrings[IDS_2167] = QCoreApplication::translate("", "Failed to initialize network driver").toStdWString(); + translatedstrings[IDS_2168] = QCoreApplication::translate("", "The network configuration will be switched to the null driver").toStdWString(); auto flsynthstr = QCoreApplication::translate("", " is required for FluidSynth MIDI output."); if (flsynthstr.contains("libfluidsynth")) { diff --git a/src/qt/qt_renderercommon.cpp b/src/qt/qt_renderercommon.cpp index 47bc33d51..c2b38cd52 100644 --- a/src/qt/qt_renderercommon.cpp +++ b/src/qt/qt_renderercommon.cpp @@ -55,7 +55,11 @@ RendererCommon::onResize(int width, int height) destination.setRect(0, 0, width, height); return; } - double dx, dy, dw, dh, gsr; + double dx; + double dy; + double dw; + double dh; + double gsr; double hw = width; double hh = height; diff --git a/src/qt/qt_renderercommon.hpp b/src/qt/qt_renderercommon.hpp index 97370ea3f..34b28fb30 100644 --- a/src/qt/qt_renderercommon.hpp +++ b/src/qt/qt_renderercommon.hpp @@ -41,7 +41,8 @@ public: protected: bool eventDelegate(QEvent *event, bool &result); - QRect source { 0, 0, 0, 0 }, destination; + QRect source { 0, 0, 0, 0 }; + QRect destination; QWidget *parentWidget { nullptr }; std::vector buf_usage; diff --git a/src/qt/qt_rendererstack.cpp b/src/qt/qt_rendererstack.cpp index b5ae84d71..f2a7f38ec 100644 --- a/src/qt/qt_rendererstack.cpp +++ b/src/qt/qt_rendererstack.cpp @@ -58,10 +58,13 @@ double mouse_x_error = 0.0, mouse_y_error = 0.0; } struct mouseinputdata { - atomic_int deltax, deltay, deltaz; + atomic_int deltax; + atomic_int deltay; + atomic_int deltaz; atomic_int mousebuttons; atomic_bool mouse_tablet_in_proximity; - std::atomic x_abs, y_abs; + std::atomic x_abs; + std::atomic y_abs; }; static mouseinputdata mousedata; @@ -435,7 +438,7 @@ RendererStack::createRenderer(Renderer renderer) QTimer::singleShot(0, this, [this]() { switchRenderer(Renderer::Software); }); current.reset(nullptr); break; - }; + } rendererWindow = hw; connect(this, &RendererStack::blitToRenderer, hw, &VulkanWindowRenderer::onBlit, Qt::QueuedConnection); connect(hw, &VulkanWindowRenderer::rendererInitialized, [=]() { diff --git a/src/qt/qt_rendererstack.hpp b/src/qt/qt_rendererstack.hpp index 27e07747c..df52a9542 100644 --- a/src/qt/qt_rendererstack.hpp +++ b/src/qt/qt_rendererstack.hpp @@ -103,7 +103,14 @@ private: Ui::RendererStack *ui; - int x, y, w, h, sx, sy, sw, sh; + int x; + int y; + int w; + int h; + int sx; + int sy; + int sw; + int sh; int currentBuf = 0; int isMouseDown = 0; diff --git a/src/qt/qt_sdl.c b/src/qt/qt_sdl.c index 857ccf381..6d04acd25 100644 --- a/src/qt/qt_sdl.c +++ b/src/qt/qt_sdl.c @@ -78,10 +78,14 @@ static SDL_Window *sdl_win = NULL; static SDL_Renderer *sdl_render = NULL; static SDL_Texture *sdl_tex = NULL; -static int sdl_w, sdl_h; -static int sdl_fs, sdl_flags = -1; -static int cur_w, cur_h; -static int cur_ww = 0, cur_wh = 0; +static int sdl_w; +static int sdl_h; +static int sdl_fs; +static int sdl_flags = -1; +static int cur_w; +static int cur_h; +static int cur_ww = 0; +static int cur_wh = 0; static volatile int sdl_enabled = 0; static SDL_mutex *sdl_mutex = NULL; @@ -236,7 +240,16 @@ sdl_integer_scale(double *d, double *g) static void sdl_stretch(int *w, int *h, int *x, int *y) { - double hw, gw, hh, gh, dx, dy, dw, dh, gsr, hsr; + double hw; + double gw; + double hh; + double gh; + double dx; + double dy; + double dw; + double dh; + double gsr; + double hsr; hw = (double) sdl_w; hh = (double) sdl_h; @@ -298,7 +311,8 @@ sdl_blit(int x, int y, int w, int h) { SDL_Rect r_src; void *pixeldata; - int ret, pitch; + int ret; + int pitch; if (!sdl_enabled || (x < 0) || (y < 0) || (w <= 0) || (h <= 0) || (w > 2048) || (h > 2048) || (buffer32 == NULL) || (sdl_render == NULL) || (sdl_tex == NULL)) { video_blit_complete(); @@ -385,10 +399,9 @@ sdl_close(void) static void sdl_select_best_hw_driver(void) { - int i; SDL_RendererInfo renderInfo; - for (i = 0; i < SDL_GetNumRenderDrivers(); ++i) { + for (int i = 0; i < SDL_GetNumRenderDrivers(); ++i) { SDL_GetRenderDriverInfo(i, &renderInfo); if (renderInfo.flags & SDL_RENDERER_ACCELERATED) { SDL_SetHint(SDL_HINT_RENDER_DRIVER, renderInfo.name); @@ -408,7 +421,7 @@ sdl_init_texture(void) } sdl_tex = SDL_CreateTexture(sdl_render, SDL_PIXELFORMAT_ARGB8888, - SDL_TEXTUREACCESS_STREAMING, (2048), (2048)); + SDL_TEXTUREACCESS_STREAMING, 2048, 2048); if (sdl_render == NULL) { sdl_log("SDL: unable to SDL_CreateRenderer (%s)\n", SDL_GetError()); @@ -520,13 +533,14 @@ sdl_initho(void *win) int sdl_pause(void) { - return (0); + return 0; } void sdl_resize(int w, int h) { - int ww = 0, wh = 0; + int ww = 0; + int wh = 0; if (video_fullscreen & 2) return; diff --git a/src/qt/qt_settings_bus_tracking.cpp b/src/qt/qt_settings_bus_tracking.cpp index c6069e99e..4fe112627 100644 --- a/src/qt/qt_settings_bus_tracking.cpp +++ b/src/qt/qt_settings_bus_tracking.cpp @@ -1,261 +1,256 @@ -/* - * 86Box A hypervisor and IBM PC system emulator that specializes in - * running old operating systems and software designed for IBM - * PC systems and compatibles from 1981 through fairly recent - * system designs based on the PCI bus. - * - * This file is part of the 86Box distribution. - * - * Program settings UI module. - * - * - * - * Authors: Miran Grca - * Cacodemon345 - * - * Copyright 2022 Miran Grca - * Copyright 2022 Cacodemon345 - */ -#include -#include -#include -#include - -#include "86box/hdd.h" -#include "qt_settings_bus_tracking.hpp" - -SettingsBusTracking::SettingsBusTracking() -{ - int i; - - mfm_tracking = 0x0000000000000000ULL; - esdi_tracking = 0x0000000000000000ULL; - xta_tracking = 0x0000000000000000ULL; - - for (i = 0; i < 8; i++) { - if (i < 4) - ide_tracking[i] = 0x0000000000000000ULL; - - scsi_tracking[i] = 0x0000000000000000ULL; - } -} - -uint8_t -SettingsBusTracking::next_free_mfm_channel() -{ - if ((mfm_tracking & 0xff00ULL) && !(mfm_tracking & 0x00ffULL)) - return 1; - - if (!(mfm_tracking & 0xff00ULL) && (mfm_tracking & 0x00ffULL)) - return 0; - - return CHANNEL_NONE; -} - -uint8_t -SettingsBusTracking::next_free_esdi_channel() -{ - if ((esdi_tracking & 0xff00ULL) && !(esdi_tracking & 0x00ffULL)) - return 1; - - if (!(esdi_tracking & 0xff00ULL) && (esdi_tracking & 0x00ffULL)) - return 0; - - return CHANNEL_NONE; -} - -uint8_t -SettingsBusTracking::next_free_xta_channel() -{ - if ((xta_tracking & 0xff00ULL) && !(xta_tracking & 0x00ffULL)) - return 1; - - if (!(xta_tracking & 0xff00ULL) && (xta_tracking & 0x00ffULL)) - return 0; - - return CHANNEL_NONE; -} - -uint8_t -SettingsBusTracking::next_free_ide_channel() -{ - int i, element; - uint64_t mask; - uint8_t ret = CHANNEL_NONE; - - for (i = 0; i < 32; i++) { - element = ((i << 3) >> 6); - mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f)); - - if (!(ide_tracking[element] & mask)) { - ret = (uint8_t) i; - break; - } - } - - return ret; -} - -uint8_t -SettingsBusTracking::next_free_scsi_id() -{ - int i, element; - uint64_t mask; - uint8_t ret = CHANNEL_NONE; - - for (i = 0; i < 64; i++) { - element = ((i << 3) >> 6); - mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f)); - - if (!(scsi_tracking[element] & mask)) { - ret = (uint8_t) i; - break; - } - } - - return ret; -} - -int -SettingsBusTracking::mfm_bus_full() -{ - int i; - uint64_t mask; - uint8_t count = 0; - - for (i = 0; i < 2; i++) { - mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f)); - - if (mfm_tracking & mask) - count++; - } - - return (count == 2); -} - -int -SettingsBusTracking::esdi_bus_full() -{ - int i; - uint64_t mask; - uint8_t count = 0; - - for (i = 0; i < 2; i++) { - mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f)); - - if (esdi_tracking & mask) - count++; - } - - return (count == 2); -} - -int -SettingsBusTracking::xta_bus_full() -{ - int i; - uint64_t mask; - uint8_t count = 0; - - for (i = 0; i < 2; i++) { - mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f)); - - if (xta_tracking & mask) - count++; - } - - return (count == 2); -} - -int -SettingsBusTracking::ide_bus_full() -{ - int i, element; - uint64_t mask; - uint8_t count = 0; - - for (i = 0; i < 32; i++) { - element = ((i << 3) >> 6); - mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f)); - - if (ide_tracking[element] & mask) - count++; - } - - return (count == 32); -} - -int -SettingsBusTracking::scsi_bus_full() -{ - int i, element; - uint64_t mask; - uint8_t count = 0; - - for (i = 0; i < 64; i++) { - element = ((i << 3) >> 6); - mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f)); - - if (scsi_tracking[element] & mask) - count++; - } - - return (count == 64); -} - -void -SettingsBusTracking::device_track(int set, uint8_t dev_type, int bus, int channel) -{ - int element; - uint64_t mask; - - switch (bus) { - case HDD_BUS_MFM: - mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f)); - - if (set) - mfm_tracking |= mask; - else - mfm_tracking &= ~mask; - break; - - case HDD_BUS_ESDI: - mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f)); - - if (set) - esdi_tracking |= mask; - else - esdi_tracking &= ~mask; - break; - - case HDD_BUS_XTA: - mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f)); - - if (set) - xta_tracking |= mask; - else - xta_tracking &= ~mask; - break; - - case HDD_BUS_IDE: - case HDD_BUS_ATAPI: - element = ((channel << 3) >> 6); - mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f)); - - if (set) - ide_tracking[element] |= mask; - else - ide_tracking[element] &= ~mask; - break; - - case HDD_BUS_SCSI: - element = ((channel << 3) >> 6); - mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f)); - - if (set) - scsi_tracking[element] |= mask; - else - scsi_tracking[element] &= ~mask; - break; - } -} +/* + * 86Box A hypervisor and IBM PC system emulator that specializes in + * running old operating systems and software designed for IBM + * PC systems and compatibles from 1981 through fairly recent + * system designs based on the PCI bus. + * + * This file is part of the 86Box distribution. + * + * Program settings UI module. + * + * + * + * Authors: Miran Grca + * Cacodemon345 + * + * Copyright 2022 Miran Grca + * Copyright 2022 Cacodemon345 + */ +#include +#include +#include +#include + +#include "86box/hdd.h" +#include "qt_settings_bus_tracking.hpp" + +SettingsBusTracking::SettingsBusTracking() +{ + mfm_tracking = 0x0000000000000000ULL; + esdi_tracking = 0x0000000000000000ULL; + xta_tracking = 0x0000000000000000ULL; + + for (uint8_t i = 0; i < 8; i++) { + if (i < 4) + ide_tracking[i] = 0x0000000000000000ULL; + + scsi_tracking[i] = 0x0000000000000000ULL; + } +} + +uint8_t +SettingsBusTracking::next_free_mfm_channel() +{ + if ((mfm_tracking & 0xff00ULL) && !(mfm_tracking & 0x00ffULL)) + return 1; + + if (!(mfm_tracking & 0xff00ULL) && (mfm_tracking & 0x00ffULL)) + return 0; + + return CHANNEL_NONE; +} + +uint8_t +SettingsBusTracking::next_free_esdi_channel() +{ + if ((esdi_tracking & 0xff00ULL) && !(esdi_tracking & 0x00ffULL)) + return 1; + + if (!(esdi_tracking & 0xff00ULL) && (esdi_tracking & 0x00ffULL)) + return 0; + + return CHANNEL_NONE; +} + +uint8_t +SettingsBusTracking::next_free_xta_channel() +{ + if ((xta_tracking & 0xff00ULL) && !(xta_tracking & 0x00ffULL)) + return 1; + + if (!(xta_tracking & 0xff00ULL) && (xta_tracking & 0x00ffULL)) + return 0; + + return CHANNEL_NONE; +} + +uint8_t +SettingsBusTracking::next_free_ide_channel() +{ + int element; + uint64_t mask; + uint8_t ret = CHANNEL_NONE; + + for (uint8_t i = 0; i < 32; i++) { + element = ((i << 3) >> 6); + mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f)); + + if (!(ide_tracking[element] & mask)) { + ret = (uint8_t) i; + break; + } + } + + return ret; +} + +uint8_t +SettingsBusTracking::next_free_scsi_id() +{ + int element; + uint64_t mask; + uint8_t ret = CHANNEL_NONE; + + for (uint8_t i = 0; i < 64; i++) { + element = ((i << 3) >> 6); + mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f)); + + if (!(scsi_tracking[element] & mask)) { + ret = (uint8_t) i; + break; + } + } + + return ret; +} + +int +SettingsBusTracking::mfm_bus_full() +{ + uint64_t mask; + uint8_t count = 0; + + for (uint8_t i = 0; i < 2; i++) { + mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f)); + + if (mfm_tracking & mask) + count++; + } + + return (count == 2); +} + +int +SettingsBusTracking::esdi_bus_full() +{ + uint64_t mask; + uint8_t count = 0; + + for (uint8_t i = 0; i < 2; i++) { + mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f)); + + if (esdi_tracking & mask) + count++; + } + + return (count == 2); +} + +int +SettingsBusTracking::xta_bus_full() +{ + uint64_t mask; + uint8_t count = 0; + + for (uint8_t i = 0; i < 2; i++) { + mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f)); + + if (xta_tracking & mask) + count++; + } + + return (count == 2); +} + +int +SettingsBusTracking::ide_bus_full() +{ + int element; + uint64_t mask; + uint8_t count = 0; + + for (uint8_t i = 0; i < 32; i++) { + element = ((i << 3) >> 6); + mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f)); + + if (ide_tracking[element] & mask) + count++; + } + + return (count == 32); +} + +int +SettingsBusTracking::scsi_bus_full() +{ + int element; + uint64_t mask; + uint8_t count = 0; + + for (uint8_t i = 0; i < 64; i++) { + element = ((i << 3) >> 6); + mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f)); + + if (scsi_tracking[element] & mask) + count++; + } + + return (count == 64); +} + +void +SettingsBusTracking::device_track(int set, uint8_t dev_type, int bus, int channel) +{ + int element; + uint64_t mask; + + switch (bus) { + case HDD_BUS_MFM: + mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f)); + + if (set) + mfm_tracking |= mask; + else + mfm_tracking &= ~mask; + break; + + case HDD_BUS_ESDI: + mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f)); + + if (set) + esdi_tracking |= mask; + else + esdi_tracking &= ~mask; + break; + + case HDD_BUS_XTA: + mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f)); + + if (set) + xta_tracking |= mask; + else + xta_tracking &= ~mask; + break; + + case HDD_BUS_IDE: + case HDD_BUS_ATAPI: + element = ((channel << 3) >> 6); + mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f)); + + if (set) + ide_tracking[element] |= mask; + else + ide_tracking[element] &= ~mask; + break; + + case HDD_BUS_SCSI: + element = ((channel << 3) >> 6); + mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f)); + + if (set) + scsi_tracking[element] |= mask; + else + scsi_tracking[element] &= ~mask; + break; + } +} diff --git a/src/qt/qt_settingsharddisks.cpp b/src/qt/qt_settingsharddisks.cpp index 1b6964898..a66203406 100644 --- a/src/qt/qt_settingsharddisks.cpp +++ b/src/qt/qt_settingsharddisks.cpp @@ -44,17 +44,17 @@ const int DataBusChannel = Qt::UserRole + 1; const int DataBusPrevious = Qt::UserRole + 2; const int DataBusChannelPrevious = Qt::UserRole + 3; -/* +#if 0 static void normalize_hd_list() { hard_disk_t ihdd[HDD_NUM]; - int i, j; + int j; j = 0; memset(ihdd, 0x00, HDD_NUM * sizeof(hard_disk_t)); - for (i = 0; i < HDD_NUM; i++) { + for (uint8_t i = 0; i < HDD_NUM; i++) { if (temp_hdd[i].bus != HDD_BUS_DISABLED) { memcpy(&(ihdd[j]), &(temp_hdd[i]), sizeof(hard_disk_t)); j++; @@ -63,7 +63,7 @@ normalize_hd_list() memcpy(temp_hdd, ihdd, HDD_NUM * sizeof(hard_disk_t)); } -*/ +#endif static QString busChannelName(const QModelIndex &idx) diff --git a/src/qt/qt_settingsmachine.cpp b/src/qt/qt_settingsmachine.cpp index fbe30949c..fead5d559 100644 --- a/src/qt/qt_settingsmachine.cpp +++ b/src/qt/qt_settingsmachine.cpp @@ -200,7 +200,7 @@ SettingsMachine::on_comboBoxMachine_currentIndexChanged(int index) ui->comboBoxCPU->setCurrentIndex(selectedCpuFamilyRow); int divisor; - if ((machine_get_ram_granularity(machineId) < 1024)) { + if (machine_get_ram_granularity(machineId) < 1024) { divisor = 1; ui->spinBoxRAM->setSuffix(QCoreApplication::translate("", "KB").prepend(' ')); } else { diff --git a/src/qt/qt_settingsnetwork.cpp b/src/qt/qt_settingsnetwork.cpp index acc7ebfc4..30e296f05 100644 --- a/src/qt/qt_settingsnetwork.cpp +++ b/src/qt/qt_settingsnetwork.cpp @@ -90,8 +90,7 @@ SettingsNetwork::save() if (net_cards_conf[i].net_type == NET_TYPE_PCAP) { strncpy(net_cards_conf[i].host_dev_name, network_devs[cbox->currentData().toInt()].device, sizeof(net_cards_conf[i].host_dev_name) - 1); } else if (net_cards_conf[i].net_type == NET_TYPE_VDE) { - const char *str_socket = socket_line->text().toStdString().c_str(); - strncpy(net_cards_conf[i].host_dev_name, str_socket, strlen(str_socket)); + strncpy(net_cards_conf[i].host_dev_name, socket_line->text().toUtf8().constData(), sizeof(net_cards_conf[i].host_dev_name)); } } } diff --git a/src/qt/qt_ui.cpp b/src/qt/qt_ui.cpp index 9d52e596a..22dad3fa1 100644 --- a/src/qt/qt_ui.cpp +++ b/src/qt/qt_ui.cpp @@ -29,7 +29,9 @@ MainWindow *main_window = nullptr; -static QString sb_text, sb_buguitext, sb_mt32lcdtext; +static QString sb_text; +static QString sb_buguitext; +static QString sb_mt32lcdtext; extern "C" { @@ -221,7 +223,6 @@ ui_sb_bugui(char *str) { sb_buguitext = str; ui_sb_update_text(); - ; } void diff --git a/src/qt/qt_vulkanrenderer.cpp b/src/qt/qt_vulkanrenderer.cpp index 41791a026..73594ea9e 100644 --- a/src/qt/qt_vulkanrenderer.cpp +++ b/src/qt/qt_vulkanrenderer.cpp @@ -1,1013 +1,1015 @@ -/**************************************************************************** -** -** Copyright (C) 2022 Cacodemon345 -** Copyright (C) 2017 The Qt Company Ltd. -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -****************************************************************************/ - -#include -#include -#include "qt_vulkanrenderer.hpp" -#if QT_CONFIG(vulkan) -# include - -extern "C" { -# include <86box/86box.h> -} - -// Use a triangle strip to get a quad. -// -// Note that the vertex data and the projection matrix assume OpenGL. With -// Vulkan Y is negated in clip space and the near/far plane is at 0/1 instead -// of -1/1. These will be corrected for by an extra transformation when -// calculating the modelview-projection matrix. -static float vertexData[] = { // Y up, front = CW - // x, y, z, u, v - -1, -1, 0, 0, 1, - -1, 1, 0, 0, 0, - 1, -1, 0, 1, 1, - 1, 1, 0, 1, 0 -}; - -static const int UNIFORM_DATA_SIZE = 16 * sizeof(float); - -static inline VkDeviceSize -aligned(VkDeviceSize v, VkDeviceSize byteAlign) -{ - return (v + byteAlign - 1) & ~(byteAlign - 1); -} - -VulkanRenderer2::VulkanRenderer2(QVulkanWindow *w) - : m_window(w) -{ -} - -VkShaderModule -VulkanRenderer2::createShader(const QString &name) -{ - QFile file(name); - if (!file.open(QIODevice::ReadOnly)) { - qWarning("Failed to read shader %s", qPrintable(name)); - return VK_NULL_HANDLE; - } - QByteArray blob = file.readAll(); - file.close(); - - VkShaderModuleCreateInfo shaderInfo; - memset(&shaderInfo, 0, sizeof(shaderInfo)); - shaderInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO; - shaderInfo.codeSize = blob.size(); - shaderInfo.pCode = reinterpret_cast(blob.constData()); - VkShaderModule shaderModule; - VkResult err = m_devFuncs->vkCreateShaderModule(m_window->device(), &shaderInfo, nullptr, &shaderModule); - if (err != VK_SUCCESS) { - qWarning("Failed to create shader module: %d", err); - return VK_NULL_HANDLE; - } - - return shaderModule; -} - -bool -VulkanRenderer2::createTexture() -{ - QImage img(2048, 2048, QImage::Format_RGBA8888_Premultiplied); - img.fill(QColor(0, 0, 0)); - - QVulkanFunctions *f = m_window->vulkanInstance()->functions(); - VkDevice dev = m_window->device(); - - m_texFormat = VK_FORMAT_B8G8R8A8_UNORM; - - // Now we can either map and copy the image data directly, or have to go - // through a staging buffer to copy and convert into the internal optimal - // tiling format. - VkFormatProperties props; - f->vkGetPhysicalDeviceFormatProperties(m_window->physicalDevice(), m_texFormat, &props); - const bool canSampleLinear = (props.linearTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT); - const bool canSampleOptimal = (props.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT); - if (!canSampleLinear && !canSampleOptimal) { - qWarning("Neither linear nor optimal image sampling is supported for RGBA8"); - return false; - } - - static bool alwaysStage = qEnvironmentVariableIntValue("QT_VK_FORCE_STAGE_TEX"); - - if (canSampleLinear && !alwaysStage) { - if (!createTextureImage(img.size(), &m_texImage, &m_texMem, - VK_IMAGE_TILING_LINEAR, VK_IMAGE_USAGE_SAMPLED_BIT, - m_window->hostVisibleMemoryIndex())) - return false; - - if (!writeLinearImage(img, m_texImage, m_texMem)) - return false; - - m_texLayoutPending = true; - } else { - if (!createTextureImage(img.size(), &m_texStaging, &m_texStagingMem, - VK_IMAGE_TILING_LINEAR, VK_IMAGE_USAGE_TRANSFER_SRC_BIT, - m_window->hostVisibleMemoryIndex())) - return false; - - if (!createTextureImage(img.size(), &m_texImage, &m_texMem, - VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, - m_window->deviceLocalMemoryIndex())) - return false; - - if (!writeLinearImage(img, m_texStaging, m_texStagingMem)) - return false; - - m_texStagingPending = true; - } - - VkImageViewCreateInfo viewInfo; - memset(&viewInfo, 0, sizeof(viewInfo)); - viewInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; - viewInfo.image = m_texImage; - viewInfo.viewType = VK_IMAGE_VIEW_TYPE_2D; - viewInfo.format = m_texFormat; - viewInfo.components.r = VK_COMPONENT_SWIZZLE_R; - viewInfo.components.g = VK_COMPONENT_SWIZZLE_G; - viewInfo.components.b = VK_COMPONENT_SWIZZLE_B; - viewInfo.components.a = VK_COMPONENT_SWIZZLE_A; - viewInfo.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - viewInfo.subresourceRange.levelCount = viewInfo.subresourceRange.layerCount = 1; - - VkResult err = m_devFuncs->vkCreateImageView(dev, &viewInfo, nullptr, &m_texView); - if (err != VK_SUCCESS) { - qWarning("Failed to create image view for texture: %d", err); - return false; - } - - m_texSize = img.size(); - - return true; -} - -bool -VulkanRenderer2::createTextureImage(const QSize &size, VkImage *image, VkDeviceMemory *mem, - VkImageTiling tiling, VkImageUsageFlags usage, uint32_t memIndex) -{ - VkDevice dev = m_window->device(); - - VkImageCreateInfo imageInfo; - memset(&imageInfo, 0, sizeof(imageInfo)); - imageInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; - imageInfo.imageType = VK_IMAGE_TYPE_2D; - imageInfo.format = m_texFormat; - imageInfo.extent.width = size.width(); - imageInfo.extent.height = size.height(); - imageInfo.extent.depth = 1; - imageInfo.mipLevels = 1; - imageInfo.arrayLayers = 1; - imageInfo.samples = VK_SAMPLE_COUNT_1_BIT; - imageInfo.tiling = tiling; - imageInfo.usage = usage; - imageInfo.initialLayout = VK_IMAGE_LAYOUT_PREINITIALIZED; - - VkResult err = m_devFuncs->vkCreateImage(dev, &imageInfo, nullptr, image); - if (err != VK_SUCCESS) { - qWarning("Failed to create linear image for texture: %d", err); - return false; - } - - VkMemoryRequirements memReq; - m_devFuncs->vkGetImageMemoryRequirements(dev, *image, &memReq); - - if (!(memReq.memoryTypeBits & (1 << memIndex))) { - VkPhysicalDeviceMemoryProperties physDevMemProps; - m_window->vulkanInstance()->functions()->vkGetPhysicalDeviceMemoryProperties(m_window->physicalDevice(), &physDevMemProps); - for (uint32_t i = 0; i < physDevMemProps.memoryTypeCount; ++i) { - if (!(memReq.memoryTypeBits & (1 << i))) - continue; - memIndex = i; - } - } - - VkMemoryAllocateInfo allocInfo = { - VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, - nullptr, - memReq.size, - memIndex - }; - qDebug("allocating %u bytes for texture image", uint32_t(memReq.size)); - - err = m_devFuncs->vkAllocateMemory(dev, &allocInfo, nullptr, mem); - if (err != VK_SUCCESS) { - qWarning("Failed to allocate memory for linear image: %d", err); - return false; - } - - err = m_devFuncs->vkBindImageMemory(dev, *image, *mem, 0); - if (err != VK_SUCCESS) { - qWarning("Failed to bind linear image memory: %d", err); - return false; - } - - return true; -} - -bool -VulkanRenderer2::writeLinearImage(const QImage &img, VkImage image, VkDeviceMemory memory) -{ - VkDevice dev = m_window->device(); - - VkImageSubresource subres = { - VK_IMAGE_ASPECT_COLOR_BIT, - 0, // mip level - 0 - }; - VkSubresourceLayout layout; - m_devFuncs->vkGetImageSubresourceLayout(dev, image, &subres, &layout); - - uchar *p; - VkResult err = m_devFuncs->vkMapMemory(dev, memory, layout.offset, layout.size, 0, reinterpret_cast(&p)); - if (err != VK_SUCCESS) { - qWarning("Failed to map memory for linear image: %d", err); - return false; - } - - for (int y = 0; y < img.height(); ++y) { - const uchar *line = img.constScanLine(y); - memcpy(p, line, img.width() * 4); - p += layout.rowPitch; - } - - m_devFuncs->vkUnmapMemory(dev, memory); - return true; -} - -void -VulkanRenderer2::ensureTexture() -{ - if (!m_texLayoutPending && !m_texStagingPending) - return; - - Q_ASSERT(m_texLayoutPending != m_texStagingPending); - VkCommandBuffer cb = m_window->currentCommandBuffer(); - - VkImageMemoryBarrier barrier; - memset(&barrier, 0, sizeof(barrier)); - barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; - barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - barrier.subresourceRange.levelCount = barrier.subresourceRange.layerCount = 1; - - if (m_texLayoutPending) { - m_texLayoutPending = false; - - barrier.oldLayout = VK_IMAGE_LAYOUT_PREINITIALIZED; - barrier.newLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; - barrier.srcAccessMask = VK_ACCESS_HOST_WRITE_BIT; - barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; - barrier.image = m_texImage; - - m_devFuncs->vkCmdPipelineBarrier(cb, - VK_PIPELINE_STAGE_HOST_BIT, - VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, - 0, 0, nullptr, 0, nullptr, - 1, &barrier); - - VkDevice dev = m_window->device(); - - VkImageSubresource subres = { - VK_IMAGE_ASPECT_COLOR_BIT, - 0, // mip level - 0 - }; - VkSubresourceLayout layout; - m_devFuncs->vkGetImageSubresourceLayout(dev, m_texImage, &subres, &layout); - - VkResult err = m_devFuncs->vkMapMemory(dev, m_texMem, layout.offset, layout.size, 0, reinterpret_cast(&mappedPtr)); - if (err != VK_SUCCESS) { - qWarning("Failed to map memory for linear image: %d", err); - return emit qobject_cast(m_window)->errorInitializing(); - } - imagePitch = layout.rowPitch; - - if (qobject_cast(m_window)) { - emit qobject_cast(m_window)->rendererInitialized(); - } - } else { - m_texStagingPending = false; - - if (!m_texStagingTransferLayout) { - barrier.oldLayout = VK_IMAGE_LAYOUT_PREINITIALIZED; - barrier.newLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL; - barrier.srcAccessMask = VK_ACCESS_HOST_WRITE_BIT; - barrier.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT; - barrier.image = m_texStaging; - m_devFuncs->vkCmdPipelineBarrier(cb, - VK_PIPELINE_STAGE_HOST_BIT, - VK_PIPELINE_STAGE_TRANSFER_BIT, - 0, 0, nullptr, 0, nullptr, - 1, &barrier); - - barrier.oldLayout = VK_IMAGE_LAYOUT_PREINITIALIZED; - barrier.newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL; - barrier.srcAccessMask = 0; - barrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; - barrier.image = m_texImage; - m_devFuncs->vkCmdPipelineBarrier(cb, - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, - VK_PIPELINE_STAGE_TRANSFER_BIT, - 0, 0, nullptr, 0, nullptr, - 1, &barrier); - - VkDevice dev = m_window->device(); - - VkImageSubresource subres = { - VK_IMAGE_ASPECT_COLOR_BIT, - 0, // mip level - 0 - }; - VkSubresourceLayout layout; - m_devFuncs->vkGetImageSubresourceLayout(dev, m_texStaging, &subres, &layout); - - VkResult err = m_devFuncs->vkMapMemory(dev, m_texStagingMem, layout.offset, layout.size, 0, reinterpret_cast(&mappedPtr)); - if (err != VK_SUCCESS) { - qWarning("Failed to map memory for linear image: %d", err); - return emit qobject_cast(m_window)->errorInitializing(); - } - imagePitch = layout.rowPitch; - - if (qobject_cast(m_window)) { - emit qobject_cast(m_window)->rendererInitialized(); - } - - m_texStagingTransferLayout = true; - } - - VkImageCopy copyInfo; - memset(©Info, 0, sizeof(copyInfo)); - copyInfo.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - copyInfo.srcSubresource.layerCount = 1; - copyInfo.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - copyInfo.dstSubresource.layerCount = 1; - copyInfo.extent.width = m_texSize.width(); - copyInfo.extent.height = m_texSize.height(); - copyInfo.extent.depth = 1; - m_devFuncs->vkCmdCopyImage(cb, m_texStaging, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, - m_texImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ©Info); - - barrier.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL; - barrier.newLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; - barrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; - barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; - barrier.image = m_texImage; - m_devFuncs->vkCmdPipelineBarrier(cb, - VK_PIPELINE_STAGE_TRANSFER_BIT, - VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, - 0, 0, nullptr, 0, nullptr, - 1, &barrier); - } -} - -void -VulkanRenderer2::updateSamplers() -{ - static int cur_video_filter_method = -1; - - if (cur_video_filter_method != video_filter_method) { - cur_video_filter_method = video_filter_method; - m_devFuncs->vkDeviceWaitIdle(m_window->device()); - - VkDescriptorImageInfo descImageInfo = { - cur_video_filter_method == 1 ? m_linearSampler : m_sampler, - m_texView, - VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL - }; - - for (int i = 0; i < m_window->concurrentFrameCount(); i++) { - VkWriteDescriptorSet descWrite[2]; - memset(descWrite, 0, sizeof(descWrite)); - descWrite[0].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; - descWrite[0].dstSet = m_descSet[i]; - descWrite[0].dstBinding = 0; - descWrite[0].descriptorCount = 1; - descWrite[0].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; - descWrite[0].pBufferInfo = &m_uniformBufInfo[i]; - - descWrite[1].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; - descWrite[1].dstSet = m_descSet[i]; - descWrite[1].dstBinding = 1; - descWrite[1].descriptorCount = 1; - descWrite[1].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - descWrite[1].pImageInfo = &descImageInfo; - m_devFuncs->vkUpdateDescriptorSets(m_window->device(), 2, descWrite, 0, nullptr); - } - } -} - -void -VulkanRenderer2::initResources() -{ - qDebug("initResources"); - - VkDevice dev = m_window->device(); - m_devFuncs = m_window->vulkanInstance()->deviceFunctions(dev); - - // The setup is similar to hellovulkantriangle. The difference is the - // presence of a second vertex attribute (texcoord), a sampler, and that we - // need blending. - - const int concurrentFrameCount = m_window->concurrentFrameCount(); - const VkPhysicalDeviceLimits *pdevLimits = &m_window->physicalDeviceProperties()->limits; - const VkDeviceSize uniAlign = pdevLimits->minUniformBufferOffsetAlignment; - qDebug("uniform buffer offset alignment is %u", (uint) uniAlign); - VkBufferCreateInfo bufInfo; - memset(&bufInfo, 0, sizeof(bufInfo)); - bufInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; - // Our internal layout is vertex, uniform, uniform, ... with each uniform buffer start offset aligned to uniAlign. - const VkDeviceSize vertexAllocSize = aligned(sizeof(vertexData), uniAlign); - const VkDeviceSize uniformAllocSize = aligned(UNIFORM_DATA_SIZE, uniAlign); - bufInfo.size = vertexAllocSize + concurrentFrameCount * uniformAllocSize; - bufInfo.usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT; - - VkResult err = m_devFuncs->vkCreateBuffer(dev, &bufInfo, nullptr, &m_buf); - if (err != VK_SUCCESS) { - qWarning("Failed to create buffer: %d", err); - return emit qobject_cast(m_window)->errorInitializing(); - } - - VkMemoryRequirements memReq; - m_devFuncs->vkGetBufferMemoryRequirements(dev, m_buf, &memReq); - - VkMemoryAllocateInfo memAllocInfo = { - VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, - nullptr, - memReq.size, - m_window->hostVisibleMemoryIndex() - }; - - err = m_devFuncs->vkAllocateMemory(dev, &memAllocInfo, nullptr, &m_bufMem); - if (err != VK_SUCCESS) { - qWarning("Failed to allocate memory: %d", err); - return emit qobject_cast(m_window)->errorInitializing(); - } - - err = m_devFuncs->vkBindBufferMemory(dev, m_buf, m_bufMem, 0); - if (err != VK_SUCCESS) { - qWarning("Failed to bind buffer memory: %d", err); - return emit qobject_cast(m_window)->errorInitializing(); - } - - quint8 *p; - err = m_devFuncs->vkMapMemory(dev, m_bufMem, 0, memReq.size, 0, reinterpret_cast(&p)); - if (err != VK_SUCCESS) { - qWarning("Failed to map memory: %d", err); - return emit qobject_cast(m_window)->errorInitializing(); - } - memcpy(p, vertexData, sizeof(vertexData)); - QMatrix4x4 ident; - memset(m_uniformBufInfo, 0, sizeof(m_uniformBufInfo)); - for (int i = 0; i < concurrentFrameCount; ++i) { - const VkDeviceSize offset = vertexAllocSize + i * uniformAllocSize; - memcpy(p + offset, ident.constData(), 16 * sizeof(float)); - m_uniformBufInfo[i].buffer = m_buf; - m_uniformBufInfo[i].offset = offset; - m_uniformBufInfo[i].range = uniformAllocSize; - } - m_devFuncs->vkUnmapMemory(dev, m_bufMem); - - VkVertexInputBindingDescription vertexBindingDesc = { - 0, // binding - 5 * sizeof(float), - VK_VERTEX_INPUT_RATE_VERTEX - }; - VkVertexInputAttributeDescription vertexAttrDesc[] = { - {// position - 0, // location - 0, // binding - VK_FORMAT_R32G32B32_SFLOAT, - 0 }, - { // texcoord - 1, - 0, - VK_FORMAT_R32G32_SFLOAT, - 3 * sizeof(float)} - }; - - VkPipelineVertexInputStateCreateInfo vertexInputInfo; - vertexInputInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO; - vertexInputInfo.pNext = nullptr; - vertexInputInfo.flags = 0; - vertexInputInfo.vertexBindingDescriptionCount = 1; - vertexInputInfo.pVertexBindingDescriptions = &vertexBindingDesc; - vertexInputInfo.vertexAttributeDescriptionCount = 2; - vertexInputInfo.pVertexAttributeDescriptions = vertexAttrDesc; - - // Sampler. - VkSamplerCreateInfo samplerInfo; - memset(&samplerInfo, 0, sizeof(samplerInfo)); - samplerInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO; - samplerInfo.magFilter = VK_FILTER_NEAREST; - samplerInfo.minFilter = VK_FILTER_NEAREST; - samplerInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; - samplerInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; - samplerInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; - samplerInfo.maxAnisotropy = 1.0f; - samplerInfo.maxLod = 0.25; - err = m_devFuncs->vkCreateSampler(dev, &samplerInfo, nullptr, &m_sampler); - if (err != VK_SUCCESS) { - qWarning("Failed to create sampler: %d", err); - return emit qobject_cast(m_window)->errorInitializing(); - } - - samplerInfo.magFilter = VK_FILTER_LINEAR; - samplerInfo.minFilter = VK_FILTER_LINEAR; - err = m_devFuncs->vkCreateSampler(dev, &samplerInfo, nullptr, &m_linearSampler); - if (err != VK_SUCCESS) { - qWarning("Failed to create sampler: %d", err); - return emit qobject_cast(m_window)->errorInitializing(); - } - - // Texture. - if (!createTexture()) { - qWarning("Failed to create texture"); - return emit qobject_cast(m_window)->errorInitializing(); - } - - // Set up descriptor set and its layout. - VkDescriptorPoolSize descPoolSizes[2] = { - {VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, uint32_t(concurrentFrameCount)}, - { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, uint32_t(concurrentFrameCount)} - }; - VkDescriptorPoolCreateInfo descPoolInfo; - memset(&descPoolInfo, 0, sizeof(descPoolInfo)); - descPoolInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO; - descPoolInfo.maxSets = concurrentFrameCount; - descPoolInfo.poolSizeCount = 2; - descPoolInfo.pPoolSizes = descPoolSizes; - err = m_devFuncs->vkCreateDescriptorPool(dev, &descPoolInfo, nullptr, &m_descPool); - if (err != VK_SUCCESS) { - qWarning("Failed to create descriptor pool: %d", err); - return emit qobject_cast(m_window)->errorInitializing(); - } - - VkDescriptorSetLayoutBinding layoutBinding[2] = { - {0, // binding - VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, - 1, // descriptorCount - VK_SHADER_STAGE_VERTEX_BIT, - nullptr}, - { 1, // binding - VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, - 1, // descriptorCount - VK_SHADER_STAGE_FRAGMENT_BIT, - nullptr} - }; - VkDescriptorSetLayoutCreateInfo descLayoutInfo = { - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO, - nullptr, - 0, - 2, // bindingCount - layoutBinding - }; - err = m_devFuncs->vkCreateDescriptorSetLayout(dev, &descLayoutInfo, nullptr, &m_descSetLayout); - if (err != VK_SUCCESS) { - qWarning("Failed to create descriptor set layout: %d", err); - return emit qobject_cast(m_window)->errorInitializing(); - } - - for (int i = 0; i < concurrentFrameCount; ++i) { - VkDescriptorSetAllocateInfo descSetAllocInfo = { - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO, - nullptr, - m_descPool, - 1, - &m_descSetLayout - }; - err = m_devFuncs->vkAllocateDescriptorSets(dev, &descSetAllocInfo, &m_descSet[i]); - if (err != VK_SUCCESS) { - qWarning("Failed to allocate descriptor set: %d", err); - return emit qobject_cast(m_window)->errorInitializing(); - } - - VkWriteDescriptorSet descWrite[2]; - memset(descWrite, 0, sizeof(descWrite)); - descWrite[0].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; - descWrite[0].dstSet = m_descSet[i]; - descWrite[0].dstBinding = 0; - descWrite[0].descriptorCount = 1; - descWrite[0].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; - descWrite[0].pBufferInfo = &m_uniformBufInfo[i]; - - VkDescriptorImageInfo descImageInfo = { - video_filter_method == 1 ? m_linearSampler : m_sampler, - m_texView, - VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL - }; - - descWrite[1].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; - descWrite[1].dstSet = m_descSet[i]; - descWrite[1].dstBinding = 1; - descWrite[1].descriptorCount = 1; - descWrite[1].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - descWrite[1].pImageInfo = &descImageInfo; - - m_devFuncs->vkUpdateDescriptorSets(dev, 2, descWrite, 0, nullptr); - } - - // Pipeline cache - VkPipelineCacheCreateInfo pipelineCacheInfo; - memset(&pipelineCacheInfo, 0, sizeof(pipelineCacheInfo)); - pipelineCacheInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO; - err = m_devFuncs->vkCreatePipelineCache(dev, &pipelineCacheInfo, nullptr, &m_pipelineCache); - if (err != VK_SUCCESS) { - qWarning("Failed to create pipeline cache: %d", err); - return emit qobject_cast(m_window)->errorInitializing(); - } - - // Pipeline layout - VkPipelineLayoutCreateInfo pipelineLayoutInfo; - memset(&pipelineLayoutInfo, 0, sizeof(pipelineLayoutInfo)); - pipelineLayoutInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO; - pipelineLayoutInfo.setLayoutCount = 1; - pipelineLayoutInfo.pSetLayouts = &m_descSetLayout; - err = m_devFuncs->vkCreatePipelineLayout(dev, &pipelineLayoutInfo, nullptr, &m_pipelineLayout); - if (err != VK_SUCCESS) { - qWarning("Failed to create pipeline layout: %d", err); - return emit qobject_cast(m_window)->errorInitializing(); - } - - // Shaders - /* - #version 440 - - layout(location = 0) in vec4 position; - layout(location = 1) in vec2 texcoord; - - layout(location = 0) out vec2 v_texcoord; - - layout(std140, binding = 0) uniform buf { - mat4 mvp; - } ubuf; - - out gl_PerVertex { vec4 gl_Position; }; - - void main() - { - v_texcoord = texcoord; - gl_Position = ubuf.mvp * position; - } - */ - VkShaderModule vertShaderModule = createShader(QStringLiteral(":/texture_vert.spv")); - /* - #version 440 - - layout(location = 0) in vec2 v_texcoord; - - layout(location = 0) out vec4 fragColor; - - layout(binding = 1) uniform sampler2D tex; - - void main() - { - fragColor = texture(tex, v_texcoord); - } - */ - VkShaderModule fragShaderModule = createShader(QStringLiteral(":/texture_frag.spv")); - - // Graphics pipeline - VkGraphicsPipelineCreateInfo pipelineInfo; - memset(&pipelineInfo, 0, sizeof(pipelineInfo)); - pipelineInfo.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO; - - VkPipelineShaderStageCreateInfo shaderStages[2] = { - { - VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, - nullptr, - 0, - VK_SHADER_STAGE_VERTEX_BIT, - vertShaderModule, - "main", - nullptr - }, - { - VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, - nullptr, - 0, - VK_SHADER_STAGE_FRAGMENT_BIT, - fragShaderModule, - "main", - nullptr - } - }; - pipelineInfo.stageCount = 2; - pipelineInfo.pStages = shaderStages; - - pipelineInfo.pVertexInputState = &vertexInputInfo; - - VkPipelineInputAssemblyStateCreateInfo ia; - memset(&ia, 0, sizeof(ia)); - ia.sType = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO; - ia.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP; - pipelineInfo.pInputAssemblyState = &ia; - - // The viewport and scissor will be set dynamically via vkCmdSetViewport/Scissor. - // This way the pipeline does not need to be touched when resizing the window. - VkPipelineViewportStateCreateInfo vp; - memset(&vp, 0, sizeof(vp)); - vp.sType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO; - vp.viewportCount = 1; - vp.scissorCount = 1; - pipelineInfo.pViewportState = &vp; - - VkPipelineRasterizationStateCreateInfo rs; - memset(&rs, 0, sizeof(rs)); - rs.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO; - rs.polygonMode = VK_POLYGON_MODE_FILL; - rs.cullMode = VK_CULL_MODE_BACK_BIT; - rs.frontFace = VK_FRONT_FACE_CLOCKWISE; - rs.lineWidth = 1.0f; - pipelineInfo.pRasterizationState = &rs; - - VkPipelineMultisampleStateCreateInfo ms; - memset(&ms, 0, sizeof(ms)); - ms.sType = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO; - ms.rasterizationSamples = VK_SAMPLE_COUNT_1_BIT; - pipelineInfo.pMultisampleState = &ms; - - VkPipelineDepthStencilStateCreateInfo ds; - memset(&ds, 0, sizeof(ds)); - ds.sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO; - ds.depthTestEnable = VK_TRUE; - ds.depthWriteEnable = VK_TRUE; - ds.depthCompareOp = VK_COMPARE_OP_LESS_OR_EQUAL; - pipelineInfo.pDepthStencilState = &ds; - - VkPipelineColorBlendStateCreateInfo cb; - memset(&cb, 0, sizeof(cb)); - cb.sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO; - // assume pre-multiplied alpha, blend, write out all of rgba - VkPipelineColorBlendAttachmentState att; - memset(&att, 0, sizeof(att)); - att.colorWriteMask = 0xF; - att.blendEnable = VK_TRUE; - att.srcColorBlendFactor = VK_BLEND_FACTOR_ONE; - att.dstColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA; - att.colorBlendOp = VK_BLEND_OP_ADD; - att.srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE; - att.dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA; - att.alphaBlendOp = VK_BLEND_OP_ADD; - cb.attachmentCount = 1; - cb.pAttachments = &att; - pipelineInfo.pColorBlendState = &cb; - - VkDynamicState dynEnable[] = { VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR }; - VkPipelineDynamicStateCreateInfo dyn; - memset(&dyn, 0, sizeof(dyn)); - dyn.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO; - dyn.dynamicStateCount = sizeof(dynEnable) / sizeof(VkDynamicState); - dyn.pDynamicStates = dynEnable; - pipelineInfo.pDynamicState = &dyn; - - pipelineInfo.layout = m_pipelineLayout; - pipelineInfo.renderPass = m_window->defaultRenderPass(); - - err = m_devFuncs->vkCreateGraphicsPipelines(dev, m_pipelineCache, 1, &pipelineInfo, nullptr, &m_pipeline); - if (err != VK_SUCCESS) { - qWarning("Failed to create graphics pipeline: %d", err); - return emit qobject_cast(m_window)->errorInitializing(); - } - - if (vertShaderModule) - m_devFuncs->vkDestroyShaderModule(dev, vertShaderModule, nullptr); - if (fragShaderModule) - m_devFuncs->vkDestroyShaderModule(dev, fragShaderModule, nullptr); - - pclog("Vulkan device: %s\n", m_window->physicalDeviceProperties()->deviceName); - pclog("Vulkan API version: %d.%d.%d\n", VK_VERSION_MAJOR(m_window->physicalDeviceProperties()->apiVersion), VK_VERSION_MINOR(m_window->physicalDeviceProperties()->apiVersion), VK_VERSION_PATCH(m_window->physicalDeviceProperties()->apiVersion)); - pclog("Vulkan driver version: %d.%d.%d\n", VK_VERSION_MAJOR(m_window->physicalDeviceProperties()->driverVersion), VK_VERSION_MINOR(m_window->physicalDeviceProperties()->driverVersion), VK_VERSION_PATCH(m_window->physicalDeviceProperties()->driverVersion)); -} - -void -VulkanRenderer2::initSwapChainResources() -{ - qDebug("initSwapChainResources"); - - // Projection matrix - m_proj = m_window->clipCorrectionMatrix(); // adjust for Vulkan-OpenGL clip space differences -} - -void -VulkanRenderer2::releaseSwapChainResources() -{ - qDebug("releaseSwapChainResources"); -} - -void -VulkanRenderer2::releaseResources() -{ - qDebug("releaseResources"); - - VkDevice dev = m_window->device(); - - if (m_sampler) { - m_devFuncs->vkDestroySampler(dev, m_sampler, nullptr); - m_sampler = VK_NULL_HANDLE; - } - - if (m_linearSampler) { - m_devFuncs->vkDestroySampler(dev, m_linearSampler, nullptr); - m_linearSampler = VK_NULL_HANDLE; - } - - if (m_texStaging) { - m_devFuncs->vkDestroyImage(dev, m_texStaging, nullptr); - m_texStaging = VK_NULL_HANDLE; - } - - if (m_texStagingMem) { - m_devFuncs->vkFreeMemory(dev, m_texStagingMem, nullptr); - m_texStagingMem = VK_NULL_HANDLE; - } - - if (m_texView) { - m_devFuncs->vkDestroyImageView(dev, m_texView, nullptr); - m_texView = VK_NULL_HANDLE; - } - - if (m_texImage) { - m_devFuncs->vkDestroyImage(dev, m_texImage, nullptr); - m_texImage = VK_NULL_HANDLE; - } - - if (m_texMem) { - m_devFuncs->vkFreeMemory(dev, m_texMem, nullptr); - m_texMem = VK_NULL_HANDLE; - } - - if (m_pipeline) { - m_devFuncs->vkDestroyPipeline(dev, m_pipeline, nullptr); - m_pipeline = VK_NULL_HANDLE; - } - - if (m_pipelineLayout) { - m_devFuncs->vkDestroyPipelineLayout(dev, m_pipelineLayout, nullptr); - m_pipelineLayout = VK_NULL_HANDLE; - } - - if (m_pipelineCache) { - m_devFuncs->vkDestroyPipelineCache(dev, m_pipelineCache, nullptr); - m_pipelineCache = VK_NULL_HANDLE; - } - - if (m_descSetLayout) { - m_devFuncs->vkDestroyDescriptorSetLayout(dev, m_descSetLayout, nullptr); - m_descSetLayout = VK_NULL_HANDLE; - } - - if (m_descPool) { - m_devFuncs->vkDestroyDescriptorPool(dev, m_descPool, nullptr); - m_descPool = VK_NULL_HANDLE; - } - - if (m_buf) { - m_devFuncs->vkDestroyBuffer(dev, m_buf, nullptr); - m_buf = VK_NULL_HANDLE; - } - - if (m_bufMem) { - m_devFuncs->vkFreeMemory(dev, m_bufMem, nullptr); - m_bufMem = VK_NULL_HANDLE; - } -} - -void -VulkanRenderer2::startNextFrame() -{ - VkDevice dev = m_window->device(); - VkCommandBuffer cb = m_window->currentCommandBuffer(); - const QSize sz = m_window->swapChainImageSize(); - - updateSamplers(); - // Add the necessary barriers and do the host-linear -> device-optimal copy, if not yet done. - ensureTexture(); - - VkClearColorValue clearColor = { - {0, 0, 0, 1} - }; - VkClearDepthStencilValue clearDS = { 1, 0 }; - VkClearValue clearValues[2]; - memset(clearValues, 0, sizeof(clearValues)); - clearValues[0].color = clearColor; - clearValues[1].depthStencil = clearDS; - - VkRenderPassBeginInfo rpBeginInfo; - memset(&rpBeginInfo, 0, sizeof(rpBeginInfo)); - rpBeginInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO; - rpBeginInfo.renderPass = m_window->defaultRenderPass(); - rpBeginInfo.framebuffer = m_window->currentFramebuffer(); - rpBeginInfo.renderArea.extent.width = sz.width(); - rpBeginInfo.renderArea.extent.height = sz.height(); - rpBeginInfo.clearValueCount = 2; - rpBeginInfo.pClearValues = clearValues; - VkCommandBuffer cmdBuf = m_window->currentCommandBuffer(); - m_devFuncs->vkCmdBeginRenderPass(cmdBuf, &rpBeginInfo, VK_SUBPASS_CONTENTS_INLINE); - - quint8 *p; - VkResult err = m_devFuncs->vkMapMemory(dev, m_bufMem, m_uniformBufInfo[m_window->currentFrame()].offset, - UNIFORM_DATA_SIZE, 0, reinterpret_cast(&p)); - if (err != VK_SUCCESS) - qFatal("Failed to map memory: %d", err); - QMatrix4x4 m = m_proj; - // m.rotate(m_rotation, 0, 0, 1); - memcpy(p, m.constData(), 16 * sizeof(float)); - m_devFuncs->vkUnmapMemory(dev, m_bufMem); - p = nullptr; - - // Second pass for texture coordinates. - err = m_devFuncs->vkMapMemory(dev, m_bufMem, 0, - sizeof(vertexData), 0, reinterpret_cast(&p)); - if (err != VK_SUCCESS) - qFatal("Failed to map memory: %d", err); - - float *floatData = (float *) p; - auto source = qobject_cast(m_window)->source; - auto destination = qobject_cast(m_window)->destination; - floatData[3] = (float) source.x() / 2048.f; - floatData[9] = (float) (source.y()) / 2048.f; - floatData[8] = (float) source.x() / 2048.f; - floatData[4] = (float) (source.y() + source.height()) / 2048.f; - floatData[13] = (float) (source.x() + source.width()) / 2048.f; - floatData[19] = (float) (source.y()) / 2048.f; - floatData[18] = (float) (source.x() + source.width()) / 2048.f; - floatData[14] = (float) (source.y() + source.height()) / 2048.f; - - m_devFuncs->vkUnmapMemory(dev, m_bufMem); - - m_devFuncs->vkCmdBindPipeline(cb, VK_PIPELINE_BIND_POINT_GRAPHICS, m_pipeline); - m_devFuncs->vkCmdBindDescriptorSets(cb, VK_PIPELINE_BIND_POINT_GRAPHICS, m_pipelineLayout, 0, 1, - &m_descSet[m_window->currentFrame()], 0, nullptr); - VkDeviceSize vbOffset = 0; - m_devFuncs->vkCmdBindVertexBuffers(cb, 0, 1, &m_buf, &vbOffset); - - VkViewport viewport; - viewport.x = destination.x() * m_window->devicePixelRatio(); - viewport.y = destination.y() * m_window->devicePixelRatio(); - viewport.width = destination.width() * m_window->devicePixelRatio(); - viewport.height = destination.height() * m_window->devicePixelRatio(); - viewport.minDepth = 0; - viewport.maxDepth = 1; - m_devFuncs->vkCmdSetViewport(cb, 0, 1, &viewport); - - VkRect2D scissor; - scissor.offset.x = viewport.x; - scissor.offset.y = viewport.y; - scissor.extent.width = viewport.width; - scissor.extent.height = viewport.height; - m_devFuncs->vkCmdSetScissor(cb, 0, 1, &scissor); - - m_devFuncs->vkCmdDraw(cb, 4, 1, 0, 0); - - m_devFuncs->vkCmdEndRenderPass(cmdBuf); - - if (m_texStagingTransferLayout) { - VkImageMemoryBarrier barrier {}; - barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; - barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - barrier.subresourceRange.levelCount = barrier.subresourceRange.layerCount = 1; - barrier.newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL; - barrier.oldLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; - barrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; - barrier.srcAccessMask = VK_ACCESS_SHADER_READ_BIT; - barrier.image = m_texImage; - m_devFuncs->vkCmdPipelineBarrier(cb, - VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, - VK_PIPELINE_STAGE_TRANSFER_BIT, - 0, 0, nullptr, 0, nullptr, - 1, &barrier); - m_texStagingPending = true; - } - - m_window->frameReady(); - m_window->requestUpdate(); // render continuously, throttled by the presentation rate -} -#endif +/**************************************************************************** +** +** Copyright (C) 2022 Cacodemon345 +** Copyright (C) 2017 The Qt Company Ltd. +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +****************************************************************************/ + +#include +#include +#include "qt_vulkanrenderer.hpp" +#if QT_CONFIG(vulkan) +# include + +extern "C" { +# include <86box/86box.h> +} + +// Use a triangle strip to get a quad. +// +// Note that the vertex data and the projection matrix assume OpenGL. With +// Vulkan Y is negated in clip space and the near/far plane is at 0/1 instead +// of -1/1. These will be corrected for by an extra transformation when +// calculating the modelview-projection matrix. +static float vertexData[] = { // Y up, front = CW + // x, y, z, u, v + -1, -1, 0, 0, 1, + -1, 1, 0, 0, 0, + 1, -1, 0, 1, 1, + 1, 1, 0, 1, 0 +}; + +static const int UNIFORM_DATA_SIZE = 16 * sizeof(float); + +static inline VkDeviceSize +aligned(VkDeviceSize v, VkDeviceSize byteAlign) +{ + return (v + byteAlign - 1) & ~(byteAlign - 1); +} + +VulkanRenderer2::VulkanRenderer2(QVulkanWindow *w) + : m_window(w) +{ +} + +VkShaderModule +VulkanRenderer2::createShader(const QString &name) +{ + QFile file(name); + if (!file.open(QIODevice::ReadOnly)) { + qWarning("Failed to read shader %s", qPrintable(name)); + return VK_NULL_HANDLE; + } + QByteArray blob = file.readAll(); + file.close(); + + VkShaderModuleCreateInfo shaderInfo; + memset(&shaderInfo, 0, sizeof(shaderInfo)); + shaderInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO; + shaderInfo.codeSize = blob.size(); + shaderInfo.pCode = reinterpret_cast(blob.constData()); + VkShaderModule shaderModule; + VkResult err = m_devFuncs->vkCreateShaderModule(m_window->device(), &shaderInfo, nullptr, &shaderModule); + if (err != VK_SUCCESS) { + qWarning("Failed to create shader module: %d", err); + return VK_NULL_HANDLE; + } + + return shaderModule; +} + +bool +VulkanRenderer2::createTexture() +{ + QImage img(2048, 2048, QImage::Format_RGBA8888_Premultiplied); + img.fill(QColor(0, 0, 0)); + + QVulkanFunctions *f = m_window->vulkanInstance()->functions(); + VkDevice dev = m_window->device(); + + m_texFormat = VK_FORMAT_B8G8R8A8_UNORM; + + // Now we can either map and copy the image data directly, or have to go + // through a staging buffer to copy and convert into the internal optimal + // tiling format. + VkFormatProperties props; + f->vkGetPhysicalDeviceFormatProperties(m_window->physicalDevice(), m_texFormat, &props); + const bool canSampleLinear = (props.linearTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT); + const bool canSampleOptimal = (props.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT); + if (!canSampleLinear && !canSampleOptimal) { + qWarning("Neither linear nor optimal image sampling is supported for RGBA8"); + return false; + } + + static bool alwaysStage = qEnvironmentVariableIntValue("QT_VK_FORCE_STAGE_TEX"); + + if (canSampleLinear && !alwaysStage) { + if (!createTextureImage(img.size(), &m_texImage, &m_texMem, + VK_IMAGE_TILING_LINEAR, VK_IMAGE_USAGE_SAMPLED_BIT, + m_window->hostVisibleMemoryIndex())) + return false; + + if (!writeLinearImage(img, m_texImage, m_texMem)) + return false; + + m_texLayoutPending = true; + } else { + if (!createTextureImage(img.size(), &m_texStaging, &m_texStagingMem, + VK_IMAGE_TILING_LINEAR, VK_IMAGE_USAGE_TRANSFER_SRC_BIT, + m_window->hostVisibleMemoryIndex())) + return false; + + if (!createTextureImage(img.size(), &m_texImage, &m_texMem, + VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, + m_window->deviceLocalMemoryIndex())) + return false; + + if (!writeLinearImage(img, m_texStaging, m_texStagingMem)) + return false; + + m_texStagingPending = true; + } + + VkImageViewCreateInfo viewInfo; + memset(&viewInfo, 0, sizeof(viewInfo)); + viewInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; + viewInfo.image = m_texImage; + viewInfo.viewType = VK_IMAGE_VIEW_TYPE_2D; + viewInfo.format = m_texFormat; + viewInfo.components.r = VK_COMPONENT_SWIZZLE_R; + viewInfo.components.g = VK_COMPONENT_SWIZZLE_G; + viewInfo.components.b = VK_COMPONENT_SWIZZLE_B; + viewInfo.components.a = VK_COMPONENT_SWIZZLE_A; + viewInfo.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + viewInfo.subresourceRange.levelCount = viewInfo.subresourceRange.layerCount = 1; + + VkResult err = m_devFuncs->vkCreateImageView(dev, &viewInfo, nullptr, &m_texView); + if (err != VK_SUCCESS) { + qWarning("Failed to create image view for texture: %d", err); + return false; + } + + m_texSize = img.size(); + + return true; +} + +bool +VulkanRenderer2::createTextureImage(const QSize &size, VkImage *image, VkDeviceMemory *mem, + VkImageTiling tiling, VkImageUsageFlags usage, uint32_t memIndex) +{ + VkDevice dev = m_window->device(); + + VkImageCreateInfo imageInfo; + memset(&imageInfo, 0, sizeof(imageInfo)); + imageInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; + imageInfo.imageType = VK_IMAGE_TYPE_2D; + imageInfo.format = m_texFormat; + imageInfo.extent.width = size.width(); + imageInfo.extent.height = size.height(); + imageInfo.extent.depth = 1; + imageInfo.mipLevels = 1; + imageInfo.arrayLayers = 1; + imageInfo.samples = VK_SAMPLE_COUNT_1_BIT; + imageInfo.tiling = tiling; + imageInfo.usage = usage; + imageInfo.initialLayout = VK_IMAGE_LAYOUT_PREINITIALIZED; + + VkResult err = m_devFuncs->vkCreateImage(dev, &imageInfo, nullptr, image); + if (err != VK_SUCCESS) { + qWarning("Failed to create linear image for texture: %d", err); + return false; + } + + VkMemoryRequirements memReq; + m_devFuncs->vkGetImageMemoryRequirements(dev, *image, &memReq); + + if (!(memReq.memoryTypeBits & (1 << memIndex))) { + VkPhysicalDeviceMemoryProperties physDevMemProps; + m_window->vulkanInstance()->functions()->vkGetPhysicalDeviceMemoryProperties(m_window->physicalDevice(), &physDevMemProps); + for (uint32_t i = 0; i < physDevMemProps.memoryTypeCount; ++i) { + if (!(memReq.memoryTypeBits & (1 << i))) + continue; + memIndex = i; + } + } + + VkMemoryAllocateInfo allocInfo = { + VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, + nullptr, + memReq.size, + memIndex + }; + qDebug("allocating %u bytes for texture image", uint32_t(memReq.size)); + + err = m_devFuncs->vkAllocateMemory(dev, &allocInfo, nullptr, mem); + if (err != VK_SUCCESS) { + qWarning("Failed to allocate memory for linear image: %d", err); + return false; + } + + err = m_devFuncs->vkBindImageMemory(dev, *image, *mem, 0); + if (err != VK_SUCCESS) { + qWarning("Failed to bind linear image memory: %d", err); + return false; + } + + return true; +} + +bool +VulkanRenderer2::writeLinearImage(const QImage &img, VkImage image, VkDeviceMemory memory) +{ + VkDevice dev = m_window->device(); + + VkImageSubresource subres = { + VK_IMAGE_ASPECT_COLOR_BIT, + 0, // mip level + 0 + }; + VkSubresourceLayout layout; + m_devFuncs->vkGetImageSubresourceLayout(dev, image, &subres, &layout); + + uchar *p; + VkResult err = m_devFuncs->vkMapMemory(dev, memory, layout.offset, layout.size, 0, reinterpret_cast(&p)); + if (err != VK_SUCCESS) { + qWarning("Failed to map memory for linear image: %d", err); + return false; + } + + for (int y = 0; y < img.height(); ++y) { + const uchar *line = img.constScanLine(y); + memcpy(p, line, img.width() * 4); + p += layout.rowPitch; + } + + m_devFuncs->vkUnmapMemory(dev, memory); + return true; +} + +void +VulkanRenderer2::ensureTexture() +{ + if (!m_texLayoutPending && !m_texStagingPending) + return; + + Q_ASSERT(m_texLayoutPending != m_texStagingPending); + VkCommandBuffer cb = m_window->currentCommandBuffer(); + + VkImageMemoryBarrier barrier; + memset(&barrier, 0, sizeof(barrier)); + barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; + barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + barrier.subresourceRange.levelCount = barrier.subresourceRange.layerCount = 1; + + if (m_texLayoutPending) { + m_texLayoutPending = false; + + barrier.oldLayout = VK_IMAGE_LAYOUT_PREINITIALIZED; + barrier.newLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; + barrier.srcAccessMask = VK_ACCESS_HOST_WRITE_BIT; + barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; + barrier.image = m_texImage; + + m_devFuncs->vkCmdPipelineBarrier(cb, + VK_PIPELINE_STAGE_HOST_BIT, + VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, + 0, 0, nullptr, 0, nullptr, + 1, &barrier); + + VkDevice dev = m_window->device(); + + VkImageSubresource subres = { + VK_IMAGE_ASPECT_COLOR_BIT, + 0, // mip level + 0 + }; + VkSubresourceLayout layout; + m_devFuncs->vkGetImageSubresourceLayout(dev, m_texImage, &subres, &layout); + + VkResult err = m_devFuncs->vkMapMemory(dev, m_texMem, layout.offset, layout.size, 0, reinterpret_cast(&mappedPtr)); + if (err != VK_SUCCESS) { + qWarning("Failed to map memory for linear image: %d", err); + return emit qobject_cast(m_window)->errorInitializing(); + } + imagePitch = layout.rowPitch; + + if (qobject_cast(m_window)) { + emit qobject_cast(m_window)->rendererInitialized(); + } + } else { + m_texStagingPending = false; + + if (!m_texStagingTransferLayout) { + barrier.oldLayout = VK_IMAGE_LAYOUT_PREINITIALIZED; + barrier.newLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL; + barrier.srcAccessMask = VK_ACCESS_HOST_WRITE_BIT; + barrier.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT; + barrier.image = m_texStaging; + m_devFuncs->vkCmdPipelineBarrier(cb, + VK_PIPELINE_STAGE_HOST_BIT, + VK_PIPELINE_STAGE_TRANSFER_BIT, + 0, 0, nullptr, 0, nullptr, + 1, &barrier); + + barrier.oldLayout = VK_IMAGE_LAYOUT_PREINITIALIZED; + barrier.newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL; + barrier.srcAccessMask = 0; + barrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; + barrier.image = m_texImage; + m_devFuncs->vkCmdPipelineBarrier(cb, + VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, + VK_PIPELINE_STAGE_TRANSFER_BIT, + 0, 0, nullptr, 0, nullptr, + 1, &barrier); + + VkDevice dev = m_window->device(); + + VkImageSubresource subres = { + VK_IMAGE_ASPECT_COLOR_BIT, + 0, // mip level + 0 + }; + VkSubresourceLayout layout; + m_devFuncs->vkGetImageSubresourceLayout(dev, m_texStaging, &subres, &layout); + + VkResult err = m_devFuncs->vkMapMemory(dev, m_texStagingMem, layout.offset, layout.size, 0, reinterpret_cast(&mappedPtr)); + if (err != VK_SUCCESS) { + qWarning("Failed to map memory for linear image: %d", err); + return emit qobject_cast(m_window)->errorInitializing(); + } + imagePitch = layout.rowPitch; + + if (qobject_cast(m_window)) { + emit qobject_cast(m_window)->rendererInitialized(); + } + + m_texStagingTransferLayout = true; + } + + VkImageCopy copyInfo; + memset(©Info, 0, sizeof(copyInfo)); + copyInfo.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + copyInfo.srcSubresource.layerCount = 1; + copyInfo.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + copyInfo.dstSubresource.layerCount = 1; + copyInfo.extent.width = m_texSize.width(); + copyInfo.extent.height = m_texSize.height(); + copyInfo.extent.depth = 1; + m_devFuncs->vkCmdCopyImage(cb, m_texStaging, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, + m_texImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ©Info); + + barrier.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL; + barrier.newLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; + barrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; + barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; + barrier.image = m_texImage; + m_devFuncs->vkCmdPipelineBarrier(cb, + VK_PIPELINE_STAGE_TRANSFER_BIT, + VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, + 0, 0, nullptr, 0, nullptr, + 1, &barrier); + } +} + +void +VulkanRenderer2::updateSamplers() +{ + static int cur_video_filter_method = -1; + + if (cur_video_filter_method != video_filter_method) { + cur_video_filter_method = video_filter_method; + m_devFuncs->vkDeviceWaitIdle(m_window->device()); + + VkDescriptorImageInfo descImageInfo = { + cur_video_filter_method == 1 ? m_linearSampler : m_sampler, + m_texView, + VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL + }; + + for (int i = 0; i < m_window->concurrentFrameCount(); i++) { + VkWriteDescriptorSet descWrite[2]; + memset(descWrite, 0, sizeof(descWrite)); + descWrite[0].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; + descWrite[0].dstSet = m_descSet[i]; + descWrite[0].dstBinding = 0; + descWrite[0].descriptorCount = 1; + descWrite[0].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; + descWrite[0].pBufferInfo = &m_uniformBufInfo[i]; + + descWrite[1].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; + descWrite[1].dstSet = m_descSet[i]; + descWrite[1].dstBinding = 1; + descWrite[1].descriptorCount = 1; + descWrite[1].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; + descWrite[1].pImageInfo = &descImageInfo; + m_devFuncs->vkUpdateDescriptorSets(m_window->device(), 2, descWrite, 0, nullptr); + } + } +} + +void +VulkanRenderer2::initResources() +{ + qDebug("initResources"); + + VkDevice dev = m_window->device(); + m_devFuncs = m_window->vulkanInstance()->deviceFunctions(dev); + + // The setup is similar to hellovulkantriangle. The difference is the + // presence of a second vertex attribute (texcoord), a sampler, and that we + // need blending. + + const int concurrentFrameCount = m_window->concurrentFrameCount(); + const VkPhysicalDeviceLimits *pdevLimits = &m_window->physicalDeviceProperties()->limits; + const VkDeviceSize uniAlign = pdevLimits->minUniformBufferOffsetAlignment; + qDebug("uniform buffer offset alignment is %u", (uint) uniAlign); + VkBufferCreateInfo bufInfo; + memset(&bufInfo, 0, sizeof(bufInfo)); + bufInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; + // Our internal layout is vertex, uniform, uniform, ... with each uniform buffer start offset aligned to uniAlign. + const VkDeviceSize vertexAllocSize = aligned(sizeof(vertexData), uniAlign); + const VkDeviceSize uniformAllocSize = aligned(UNIFORM_DATA_SIZE, uniAlign); + bufInfo.size = vertexAllocSize + concurrentFrameCount * uniformAllocSize; + bufInfo.usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT; + + VkResult err = m_devFuncs->vkCreateBuffer(dev, &bufInfo, nullptr, &m_buf); + if (err != VK_SUCCESS) { + qWarning("Failed to create buffer: %d", err); + return emit qobject_cast(m_window)->errorInitializing(); + } + + VkMemoryRequirements memReq; + m_devFuncs->vkGetBufferMemoryRequirements(dev, m_buf, &memReq); + + VkMemoryAllocateInfo memAllocInfo = { + VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, + nullptr, + memReq.size, + m_window->hostVisibleMemoryIndex() + }; + + err = m_devFuncs->vkAllocateMemory(dev, &memAllocInfo, nullptr, &m_bufMem); + if (err != VK_SUCCESS) { + qWarning("Failed to allocate memory: %d", err); + return emit qobject_cast(m_window)->errorInitializing(); + } + + err = m_devFuncs->vkBindBufferMemory(dev, m_buf, m_bufMem, 0); + if (err != VK_SUCCESS) { + qWarning("Failed to bind buffer memory: %d", err); + return emit qobject_cast(m_window)->errorInitializing(); + } + + quint8 *p; + err = m_devFuncs->vkMapMemory(dev, m_bufMem, 0, memReq.size, 0, reinterpret_cast(&p)); + if (err != VK_SUCCESS) { + qWarning("Failed to map memory: %d", err); + return emit qobject_cast(m_window)->errorInitializing(); + } + memcpy(p, vertexData, sizeof(vertexData)); + QMatrix4x4 ident; + memset(m_uniformBufInfo, 0, sizeof(m_uniformBufInfo)); + for (int i = 0; i < concurrentFrameCount; ++i) { + const VkDeviceSize offset = vertexAllocSize + i * uniformAllocSize; + memcpy(p + offset, ident.constData(), 16 * sizeof(float)); + m_uniformBufInfo[i].buffer = m_buf; + m_uniformBufInfo[i].offset = offset; + m_uniformBufInfo[i].range = uniformAllocSize; + } + m_devFuncs->vkUnmapMemory(dev, m_bufMem); + + VkVertexInputBindingDescription vertexBindingDesc = { + 0, // binding + 5 * sizeof(float), + VK_VERTEX_INPUT_RATE_VERTEX + }; + VkVertexInputAttributeDescription vertexAttrDesc[] = { + {// position + 0, // location + 0, // binding + VK_FORMAT_R32G32B32_SFLOAT, + 0 }, + { // texcoord + 1, + 0, + VK_FORMAT_R32G32_SFLOAT, + 3 * sizeof(float)} + }; + + VkPipelineVertexInputStateCreateInfo vertexInputInfo; + vertexInputInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO; + vertexInputInfo.pNext = nullptr; + vertexInputInfo.flags = 0; + vertexInputInfo.vertexBindingDescriptionCount = 1; + vertexInputInfo.pVertexBindingDescriptions = &vertexBindingDesc; + vertexInputInfo.vertexAttributeDescriptionCount = 2; + vertexInputInfo.pVertexAttributeDescriptions = vertexAttrDesc; + + // Sampler. + VkSamplerCreateInfo samplerInfo; + memset(&samplerInfo, 0, sizeof(samplerInfo)); + samplerInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO; + samplerInfo.magFilter = VK_FILTER_NEAREST; + samplerInfo.minFilter = VK_FILTER_NEAREST; + samplerInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + samplerInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + samplerInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + samplerInfo.maxAnisotropy = 1.0f; + samplerInfo.maxLod = 0.25; + err = m_devFuncs->vkCreateSampler(dev, &samplerInfo, nullptr, &m_sampler); + if (err != VK_SUCCESS) { + qWarning("Failed to create sampler: %d", err); + return emit qobject_cast(m_window)->errorInitializing(); + } + + samplerInfo.magFilter = VK_FILTER_LINEAR; + samplerInfo.minFilter = VK_FILTER_LINEAR; + err = m_devFuncs->vkCreateSampler(dev, &samplerInfo, nullptr, &m_linearSampler); + if (err != VK_SUCCESS) { + qWarning("Failed to create sampler: %d", err); + return emit qobject_cast(m_window)->errorInitializing(); + } + + // Texture. + if (!createTexture()) { + qWarning("Failed to create texture"); + return emit qobject_cast(m_window)->errorInitializing(); + } + + // Set up descriptor set and its layout. + VkDescriptorPoolSize descPoolSizes[2] = { + {VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, uint32_t(concurrentFrameCount)}, + { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, uint32_t(concurrentFrameCount)} + }; + VkDescriptorPoolCreateInfo descPoolInfo; + memset(&descPoolInfo, 0, sizeof(descPoolInfo)); + descPoolInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO; + descPoolInfo.maxSets = concurrentFrameCount; + descPoolInfo.poolSizeCount = 2; + descPoolInfo.pPoolSizes = descPoolSizes; + err = m_devFuncs->vkCreateDescriptorPool(dev, &descPoolInfo, nullptr, &m_descPool); + if (err != VK_SUCCESS) { + qWarning("Failed to create descriptor pool: %d", err); + return emit qobject_cast(m_window)->errorInitializing(); + } + + VkDescriptorSetLayoutBinding layoutBinding[2] = { + {0, // binding + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + 1, // descriptorCount + VK_SHADER_STAGE_VERTEX_BIT, + nullptr}, + { 1, // binding + VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + 1, // descriptorCount + VK_SHADER_STAGE_FRAGMENT_BIT, + nullptr} + }; + VkDescriptorSetLayoutCreateInfo descLayoutInfo = { + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO, + nullptr, + 0, + 2, // bindingCount + layoutBinding + }; + err = m_devFuncs->vkCreateDescriptorSetLayout(dev, &descLayoutInfo, nullptr, &m_descSetLayout); + if (err != VK_SUCCESS) { + qWarning("Failed to create descriptor set layout: %d", err); + return emit qobject_cast(m_window)->errorInitializing(); + } + + for (int i = 0; i < concurrentFrameCount; ++i) { + VkDescriptorSetAllocateInfo descSetAllocInfo = { + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO, + nullptr, + m_descPool, + 1, + &m_descSetLayout + }; + err = m_devFuncs->vkAllocateDescriptorSets(dev, &descSetAllocInfo, &m_descSet[i]); + if (err != VK_SUCCESS) { + qWarning("Failed to allocate descriptor set: %d", err); + return emit qobject_cast(m_window)->errorInitializing(); + } + + VkWriteDescriptorSet descWrite[2]; + memset(descWrite, 0, sizeof(descWrite)); + descWrite[0].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; + descWrite[0].dstSet = m_descSet[i]; + descWrite[0].dstBinding = 0; + descWrite[0].descriptorCount = 1; + descWrite[0].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; + descWrite[0].pBufferInfo = &m_uniformBufInfo[i]; + + VkDescriptorImageInfo descImageInfo = { + video_filter_method == 1 ? m_linearSampler : m_sampler, + m_texView, + VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL + }; + + descWrite[1].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; + descWrite[1].dstSet = m_descSet[i]; + descWrite[1].dstBinding = 1; + descWrite[1].descriptorCount = 1; + descWrite[1].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; + descWrite[1].pImageInfo = &descImageInfo; + + m_devFuncs->vkUpdateDescriptorSets(dev, 2, descWrite, 0, nullptr); + } + + // Pipeline cache + VkPipelineCacheCreateInfo pipelineCacheInfo; + memset(&pipelineCacheInfo, 0, sizeof(pipelineCacheInfo)); + pipelineCacheInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO; + err = m_devFuncs->vkCreatePipelineCache(dev, &pipelineCacheInfo, nullptr, &m_pipelineCache); + if (err != VK_SUCCESS) { + qWarning("Failed to create pipeline cache: %d", err); + return emit qobject_cast(m_window)->errorInitializing(); + } + + // Pipeline layout + VkPipelineLayoutCreateInfo pipelineLayoutInfo; + memset(&pipelineLayoutInfo, 0, sizeof(pipelineLayoutInfo)); + pipelineLayoutInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO; + pipelineLayoutInfo.setLayoutCount = 1; + pipelineLayoutInfo.pSetLayouts = &m_descSetLayout; + err = m_devFuncs->vkCreatePipelineLayout(dev, &pipelineLayoutInfo, nullptr, &m_pipelineLayout); + if (err != VK_SUCCESS) { + qWarning("Failed to create pipeline layout: %d", err); + return emit qobject_cast(m_window)->errorInitializing(); + } + + // Shaders +#if 0 + #version 440 + + layout(location = 0) in vec4 position; + layout(location = 1) in vec2 texcoord; + + layout(location = 0) out vec2 v_texcoord; + + layout(std140, binding = 0) uniform buf { + mat4 mvp; + } ubuf; + + out gl_PerVertex { vec4 gl_Position; }; + + void main() + { + v_texcoord = texcoord; + gl_Position = ubuf.mvp * position; + } +#endif + VkShaderModule vertShaderModule = createShader(QStringLiteral(":/texture_vert.spv")); +#if 0 + #version 440 + + layout(location = 0) in vec2 v_texcoord; + + layout(location = 0) out vec4 fragColor; + + layout(binding = 1) uniform sampler2D tex; + + void main() + { + fragColor = texture(tex, v_texcoord); + } +#endif + VkShaderModule fragShaderModule = createShader(QStringLiteral(":/texture_frag.spv")); + + // Graphics pipeline + VkGraphicsPipelineCreateInfo pipelineInfo; + memset(&pipelineInfo, 0, sizeof(pipelineInfo)); + pipelineInfo.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO; + + VkPipelineShaderStageCreateInfo shaderStages[2] = { + { + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, + nullptr, + 0, + VK_SHADER_STAGE_VERTEX_BIT, + vertShaderModule, + "main", + nullptr + }, + { + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, + nullptr, + 0, + VK_SHADER_STAGE_FRAGMENT_BIT, + fragShaderModule, + "main", + nullptr + } + }; + pipelineInfo.stageCount = 2; + pipelineInfo.pStages = shaderStages; + + pipelineInfo.pVertexInputState = &vertexInputInfo; + + VkPipelineInputAssemblyStateCreateInfo ia; + memset(&ia, 0, sizeof(ia)); + ia.sType = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO; + ia.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP; + pipelineInfo.pInputAssemblyState = &ia; + + // The viewport and scissor will be set dynamically via vkCmdSetViewport/Scissor. + // This way the pipeline does not need to be touched when resizing the window. + VkPipelineViewportStateCreateInfo vp; + memset(&vp, 0, sizeof(vp)); + vp.sType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO; + vp.viewportCount = 1; + vp.scissorCount = 1; + pipelineInfo.pViewportState = &vp; + + VkPipelineRasterizationStateCreateInfo rs; + memset(&rs, 0, sizeof(rs)); + rs.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO; + rs.polygonMode = VK_POLYGON_MODE_FILL; + rs.cullMode = VK_CULL_MODE_BACK_BIT; + rs.frontFace = VK_FRONT_FACE_CLOCKWISE; + rs.lineWidth = 1.0f; + pipelineInfo.pRasterizationState = &rs; + + VkPipelineMultisampleStateCreateInfo ms; + memset(&ms, 0, sizeof(ms)); + ms.sType = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO; + ms.rasterizationSamples = VK_SAMPLE_COUNT_1_BIT; + pipelineInfo.pMultisampleState = &ms; + + VkPipelineDepthStencilStateCreateInfo ds; + memset(&ds, 0, sizeof(ds)); + ds.sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO; + ds.depthTestEnable = VK_TRUE; + ds.depthWriteEnable = VK_TRUE; + ds.depthCompareOp = VK_COMPARE_OP_LESS_OR_EQUAL; + pipelineInfo.pDepthStencilState = &ds; + + VkPipelineColorBlendStateCreateInfo cb; + memset(&cb, 0, sizeof(cb)); + cb.sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO; + // assume pre-multiplied alpha, blend, write out all of rgba + VkPipelineColorBlendAttachmentState att; + memset(&att, 0, sizeof(att)); + att.colorWriteMask = 0xF; + att.blendEnable = VK_TRUE; + att.srcColorBlendFactor = VK_BLEND_FACTOR_ONE; + att.dstColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA; + att.colorBlendOp = VK_BLEND_OP_ADD; + att.srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE; + att.dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA; + att.alphaBlendOp = VK_BLEND_OP_ADD; + cb.attachmentCount = 1; + cb.pAttachments = &att; + pipelineInfo.pColorBlendState = &cb; + + VkDynamicState dynEnable[] = { VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR }; + VkPipelineDynamicStateCreateInfo dyn; + memset(&dyn, 0, sizeof(dyn)); + dyn.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO; + dyn.dynamicStateCount = sizeof(dynEnable) / sizeof(VkDynamicState); + dyn.pDynamicStates = dynEnable; + pipelineInfo.pDynamicState = &dyn; + + pipelineInfo.layout = m_pipelineLayout; + pipelineInfo.renderPass = m_window->defaultRenderPass(); + + err = m_devFuncs->vkCreateGraphicsPipelines(dev, m_pipelineCache, 1, &pipelineInfo, nullptr, &m_pipeline); + if (err != VK_SUCCESS) { + qWarning("Failed to create graphics pipeline: %d", err); + return emit qobject_cast(m_window)->errorInitializing(); + } + + if (vertShaderModule) + m_devFuncs->vkDestroyShaderModule(dev, vertShaderModule, nullptr); + if (fragShaderModule) + m_devFuncs->vkDestroyShaderModule(dev, fragShaderModule, nullptr); + + pclog("Vulkan device: %s\n", m_window->physicalDeviceProperties()->deviceName); + pclog("Vulkan API version: %d.%d.%d\n", VK_VERSION_MAJOR(m_window->physicalDeviceProperties()->apiVersion), VK_VERSION_MINOR(m_window->physicalDeviceProperties()->apiVersion), VK_VERSION_PATCH(m_window->physicalDeviceProperties()->apiVersion)); + pclog("Vulkan driver version: %d.%d.%d\n", VK_VERSION_MAJOR(m_window->physicalDeviceProperties()->driverVersion), VK_VERSION_MINOR(m_window->physicalDeviceProperties()->driverVersion), VK_VERSION_PATCH(m_window->physicalDeviceProperties()->driverVersion)); +} + +void +VulkanRenderer2::initSwapChainResources() +{ + qDebug("initSwapChainResources"); + + // Projection matrix + m_proj = m_window->clipCorrectionMatrix(); // adjust for Vulkan-OpenGL clip space differences +} + +void +VulkanRenderer2::releaseSwapChainResources() +{ + qDebug("releaseSwapChainResources"); +} + +void +VulkanRenderer2::releaseResources() +{ + qDebug("releaseResources"); + + VkDevice dev = m_window->device(); + + if (m_sampler) { + m_devFuncs->vkDestroySampler(dev, m_sampler, nullptr); + m_sampler = VK_NULL_HANDLE; + } + + if (m_linearSampler) { + m_devFuncs->vkDestroySampler(dev, m_linearSampler, nullptr); + m_linearSampler = VK_NULL_HANDLE; + } + + if (m_texStaging) { + m_devFuncs->vkDestroyImage(dev, m_texStaging, nullptr); + m_texStaging = VK_NULL_HANDLE; + } + + if (m_texStagingMem) { + m_devFuncs->vkFreeMemory(dev, m_texStagingMem, nullptr); + m_texStagingMem = VK_NULL_HANDLE; + } + + if (m_texView) { + m_devFuncs->vkDestroyImageView(dev, m_texView, nullptr); + m_texView = VK_NULL_HANDLE; + } + + if (m_texImage) { + m_devFuncs->vkDestroyImage(dev, m_texImage, nullptr); + m_texImage = VK_NULL_HANDLE; + } + + if (m_texMem) { + m_devFuncs->vkFreeMemory(dev, m_texMem, nullptr); + m_texMem = VK_NULL_HANDLE; + } + + if (m_pipeline) { + m_devFuncs->vkDestroyPipeline(dev, m_pipeline, nullptr); + m_pipeline = VK_NULL_HANDLE; + } + + if (m_pipelineLayout) { + m_devFuncs->vkDestroyPipelineLayout(dev, m_pipelineLayout, nullptr); + m_pipelineLayout = VK_NULL_HANDLE; + } + + if (m_pipelineCache) { + m_devFuncs->vkDestroyPipelineCache(dev, m_pipelineCache, nullptr); + m_pipelineCache = VK_NULL_HANDLE; + } + + if (m_descSetLayout) { + m_devFuncs->vkDestroyDescriptorSetLayout(dev, m_descSetLayout, nullptr); + m_descSetLayout = VK_NULL_HANDLE; + } + + if (m_descPool) { + m_devFuncs->vkDestroyDescriptorPool(dev, m_descPool, nullptr); + m_descPool = VK_NULL_HANDLE; + } + + if (m_buf) { + m_devFuncs->vkDestroyBuffer(dev, m_buf, nullptr); + m_buf = VK_NULL_HANDLE; + } + + if (m_bufMem) { + m_devFuncs->vkFreeMemory(dev, m_bufMem, nullptr); + m_bufMem = VK_NULL_HANDLE; + } +} + +void +VulkanRenderer2::startNextFrame() +{ + VkDevice dev = m_window->device(); + VkCommandBuffer cb = m_window->currentCommandBuffer(); + const QSize sz = m_window->swapChainImageSize(); + + updateSamplers(); + // Add the necessary barriers and do the host-linear -> device-optimal copy, if not yet done. + ensureTexture(); + + VkClearColorValue clearColor = { + {0, 0, 0, 1} + }; + VkClearDepthStencilValue clearDS = { 1, 0 }; + VkClearValue clearValues[2]; + memset(clearValues, 0, sizeof(clearValues)); + clearValues[0].color = clearColor; + clearValues[1].depthStencil = clearDS; + + VkRenderPassBeginInfo rpBeginInfo; + memset(&rpBeginInfo, 0, sizeof(rpBeginInfo)); + rpBeginInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO; + rpBeginInfo.renderPass = m_window->defaultRenderPass(); + rpBeginInfo.framebuffer = m_window->currentFramebuffer(); + rpBeginInfo.renderArea.extent.width = sz.width(); + rpBeginInfo.renderArea.extent.height = sz.height(); + rpBeginInfo.clearValueCount = 2; + rpBeginInfo.pClearValues = clearValues; + VkCommandBuffer cmdBuf = m_window->currentCommandBuffer(); + m_devFuncs->vkCmdBeginRenderPass(cmdBuf, &rpBeginInfo, VK_SUBPASS_CONTENTS_INLINE); + + quint8 *p; + VkResult err = m_devFuncs->vkMapMemory(dev, m_bufMem, m_uniformBufInfo[m_window->currentFrame()].offset, + UNIFORM_DATA_SIZE, 0, reinterpret_cast(&p)); + if (err != VK_SUCCESS) + qFatal("Failed to map memory: %d", err); + QMatrix4x4 m = m_proj; +#if 0 + m.rotate(m_rotation, 0, 0, 1); +#endif + memcpy(p, m.constData(), 16 * sizeof(float)); + m_devFuncs->vkUnmapMemory(dev, m_bufMem); + p = nullptr; + + // Second pass for texture coordinates. + err = m_devFuncs->vkMapMemory(dev, m_bufMem, 0, + sizeof(vertexData), 0, reinterpret_cast(&p)); + if (err != VK_SUCCESS) + qFatal("Failed to map memory: %d", err); + + float *floatData = (float *) p; + auto source = qobject_cast(m_window)->source; + auto destination = qobject_cast(m_window)->destination; + floatData[3] = (float) source.x() / 2048.f; + floatData[9] = (float) (source.y()) / 2048.f; + floatData[8] = (float) source.x() / 2048.f; + floatData[4] = (float) (source.y() + source.height()) / 2048.f; + floatData[13] = (float) (source.x() + source.width()) / 2048.f; + floatData[19] = (float) (source.y()) / 2048.f; + floatData[18] = (float) (source.x() + source.width()) / 2048.f; + floatData[14] = (float) (source.y() + source.height()) / 2048.f; + + m_devFuncs->vkUnmapMemory(dev, m_bufMem); + + m_devFuncs->vkCmdBindPipeline(cb, VK_PIPELINE_BIND_POINT_GRAPHICS, m_pipeline); + m_devFuncs->vkCmdBindDescriptorSets(cb, VK_PIPELINE_BIND_POINT_GRAPHICS, m_pipelineLayout, 0, 1, + &m_descSet[m_window->currentFrame()], 0, nullptr); + VkDeviceSize vbOffset = 0; + m_devFuncs->vkCmdBindVertexBuffers(cb, 0, 1, &m_buf, &vbOffset); + + VkViewport viewport; + viewport.x = destination.x() * m_window->devicePixelRatio(); + viewport.y = destination.y() * m_window->devicePixelRatio(); + viewport.width = destination.width() * m_window->devicePixelRatio(); + viewport.height = destination.height() * m_window->devicePixelRatio(); + viewport.minDepth = 0; + viewport.maxDepth = 1; + m_devFuncs->vkCmdSetViewport(cb, 0, 1, &viewport); + + VkRect2D scissor; + scissor.offset.x = viewport.x; + scissor.offset.y = viewport.y; + scissor.extent.width = viewport.width; + scissor.extent.height = viewport.height; + m_devFuncs->vkCmdSetScissor(cb, 0, 1, &scissor); + + m_devFuncs->vkCmdDraw(cb, 4, 1, 0, 0); + + m_devFuncs->vkCmdEndRenderPass(cmdBuf); + + if (m_texStagingTransferLayout) { + VkImageMemoryBarrier barrier {}; + barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; + barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + barrier.subresourceRange.levelCount = barrier.subresourceRange.layerCount = 1; + barrier.newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL; + barrier.oldLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; + barrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; + barrier.srcAccessMask = VK_ACCESS_SHADER_READ_BIT; + barrier.image = m_texImage; + m_devFuncs->vkCmdPipelineBarrier(cb, + VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, + VK_PIPELINE_STAGE_TRANSFER_BIT, + 0, 0, nullptr, 0, nullptr, + 1, &barrier); + m_texStagingPending = true; + } + + m_window->frameReady(); + m_window->requestUpdate(); // render continuously, throttled by the presentation rate +} +#endif diff --git a/src/qt/qt_winrawinputfilter.cpp b/src/qt/qt_winrawinputfilter.cpp index 3703f47d8..bac049391 100644 --- a/src/qt/qt_winrawinputfilter.cpp +++ b/src/qt/qt_winrawinputfilter.cpp @@ -172,7 +172,9 @@ void WindowsRawInputFilter::keyboard_handle(PRAWINPUT raw) { USHORT scancode; - static int recv_lalt = 0, recv_ralt = 0, recv_tab = 0; + static int recv_lalt = 0; + static int recv_ralt = 0; + static int recv_tab = 0; RAWKEYBOARD rawKB = raw->data.keyboard; scancode = rawKB.MakeCode; @@ -334,7 +336,8 @@ void WindowsRawInputFilter::mouse_handle(PRAWINPUT raw) { RAWMOUSE state = raw->data.mouse; - static int x, y; + static int x; + static int y; /* read mouse buttons and wheel */ if (state.usButtonFlags & RI_MOUSE_LEFT_BUTTON_DOWN) diff --git a/src/qt/sdl_joystick.cpp b/src/qt/sdl_joystick.cpp index 06f0a73b8..bc540fcf6 100644 --- a/src/qt/sdl_joystick.cpp +++ b/src/qt/sdl_joystick.cpp @@ -106,7 +106,8 @@ joystick_get_axis(int joystick_nr, int mapping) void joystick_process() { - int c, d; + int c; + int d; if (!joystick_type) return; diff --git a/src/qt/win_joystick_rawinput.c b/src/qt/win_joystick_rawinput.c index 2976a54b9..c4424e484 100644 --- a/src/qt/win_joystick_rawinput.c +++ b/src/qt/win_joystick_rawinput.c @@ -443,12 +443,12 @@ joystick_get_axis(int joystick_nr, int mapping) void joystick_process(void) { - int c, d; + int d; if (joystick_type == 7) return; - for (c = 0; c < joystick_get_max_joysticks(joystick_type); c++) { + for (int c = 0; c < joystick_get_max_joysticks(joystick_type); c++) { if (joystick_state[c].plat_joystick_nr) { int joystick_nr = joystick_state[c].plat_joystick_nr - 1; @@ -458,8 +458,10 @@ joystick_process(void) joystick_state[c].button[d] = plat_joystick_state[joystick_nr].b[joystick_state[c].button_mapping[d]]; for (d = 0; d < joystick_get_pov_count(joystick_type); d++) { - int x, y; - double angle, magnitude; + int x; + int y; + double angle; + double magnitude; x = joystick_get_axis(joystick_nr, joystick_state[c].pov_mapping[d][0]); y = joystick_get_axis(joystick_nr, joystick_state[c].pov_mapping[d][1]); diff --git a/src/qt/wl_mouse.cpp b/src/qt/wl_mouse.cpp index 9b23792c8..789712de5 100644 --- a/src/qt/wl_mouse.cpp +++ b/src/qt/wl_mouse.cpp @@ -34,7 +34,8 @@ static zwp_relative_pointer_v1 *rel_pointer = nullptr; static zwp_pointer_constraints_v1 *conf_pointer_interface = nullptr; static zwp_locked_pointer_v1 *conf_pointer = nullptr; -static int rel_mouse_x = 0, rel_mouse_y = 0; +static int rel_mouse_x = 0; +static int rel_mouse_y = 0; static bool wl_init_ok = false; void diff --git a/src/qt/xinput2_mouse.cpp b/src/qt/xinput2_mouse.cpp index 0ce51c5ab..dafa4ffda 100644 --- a/src/qt/xinput2_mouse.cpp +++ b/src/qt/xinput2_mouse.cpp @@ -59,7 +59,8 @@ parse_valuators(const double *input_values, const unsigned char *mask, int mask_len, double *output_values, int output_values_len) { - int i = 0, z = 0; + int i = 0; + int z = 0; int top = mask_len * 8; if (top > 16) top = 16; @@ -92,6 +93,13 @@ xinput2_get_xtest_pointer() if ((dev->use == XISlavePointer) && !strcmp(dev->name, "TigerVNC pointer")) return dev->deviceid; } + /* Steam Input on SteamOS uses XTEST the intended way for trackpad movement. + Hope nobody is remoting into their Steam Deck with a non-TigerVNC server. */ + for (int i = 0; i < devs; i++) { + dev = &info[i]; + if ((dev->use == XISlavePointer) && !strncmp(dev->name, "Valve Software Steam Deck", 25)) + return -1; + } for (int i = 0; i < devs; i++) { dev = &info[i]; if ((dev->use == XISlavePointer) && !strcmp(dev->name, "Virtual core XTEST pointer")) @@ -253,7 +261,10 @@ xinput2_init() qWarning() << "Cannot open current X11 display"; return; } - auto event = 0, err = 0, minor = 1, major = 2; + auto event = 0; + auto err = 0; + auto minor = 1; + auto major = 2; if (XQueryExtension(disp, "XInputExtension", &xi2opcode, &event, &err)) { if (XIQueryVersion(disp, &major, &minor) == Success) { procThread = QThread::create(xinput2_proc); diff --git a/src/qt/xkbcommon_wl_keyboard.cpp b/src/qt/xkbcommon_wl_keyboard.cpp index 9d2576ab1..8b7e6399a 100644 --- a/src/qt/xkbcommon_wl_keyboard.cpp +++ b/src/qt/xkbcommon_wl_keyboard.cpp @@ -48,7 +48,8 @@ static void xkbcommon_wl_set_keymap() { /* Grab keymap from the first seat with one. */ - seat_t *seat, *tmp; + seat_t *seat; + seat_t *tmp; wl_list_for_each_safe(seat, tmp, &seats, link) { if (seat->keymap) { xkbcommon_init(seat->keymap); @@ -180,7 +181,8 @@ display_global_remove(void *data, struct wl_registry *wl_registry, uint32_t id) { xkbcommon_close(); - seat_t *seat, *tmp; + seat_t *seat; + seat_t *tmp; wl_list_for_each_safe(seat, tmp, &seats, link) { if (seat->wl_kbd) { if (seat->version >= WL_SEAT_RELEASE_SINCE_VERSION) diff --git a/src/scsi/scsi.c b/src/scsi/scsi.c index 4e82f67fa..1f1e6eafd 100644 --- a/src/scsi/scsi.c +++ b/src/scsi/scsi.c @@ -125,7 +125,7 @@ scsi_card_available(int card) if (scsi_cards[card].device) return (device_available(scsi_cards[card].device)); - return (1); + return 1; } const device_t * @@ -138,7 +138,7 @@ int scsi_card_has_config(int card) { if (!scsi_cards[card].device) - return (0); + return 0; return (device_has_config(scsi_cards[card].device) ? 1 : 0); } @@ -156,17 +156,17 @@ scsi_card_get_from_internal_name(char *s) while (scsi_cards[c].device != NULL) { if (!strcmp((char *) scsi_cards[c].device->internal_name, s)) - return (c); + return c; c++; } - return (0); + return 0; } void scsi_card_init(void) { - int i = 0, max = SCSI_BUS_MAX; + int max = SCSI_BUS_MAX; /* On-board SCSI controllers get the first bus, so if one is present, increase our instance number here. */ @@ -176,7 +176,7 @@ scsi_card_init(void) /* Do not initialize any controllers if we have do not have any SCSI bus left. */ if (max > 0) { - for (i = 0; i < max; i++) { + for (int i = 0; i < max; i++) { if (!scsi_cards[scsi_card_current[i]].device) continue; diff --git a/src/scsi/scsi_aha154x.c b/src/scsi/scsi_aha154x.c index aec89d588..3cfe72760 100644 --- a/src/scsi/scsi_aha154x.c +++ b/src/scsi/scsi_aha154x.c @@ -139,14 +139,14 @@ aha154x_shram(x54x_t *dev, uint8_t cmd) { /* If not supported, give up. */ if (dev->rom_shram == 0x0000) - return (0x04); + return 0x04; /* Bit 0 = Shadow RAM write enable; Bit 1 = Shadow RAM read enable. */ dev->shram_mode = cmd; /* Firmware expects 04 status. */ - return (0x04); + return 0x04; } static void @@ -173,7 +173,7 @@ aha154x_eeprom(x54x_t *dev, uint8_t cmd, uint8_t arg, uint8_t len, uint8_t off, /* Only if we can handle it.. */ if (dev->nvr == NULL) - return (r); + return r; if (cmd == 0x22) { /* Write data to the EEPROM. */ @@ -198,7 +198,7 @@ aha154x_eeprom(x54x_t *dev, uint8_t cmd, uint8_t arg, uint8_t len, uint8_t off, r = len; } - return (r); + return r; } /* Map either the main or utility (Select) ROM into the memory space. */ @@ -219,7 +219,7 @@ aha154x_mmap(x54x_t *dev, uint8_t cmd) break; } - return (0); + return 0; } static uint8_t diff --git a/src/scsi/scsi_buslogic.c b/src/scsi/scsi_buslogic.c index 1e0f74d0f..efc2a62ae 100644 --- a/src/scsi/scsi_buslogic.c +++ b/src/scsi/scsi_buslogic.c @@ -589,7 +589,6 @@ static void BuslogicSCSIBIOSRequestSetup(x54x_t *dev, uint8_t *CmdBuf, uint8_t *DataInBuf, uint8_t DataReply) { ESCMD *ESCSICmd = (ESCMD *) CmdBuf; - uint32_t i; uint8_t temp_cdb[12]; int target_cdb_len = 12; #ifdef ENABLE_BUSLOGIC_LOG @@ -631,7 +630,7 @@ BuslogicSCSIBIOSRequestSetup(x54x_t *dev, uint8_t *CmdBuf, uint8_t *DataInBuf, u buslogic_log("SCSI target command being executed on: SCSI ID %i, SCSI LUN %i, Target %i\n", ESCSICmd->TargetId, ESCSICmd->LogicalUnit, target_id); buslogic_log("SCSI Cdb[0]=0x%02X\n", ESCSICmd->CDB[0]); - for (i = 1; i < ESCSICmd->CDBLength; i++) { + for (uint8_t i = 1; i < ESCSICmd->CDBLength; i++) { buslogic_log("SCSI Cdb[%i]=%i\n", i, ESCSICmd->CDB[i]); } @@ -1152,7 +1151,9 @@ BuslogicPCIRead(int func, int addr, void *p) case 0x13: return buslogic_pci_bar[0].addr_regs[3]; case 0x14: - // return (buslogic_pci_bar[1].addr_regs[0] & 0xe0); /*Memory space*/ +#if 0 + return (buslogic_pci_bar[1].addr_regs[0] & 0xe0); /*Memory space*/ +#endif return 0x00; case 0x15: return buslogic_pci_bar[1].addr_regs[1] & 0xc0; @@ -1189,7 +1190,7 @@ BuslogicPCIRead(int func, int addr, void *p) return PCI_INTA; } - return (0); + return 0; } static void @@ -1753,7 +1754,7 @@ buslogic_init(const device_t *info) BuslogicInitializeAutoSCSIRam(dev); } - return (dev); + return dev; } // clang-format off diff --git a/src/scsi/scsi_cdrom.c b/src/scsi/scsi_cdrom.c index 98716692b..b20a4b4ab 100644 --- a/src/scsi/scsi_cdrom.c +++ b/src/scsi/scsi_cdrom.c @@ -691,13 +691,11 @@ static uint32_t scsi_cdrom_drive_status(scsi_cdrom_t *dev, uint8_t *buf, uint32_t pos, uint8_t page) { uint8_t page_control = (page >> 6) & 3; - int i = 0, j = 0; - uint16_t msplen; page &= 0x3f; - for (i = 0; i < 0x40; i++) { + for (uint8_t i = 0; i < 0x40; i++) { if (page == i) { if (scsi_cdrom_drive_status_page_flags & (1LL << ((uint64_t) (page & 0x3f)))) { buf[pos++] = scsi_cdrom_drive_status_read(dev, page_control, i, 0); @@ -706,7 +704,7 @@ scsi_cdrom_drive_status(scsi_cdrom_t *dev, uint8_t *buf, uint32_t pos, uint8_t p buf[pos++] = (msplen >> 8) & 0xff; buf[pos++] = msplen & 0xff; scsi_cdrom_log("CD-ROM %i: DRIVE STATUS: Page [%02X] length %i\n", dev->id, i, msplen); - for (j = 0; j < msplen; j++) { + for (uint16_t j = 0; j < msplen; j++) { if (i == 0x01) { buf[pos++] = scsi_cdrom_drive_status_read(dev, page_control, i, 3 + j); if (!(j & 1)) { /*MSB of Drive Status*/ @@ -770,8 +768,6 @@ static uint32_t scsi_cdrom_mode_sense(scsi_cdrom_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t block_descriptor_len) { uint8_t page_control = (page >> 6) & 3; - int i = 0, j = 0; - uint8_t msplen; page &= 0x3f; @@ -787,14 +783,14 @@ scsi_cdrom_mode_sense(scsi_cdrom_t *dev, uint8_t *buf, uint32_t pos, uint8_t pag buf[pos++] = 0; } - for (i = 0; i < 0x40; i++) { + for (uint8_t i = 0; i < 0x40; i++) { if ((page == GPMODE_ALL_PAGES) || (page == i)) { if (scsi_cdrom_mode_sense_page_flags & (1LL << ((uint64_t) (page & 0x3f)))) { buf[pos++] = scsi_cdrom_mode_sense_read(dev, page_control, i, 0); msplen = scsi_cdrom_mode_sense_read(dev, page_control, i, 1); buf[pos++] = msplen; scsi_cdrom_log("CD-ROM %i: MODE SENSE: Page [%02X] length %i\n", dev->id, i, msplen); - for (j = 0; j < msplen; j++) { + for (uint8_t j = 0; j < msplen; j++) { /* If we are returning changeable values, always return them from the page, so they are all correctly. */ if (page_control == 1) @@ -840,7 +836,8 @@ scsi_cdrom_mode_sense(scsi_cdrom_t *dev, uint8_t *buf, uint32_t pos, uint8_t pag static void scsi_cdrom_update_request_length(scsi_cdrom_t *dev, int len, int block_len) { - int32_t bt, min_len = 0; + int32_t bt; + int32_t min_len = 0; double dlen; dev->max_transfer_len = dev->request_length; @@ -928,7 +925,8 @@ scsi_cdrom_bus_speed(scsi_cdrom_t *dev) static void scsi_cdrom_command_common(scsi_cdrom_t *dev) { - double bytes_per_second = 0.0, period; + double bytes_per_second = 0.0; + double period; dev->status = BUSY_STAT; dev->phase = 1; @@ -1273,9 +1271,10 @@ scsi_cdrom_data_phase_error(scsi_cdrom_t *dev) static int scsi_cdrom_read_data(scsi_cdrom_t *dev, int msf, int type, int flags, int32_t *len, int vendor_type) { - int ret = 0, data_pos = 0; - int i = 0, temp_len = 0; - uint32_t cdsize = 0; + int ret = 0; + int data_pos = 0; + int temp_len = 0; + uint32_t cdsize = 0; if (dev->drv->cd_status == CD_STATUS_EMPTY) { scsi_cdrom_not_ready(dev); @@ -1306,7 +1305,7 @@ scsi_cdrom_read_data(scsi_cdrom_t *dev, int msf, int type, int flags, int32_t *l dev->old_len = 0; *len = 0; - for (i = 0; i < dev->requested_blocks; i++) { + for (int i = 0; i < dev->requested_blocks; i++) { ret = cdrom_readsector_raw(dev->drv, dev->buffer + data_pos, dev->sector_pos + i, msf, type, flags, &temp_len, vendor_type); @@ -1327,8 +1326,10 @@ scsi_cdrom_read_data(scsi_cdrom_t *dev, int msf, int type, int flags, int32_t *l static int scsi_cdrom_read_blocks(scsi_cdrom_t *dev, int32_t *len, int first_batch, int vendor_type) { - int ret = 0, msf = 0; - int type = 0, flags = 0; + int ret = 0; + int msf = 0; + int type = 0; + int flags = 0; if (dev->current_cdb[0] == GPCMD_READ_CD_MSF) msf = 1; @@ -1695,16 +1696,26 @@ void scsi_cdrom_command(scsi_common_t *sc, uint8_t *cdb) { scsi_cdrom_t *dev = (scsi_cdrom_t *) sc; - int len, max_len, used_len, alloc_length, msf; - int pos = 0, i = 0, size_idx, idx = 0; + int len; + int max_len; + int used_len; + int alloc_length; + int msf; + int pos = 0; + int size_idx; + int idx = 0; uint32_t feature; unsigned preamble_len; - int toc_format, block_desc = 0; - int ret, format = 0; - int real_pos, track = 0; + int toc_format; + int block_desc = 0; + int ret; + int format = 0; + int real_pos; + int track = 0; char device_identify[9] = { '8', '6', 'B', '_', 'C', 'D', '0', '0', 0 }; char device_identify_ex[15] = { '8', '6', 'B', '_', 'C', 'D', '0', '0', ' ', 'v', '1', '.', '0', '0', 0 }; - int32_t blen = 0, *BufLen; + int32_t blen = 0; + int32_t *BufLen; uint8_t *b; uint32_t profiles[2] = { MMC_PROFILE_CD_ROM, MMC_PROFILE_DVD_ROM }; uint8_t scsi_bus = (dev->drv->scsi_device_id >> 4) & 0x0f; @@ -1875,7 +1886,7 @@ begin: return; case 0xC7: - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_PLAY_AUDIO_MSF_MATSUSHITA*/ + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_PLAY_AUDIO_MSF_MATSUSHITA*/ cdb[0] = GPCMD_PLAY_AUDIO_MSF; dev->current_cdb[0] = cdb[0]; goto begin; @@ -2218,7 +2229,7 @@ begin: alloc_length += 4; b += 4; - for (i = 0; i < 2; i++) { + for (uint8_t i = 0; i < 2; i++) { b[0] = (profiles[i] >> 8) & 0xff; b[1] = profiles[i] & 0xff; @@ -2407,7 +2418,7 @@ begin: break; } /*GPCMD_AUDIO_TRACK_SEARCH_TOSHIBA and GPCMD_EJECT_CHINON*/ case 0xD8: /*GPCMD_AUDIO_TRACK_SEARCH_NEC*/ - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42"))) { + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42")) { scsi_cdrom_set_phase(dev, SCSI_PHASE_STATUS); scsi_cdrom_stop(sc); cdrom_eject(dev->id); @@ -2603,13 +2614,13 @@ begin: dev->buffer[1] = 0x11; break; case CD_STATUS_PAUSED: - dev->buffer[1] = ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42"))) ? 0x15 : 0x12; + dev->buffer[1] = (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42")) ? 0x15 : 0x12; break; case CD_STATUS_DATA_ONLY: - dev->buffer[1] = ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42"))) ? 0x00 : 0x15; + dev->buffer[1] = (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42")) ? 0x00 : 0x15; break; default: - dev->buffer[1] = ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42"))) ? 0x00 : 0x13; + dev->buffer[1] = (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42")) ? 0x00 : 0x13; break; } @@ -2650,7 +2661,7 @@ begin: break; } /*GPCMD_READ_SUBCODEQ_PLAYING_STATUS_TOSHIBA and GPCMD_STOP_CHINON*/ case 0xDD: /*GPCMD_READ_SUBCODEQ_PLAYING_STATUS_NEC*/ - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42"))) { + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42")) { scsi_cdrom_set_phase(dev, SCSI_PHASE_STATUS); scsi_cdrom_stop(sc); scsi_cdrom_command_complete(dev); @@ -2752,7 +2763,7 @@ begin: break; case 0xC4: - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_READ_HEADER_MATSUSHITA*/ + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_READ_HEADER_MATSUSHITA*/ cdb[0] = GPCMD_READ_HEADER; dev->current_cdb[0] = cdb[0]; goto begin; @@ -2839,14 +2850,14 @@ begin: dev->buffer[idx++] = 0x00; dev->buffer[idx++] = 68; - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00"))) + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00")) ide_padstr8(dev->buffer + idx, 8, EMU_NAME); /* Vendor */ else ide_padstr8(dev->buffer + idx, 8, cdrom_drive_types[dev->drv->type].vendor); /* Vendor */ idx += 8; - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00"))) + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00")) ide_padstr8(dev->buffer + idx, 40, device_identify_ex); /* Product */ else ide_padstr8(dev->buffer + idx, 40, cdrom_drive_types[dev->drv->type].model); /* Product */ @@ -2872,15 +2883,15 @@ begin: if (dev->drv->bus_type == CDROM_BUS_SCSI) { dev->buffer[3] = 0x02; - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00"))) { + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00")) { dev->buffer[2] = 0x05; - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_DRIVEXM_3433"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_DRIVEXM_3433")) { dev->buffer[2] = 0x02; - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-3301TA_0272"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-3301TA_0272")) { dev->buffer[2] = 0x02; - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5701TA_3136"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5701TA_3136")) { dev->buffer[2] = 0x02; - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "CHINON_CD-ROM_CDS-431_H42")) { dev->buffer[3] = 0x01; dev->buffer[2] = 0x02; } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "SONY_CD-ROM_CDU-541_1.0i")) { @@ -2889,17 +2900,17 @@ begin: } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "SONY_CD-ROM_CDU-76S_1.00")) { dev->buffer[3] = 0x01; dev->buffer[2] = 0x02; - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { dev->buffer[3] = 0x01; dev->buffer[2] = 0x02; - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE74_1.00"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE74_1.00")) { dev->buffer[3] = 0x01; dev->buffer[2] = 0x02; - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "DEC_RRD45_0436"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "DEC_RRD45_0436")) { dev->buffer[2] = 0x02; - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE464_1.05"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE464_1.05")) { dev->buffer[2] = 0x02; - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403")) { dev->buffer[2] = 0x02; } } else { @@ -2909,32 +2920,32 @@ begin: dev->buffer[4] = 31; if (dev->drv->bus_type == CDROM_BUS_SCSI) { - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00"))) { + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00")) { dev->buffer[6] = 0x01; /* 16-bit transfers supported */ dev->buffer[7] = 0x20; /* Wide bus supported */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PLEXTOR_CD-ROM_PX-32TS_1.03"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PLEXTOR_CD-ROM_PX-32TS_1.03")) { dev->buffer[6] = 0x01; /* 16-bit transfers supported */ dev->buffer[7] = 0x20; /* Wide bus supported */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TEAC_CD-R55S_1.0R"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TEAC_CD-R55S_1.0R")) { dev->buffer[6] = 0x01; /* 16-bit transfers supported */ dev->buffer[7] = 0x20; /* Wide bus supported */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "DEC_RRD45_0436"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "DEC_RRD45_0436")) { dev->buffer[7] = 0x98; /* Linked Command and Relative Addressing supported */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_DRIVEXM_3433"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_DRIVEXM_3433")) { dev->buffer[4] = 91; /* Always 91 on Toshiba SCSI-2 CD-ROM drives from 1990*/ dev->buffer[7] = 0x88; /* Linked Command and Relative Addressing supported */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-3301TA_0272"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-3301TA_0272")) { dev->buffer[4] = 91; /* Always 91 on Toshiba SCSI-2 CD-ROM drives from 1990*/ dev->buffer[7] = 0x88; /* Linked Command and Relative Addressing supported */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5701TA_3136"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5701TA_3136")) { dev->buffer[4] = 91; /* Always 91 on Toshiba SCSI-2 CD-ROM drives from 1990*/ dev->buffer[7] = 0x88; /* Linked Command and Relative Addressing supported */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403")) { dev->buffer[4] = 42; } } - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00"))) { + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00")) { ide_padstr8(dev->buffer + 8, 8, EMU_NAME); /* Vendor */ ide_padstr8(dev->buffer + 16, 16, device_identify); /* Product */ ide_padstr8(dev->buffer + 32, 4, EMU_VERSION_EX); /* Revision */ @@ -2942,7 +2953,7 @@ begin: ide_padstr8(dev->buffer + 8, 8, cdrom_drive_types[dev->drv->type].vendor); /* Vendor */ ide_padstr8(dev->buffer + 16, 16, cdrom_drive_types[dev->drv->type].model); /* Product */ ide_padstr8(dev->buffer + 32, 4, cdrom_drive_types[dev->drv->type].revision); /* Revision */ - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403"))) { + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403")) { dev->buffer[36] = 0x20; ide_padstr8(dev->buffer + 37, 10, "1993/01/01"); /* Date */ } @@ -2993,7 +3004,7 @@ atapi_out: break; case 0xC3: - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_READ_TOC_MATSUSHITA*/ + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_READ_TOC_MATSUSHITA*/ cdb[0] = GPCMD_READ_TOC_PMA_ATIP; dev->current_cdb[0] = cdb[0]; goto begin; @@ -3028,7 +3039,7 @@ atapi_out: break; case 0xC2: - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_READ_SUBCHANNEL_MATSUSHITA*/ + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_READ_SUBCHANNEL_MATSUSHITA*/ cdb[0] = GPCMD_READ_SUBCHANNEL; dev->current_cdb[0] = cdb[0]; goto begin; @@ -3133,7 +3144,7 @@ atapi_out: break; case 0xC5: - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_PLAY_AUDIO_MATSUSHITA*/ + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_PLAY_AUDIO_MATSUSHITA*/ cdb[0] = GPCMD_PLAY_AUDIO_10; dev->current_cdb[0] = cdb[0]; goto begin; @@ -3147,7 +3158,7 @@ atapi_out: break; } case 0xC8: - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_PLAY_AUDIO_TRACK_INDEX_MATSUSHITA*/ + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_PLAY_AUDIO_TRACK_INDEX_MATSUSHITA*/ cdb[0] = GPCMD_PLAY_AUDIO_TRACK_INDEX; dev->current_cdb[0] = cdb[0]; goto begin; @@ -3161,7 +3172,7 @@ atapi_out: break; } case 0xC9: - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_PLAY_AUDIO_TRACK_RELATIVE_10_MATSUSHITA*/ + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_PLAY_AUDIO_TRACK_RELATIVE_10_MATSUSHITA*/ cdb[0] = GPCMD_PLAY_AUDIO_TRACK_RELATIVE_10; dev->current_cdb[0] = cdb[0]; goto begin; @@ -3179,21 +3190,21 @@ atapi_out: break; } case 0xCA: - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403"))) { /*GPCMD_PAUSE_PIONEER*/ + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403")) { /*GPCMD_PAUSE_PIONEER*/ scsi_cdrom_set_phase(dev, SCSI_PHASE_STATUS); cdrom_audio_pause_resume(dev->drv, !(cdb[1] & 0x10)); scsi_cdrom_command_complete(dev); break; } case 0xCB: - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_PAUSE_RESUME_MATSUSHITA*/ + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_PAUSE_RESUME_MATSUSHITA*/ cdb[0] = GPCMD_PAUSE_RESUME; dev->current_cdb[0] = cdb[0]; goto begin; break; } case 0xCC: - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403"))) { + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403")) { scsi_cdrom_set_phase(dev, SCSI_PHASE_DATA_IN); max_len = cdb[7]; @@ -3221,7 +3232,7 @@ atapi_out: break; } case 0xE0: - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403"))) { /*GPCMD_DRIVE_STATUS_PIONEER*/ + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PIONEER_CD-ROM_DRM-604X_2403")) { /*GPCMD_DRIVE_STATUS_PIONEER*/ scsi_cdrom_set_phase(dev, SCSI_PHASE_DATA_IN); len = (cdb[9] | (cdb[8] << 8)); @@ -3256,14 +3267,14 @@ atapi_out: return; } case 0xE5: - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_PLAY_AUDIO_12_MATSUSHITA*/ + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_PLAY_AUDIO_12_MATSUSHITA*/ cdb[0] = GPCMD_PLAY_AUDIO_12; dev->current_cdb[0] = cdb[0]; goto begin; break; } case 0xE9: - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b"))) { /*GPCMD_PLAY_AUDIO_TRACK_RELATIVE_12_MATSUSHITA*/ + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-501_1.0b")) { /*GPCMD_PLAY_AUDIO_TRACK_RELATIVE_12_MATSUSHITA*/ cdb[0] = GPCMD_PLAY_AUDIO_TRACK_RELATIVE_12; dev->current_cdb[0] = cdb[0]; goto begin; @@ -3294,12 +3305,18 @@ static uint8_t scsi_cdrom_phase_data_out(scsi_common_t *sc) { scsi_cdrom_t *dev = (scsi_cdrom_t *) sc; - uint16_t block_desc_len, pos; + uint16_t block_desc_len; + uint16_t pos; uint16_t param_list_len; uint16_t i = 0; uint8_t error = 0; - uint8_t page, page_len, hdr_len, val, old_val, ch; + uint8_t page; + uint8_t page_len; + uint8_t hdr_len; + uint8_t val; + uint8_t old_val; + uint8_t ch; switch (dev->current_cdb[0]) { case GPCMD_MODE_SELECT_6: @@ -3496,68 +3513,68 @@ scsi_cdrom_identify(ide_t *ide, int ide_has_dma) ide->buffer[0] = 0x8000 | (5 << 8) | 0x80 | (2 << 5); /* ATAPI device, CD-ROM drive, removable media, accelerated DRQ */ ide_padstr((char *) (ide->buffer + 10), "", 20); /* Serial Number */ - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00"))) { + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "86BOX_CD-ROM_1.00")) { ide_padstr((char *) (ide->buffer + 23), EMU_VERSION_EX, 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), device_identify, 40); /* Model */ } else { - if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE260_1.01"))) { + if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE260_1.01")) { ide_padstr((char *) (ide->buffer + 23), ".110 ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "EN C DCR-MOD IREV2:06 ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE260_1.00"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE260_1.00")) { ide_padstr((char *) (ide->buffer + 23), ".100 ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "EN C DCR-MOD IREV2:06 ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "AZT_CDA46802I_1.15"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "AZT_CDA46802I_1.15")) { ide_padstr((char *) (ide->buffer + 23), "1.15 ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "AZT CDA46802I ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "HITACHI_CDR-8130_0020"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "HITACHI_CDR-8130_0020")) { ide_padstr((char *) (ide->buffer + 23), "0020 ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "HITACHI CDR-8130 ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "SONY_CD-ROM_CDU76_1.0i"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "SONY_CD-ROM_CDU76_1.0i")) { ide_padstr((char *) (ide->buffer + 23), "1.0i ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "SONY CD-ROM CDU76 ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "SONY_CD-ROM_CDU311_3.0h"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "SONY_CD-ROM_CDU311_3.0h")) { ide_padstr((char *) (ide->buffer + 23), "3.0h ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "SONY CD-ROM CDU311 ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE280_1.05"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE280_1.05")) { ide_padstr((char *) (ide->buffer + 23), "1.05 ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "NEC CD-ROM DRIVE:280 ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE280_3.08"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE280_3.08")) { ide_padstr((char *) (ide->buffer + 23), "3.08 ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "NEC CD-ROM DRIVE:280 ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE273_4.20"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "NEC_CD-ROM_DRIVE273_4.20")) { ide_padstr((char *) (ide->buffer + 23), "4.20 ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "NEC CD-ROM DRIVE:273 ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5302TA_0305"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5302TA_0305")) { ide_padstr((char *) (ide->buffer + 23), "0305 ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "TOSHIBA CD-ROM XM-5302TA ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5702B_TA70"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "TOSHIBA_CD-ROM_XM-5702B_TA70")) { ide_padstr((char *) (ide->buffer + 23), "TA70 ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "TOSHIBA CD-ROM XM-5702B ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "GOLDSTAR_CRD-8160B_3.14"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "GOLDSTAR_CRD-8160B_3.14")) { ide_padstr((char *) (ide->buffer + 23), "3.14 ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "GOLDSTAR CRD-8160B ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CR-571_1.0e"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CR-571_1.0e")) { ide_padstr((char *) (ide->buffer + 23), "1.0e ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "MATSHITA CR-571 ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CR-572_1.0j"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CR-572_1.0j")) { ide_padstr((char *) (ide->buffer + 23), "1.0j ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "MATSHITA CR-572 ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-587_7S13"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-587_7S13")) { ide_padstr((char *) (ide->buffer + 23), "7S13 ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "MATSHITA CD-ROM CR-587 ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-588_LS15"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MATSHITA_CD-ROM_CR-588_LS15")) { ide_padstr((char *) (ide->buffer + 23), "LS15 ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "MATSHITA CD-ROM CR-588 ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MITSUMI_CRMC-FX4820T_D02A"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "MITSUMI_CRMC-FX4820T_D02A")) { ide_padstr((char *) (ide->buffer + 23), "D02A ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "MITSUMI CRMC-FX4820T ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PHILIPS_CD-ROM_PCA403CD_U31P"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "PHILIPS_CD-ROM_PCA403CD_U31P")) { ide_padstr((char *) (ide->buffer + 23), "U31P ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "PHILIPS CD-ROM PCA403CD ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "BTC_CD-ROM_BCD36XH_U1.0"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "BTC_CD-ROM_BCD36XH_U1.0")) { ide_padstr((char *) (ide->buffer + 23), "U1.0 ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "BTC CD-ROM BCD36XH ", 40); /* Model */ - } else if ((!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "KENWOOD_CD-ROM_UCR-421_208E"))) { + } else if (!strcmp(cdrom_drive_types[dev->drv->type].internal_name, "KENWOOD_CD-ROM_UCR-421_208E")) { ide_padstr((char *) (ide->buffer + 23), "208E ", 8); /* Firmware */ ide_padstr((char *) (ide->buffer + 27), "KENWOOD CD-ROM UCR-421 ", 40); /* Model */ } diff --git a/src/scsi/scsi_device.c b/src/scsi/scsi_device.c index 721411bd8..42725c91b 100644 --- a/src/scsi/scsi_device.c +++ b/src/scsi/scsi_device.c @@ -162,11 +162,10 @@ scsi_device_identify(scsi_device_t *dev, uint8_t lun) void scsi_device_close_all(void) { - int i, j; scsi_device_t *dev; - for (i = 0; i < SCSI_BUS_MAX; i++) { - for (j = 0; j < SCSI_ID_MAX; j++) { + for (uint8_t i = 0; i < SCSI_BUS_MAX; i++) { + for (uint8_t j = 0; j < SCSI_ID_MAX; j++) { dev = &(scsi_devices[i][j]); if (dev->command_stop && dev->sc) dev->command_stop(dev->sc); @@ -177,11 +176,10 @@ scsi_device_close_all(void) void scsi_device_init(void) { - int i, j; scsi_device_t *dev; - for (i = 0; i < SCSI_BUS_MAX; i++) { - for (j = 0; j < SCSI_ID_MAX; j++) { + for (uint8_t i = 0; i < SCSI_BUS_MAX; i++) { + for (uint8_t j = 0; j < SCSI_ID_MAX; j++) { dev = &(scsi_devices[i][j]); memset(dev, 0, sizeof(scsi_device_t)); diff --git a/src/scsi/scsi_disk.c b/src/scsi/scsi_disk.c index 5cc48b906..f504985ef 100644 --- a/src/scsi/scsi_disk.c +++ b/src/scsi/scsi_disk.c @@ -237,10 +237,9 @@ scsi_disk_mode_sense_read(scsi_disk_t *dev, uint8_t page_control, uint8_t page, uint32_t scsi_disk_mode_sense(scsi_disk_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, uint8_t block_descriptor_len) { - uint8_t msplen, page_control = (page >> 6) & 3; - - int i = 0, j = 0; - int size = 0; + uint8_t msplen; + uint8_t page_control = (page >> 6) & 3; + int size = 0; page &= 0x3f; @@ -257,14 +256,14 @@ scsi_disk_mode_sense(scsi_disk_t *dev, uint8_t *buf, uint32_t pos, uint8_t page, buf[pos++] = 0; } - for (i = 0; i < 0x40; i++) { + for (uint8_t i = 0; i < 0x40; i++) { if ((page == GPMODE_ALL_PAGES) || (page == i)) { if (scsi_disk_mode_sense_page_flags & (1LL << (uint64_t) page)) { buf[pos++] = scsi_disk_mode_sense_read(dev, page_control, i, 0); msplen = scsi_disk_mode_sense_read(dev, page_control, i, 1); buf[pos++] = msplen; scsi_disk_log("SCSI HDD %i: MODE SENSE: Page [%02X] length %i\n", dev->id, i, msplen); - for (j = 0; j < msplen; j++) + for (uint8_t j = 0; j < msplen; j++) buf[pos++] = scsi_disk_mode_sense_read(dev, page_control, i, 2 + j); } } @@ -535,10 +534,13 @@ scsi_disk_command(scsi_common_t *sc, uint8_t *cdb) { scsi_disk_t *dev = (scsi_disk_t *) sc; int32_t *BufLen; - int32_t len, max_len, alloc_length; + int32_t len; + int32_t max_len; + int32_t alloc_length; int pos = 0; int idx = 0; - unsigned size_idx, preamble_len; + unsigned size_idx; + unsigned preamble_len; uint32_t last_sector = 0; char device_identify[9] = { '8', '6', 'B', '_', 'H', 'D', '0', '0', 0 }; char device_identify_ex[15] = { '8', '6', 'B', '_', 'H', 'D', '0', '0', ' ', 'v', '1', '.', '0', '0', 0 }; @@ -1050,11 +1052,20 @@ scsi_disk_phase_data_out(scsi_common_t *sc) int i; int32_t *BufLen = &scsi_devices[scsi_bus][scsi_id].buffer_length; uint32_t last_sector = hdd_image_get_last_sector(dev->id); - uint32_t c, h, s, last_to_write = 0; - uint16_t block_desc_len, pos; + uint32_t c; + uint32_t h; + uint32_t s; + uint32_t last_to_write = 0; + uint16_t block_desc_len; + uint16_t pos; uint16_t param_list_len; - uint8_t hdr_len, val, old_val, ch, error = 0; - uint8_t page, page_len; + uint8_t hdr_len; + uint8_t val; + uint8_t old_val; + uint8_t ch; + uint8_t error = 0; + uint8_t page; + uint8_t page_len; if (!*BufLen) { scsi_disk_set_phase(dev, SCSI_PHASE_STATUS); @@ -1185,12 +1196,12 @@ scsi_disk_phase_data_out(scsi_common_t *sc) void scsi_disk_hard_reset(void) { - int c; scsi_disk_t *dev; scsi_device_t *sd; - uint8_t scsi_bus, scsi_id; + uint8_t scsi_bus; + uint8_t scsi_id; - for (c = 0; c < HDD_NUM; c++) { + for (uint8_t c = 0; c < HDD_NUM; c++) { if (hdd[c].bus == HDD_BUS_SCSI) { scsi_disk_log("SCSI disk hard_reset drive=%d\n", c); @@ -1247,10 +1258,10 @@ void scsi_disk_close(void) { scsi_disk_t *dev; - int c; - uint8_t scsi_bus, scsi_id; + uint8_t scsi_bus; + uint8_t scsi_id; - for (c = 0; c < HDD_NUM; c++) { + for (uint8_t c = 0; c < HDD_NUM; c++) { if (hdd[c].bus == HDD_BUS_SCSI) { scsi_bus = (hdd[c].scsi_id >> 4) & 0x0f; scsi_id = hdd[c].scsi_id & 0x0f; diff --git a/src/scsi/scsi_ncr5380.c b/src/scsi/scsi_ncr5380.c index faa91b093..2d21592c9 100644 --- a/src/scsi/scsi_ncr5380.c +++ b/src/scsi/scsi_ncr5380.c @@ -217,14 +217,12 @@ ncr_irq(ncr5380_t *ncr_dev, ncr_t *ncr, int set_irq) static int get_dev_id(uint8_t data) { - int c; - - for (c = 0; c < SCSI_ID_MAX; c++) { + for (uint8_t c = 0; c < SCSI_ID_MAX; c++) { if (data & (1 << c)) - return (c); + return c; } - return (-1); + return -1; } static int @@ -718,7 +716,8 @@ ncr_read(uint16_t port, void *priv) ncr5380_t *ncr_dev = (ncr5380_t *) priv; ncr_t *ncr = &ncr_dev->ncr; uint8_t ret = 0xff; - int bus, bus_state; + int bus; + int bus_state; switch (port & 7) { case 0: /* Current SCSI data */ @@ -909,7 +908,7 @@ memio_read(uint32_t addr, void *priv) ncr_log("memio_read(%08x)=%02x\n", addr, ret); #endif - return (ret); + return ret; } /* Memory-mapped I/O WRITE handler. */ @@ -1082,7 +1081,7 @@ t130b_out(uint16_t port, uint8_t val, void *priv) static void ncr_dma_send(ncr5380_t *ncr_dev, ncr_t *ncr, scsi_device_t *dev) { - int bus, c = 0; + int bus; uint8_t data; if (scsi_device_get_callback(dev) > 0.0) @@ -1090,7 +1089,7 @@ ncr_dma_send(ncr5380_t *ncr_dev, ncr_t *ncr, scsi_device_t *dev) else ncr_timer_on(ncr_dev, ncr, 0); - for (c = 0; c < 10; c++) { + for (uint8_t c = 0; c < 10; c++) { ncr_bus_read(ncr_dev); if (ncr->cur_bus & BUS_REQ) break; @@ -1161,7 +1160,7 @@ ncr_dma_send(ncr5380_t *ncr_dev, ncr_t *ncr, scsi_device_t *dev) static void ncr_dma_initiator_receive(ncr5380_t *ncr_dev, ncr_t *ncr, scsi_device_t *dev) { - int bus, c = 0; + int bus; uint8_t temp; if (scsi_device_get_callback(dev) > 0.0) { @@ -1170,7 +1169,7 @@ ncr_dma_initiator_receive(ncr5380_t *ncr_dev, ncr_t *ncr, scsi_device_t *dev) ncr_timer_on(ncr_dev, ncr, 0); } - for (c = 0; c < 10; c++) { + for (uint8_t c = 0; c < 10; c++) { ncr_bus_read(ncr_dev); if (ncr->cur_bus & BUS_REQ) break; @@ -1376,7 +1375,7 @@ t128_read(uint32_t addr, void *priv) } } - return (ret); + return ret; } static void @@ -1600,7 +1599,7 @@ ncr_init(const device_t *info) } timer_add(&ncr_dev->timer, ncr_callback, ncr_dev, 0); - return (ncr_dev); + return ncr_dev; } static void diff --git a/src/scsi/scsi_ncr53c8xx.c b/src/scsi/scsi_ncr53c8xx.c index dfeae7569..482e098e3 100644 --- a/src/scsi/scsi_ncr53c8xx.c +++ b/src/scsi/scsi_ncr53c8xx.c @@ -451,13 +451,11 @@ ncr53c8xx_soft_reset(ncr53c8xx_t *dev) static void ncr53c8xx_read(ncr53c8xx_t *dev, uint32_t addr, uint8_t *buf, uint32_t len) { - uint32_t i = 0; - ncr53c8xx_log("ncr53c8xx_read(): %08X-%08X, length %i\n", addr, (addr + len - 1), len); if (dev->dmode & NCR_DMODE_SIOM) { ncr53c8xx_log("NCR 810: Reading from I/O address %04X\n", (uint16_t) addr); - for (i = 0; i < len; i++) + for (uint32_t i = 0; i < len; i++) buf[i] = inb((uint16_t) (addr + i)); } else { ncr53c8xx_log("NCR 810: Reading from memory address %08X\n", addr); @@ -468,13 +466,11 @@ ncr53c8xx_read(ncr53c8xx_t *dev, uint32_t addr, uint8_t *buf, uint32_t len) static void ncr53c8xx_write(ncr53c8xx_t *dev, uint32_t addr, uint8_t *buf, uint32_t len) { - uint32_t i = 0; - ncr53c8xx_log("ncr53c8xx_write(): %08X-%08X, length %i\n", addr, (addr + len - 1), len); if (dev->dmode & NCR_DMODE_DIOM) { ncr53c8xx_log("NCR 810: Writing to I/O address %04X\n", (uint16_t) addr); - for (i = 0; i < len; i++) + for (uint32_t i = 0; i < len; i++) outb((uint16_t) (addr + i), buf[i]); } else { ncr53c8xx_log("NCR 810: Writing to memory address %08X\n", addr); @@ -637,12 +633,13 @@ ncr53c8xx_command_complete(void *priv, uint32_t status) static void ncr53c8xx_do_dma(ncr53c8xx_t *dev, int out, uint8_t id) { - uint32_t addr, tdbc; + uint32_t addr; + uint32_t tdbc; int count; scsi_device_t *sd = &scsi_devices[dev->bus][id]; - if ((!scsi_device_present(sd))) { + if (!scsi_device_present(sd)) { ncr53c8xx_log("(ID=%02i LUN=%02i) SCSI Command 0x%02x: Device not present when attempting to do DMA\n", id, dev->current_lun, dev->last_command); return; } @@ -878,7 +875,8 @@ static void ncr53c8xx_do_msgout(ncr53c8xx_t *dev, uint8_t id) { uint8_t msg; - int len, arg; + int len; + int arg; scsi_device_t *sd; sd = &scsi_devices[dev->bus][id]; @@ -1000,10 +998,26 @@ ncr53c8xx_memcpy(ncr53c8xx_t *dev, uint32_t dest, uint32_t src, int count) static void ncr53c8xx_process_script(ncr53c8xx_t *dev) { - uint32_t insn, addr, id, buf[2], dest; - int opcode, insn_processed = 0, reg, operator, cond, jmp, n, i, c; - int32_t offset; - uint8_t op0, op1, data8, mask, data[7]; + uint32_t insn; + uint32_t addr; + uint32_t id; + uint32_t buf[2]; + uint32_t dest; + int opcode; + int insn_processed = 0; + int reg; + int operator; + int cond; + int jmp; + int n; + int i; + int c; + int32_t offset; + uint8_t op0; + uint8_t op1; + uint8_t data8; + uint8_t mask; + uint8_t data[7]; dev->sstop = 0; again: @@ -2329,7 +2343,7 @@ ncr53c8xx_pci_read(int func, int addr, void *p) return 0x40; } - return (0); + return 0; } static void @@ -2570,7 +2584,7 @@ ncr53c8xx_init(const device_t *info) timer_add(&dev->timer, ncr53c8xx_callback, dev, 0); - return (dev); + return dev; } static void diff --git a/src/scsi/scsi_pcscsi.c b/src/scsi/scsi_pcscsi.c index c4f3143e8..f3dc6ebaf 100644 --- a/src/scsi/scsi_pcscsi.c +++ b/src/scsi/scsi_pcscsi.c @@ -360,7 +360,8 @@ static uint32_t esp_get_cmd(esp_t *dev, uint32_t maxlen) { uint8_t buf[ESP_CMDFIFO_SZ]; - uint32_t dmalen, n; + uint32_t dmalen; + uint32_t n; dev->id = dev->wregs[ESP_WBUSID] & BUSID_DID; if (dev->dma) { @@ -1313,7 +1314,8 @@ esp_io_pci_read(esp_t *dev, uint32_t addr, unsigned int size) static void esp_io_pci_write(esp_t *dev, uint32_t addr, uint32_t val, unsigned int size) { - uint32_t current, mask; + uint32_t current; + uint32_t mask; int shift; addr &= 0x7f; @@ -1691,7 +1693,7 @@ esp_pci_read(int func, int addr, void *p) return esp_pci_regs[addr]; } - return (0); + return 0; } static void @@ -1844,7 +1846,7 @@ dc390_init(const device_t *info) timer_add(&dev->timer, esp_callback, dev, 0); - return (dev); + return dev; } static uint16_t @@ -2011,7 +2013,7 @@ ncr53c90_mca_init(const device_t *info) timer_add(&dev->timer, esp_callback, dev, 0); - return (dev); + return dev; } static void diff --git a/src/scsi/scsi_spock.c b/src/scsi/scsi_spock.c index 19fba0fb7..cddf15740 100644 --- a/src/scsi/scsi_spock.c +++ b/src/scsi/scsi_spock.c @@ -228,10 +228,9 @@ static void spock_rethink_irqs(spock_t *scsi) { int irq_pending = 0; - int c; if (!scsi->irq_status) { - for (c = 0; c < SCSI_ID_MAX; c++) { + for (uint8_t c = 0; c < SCSI_ID_MAX; c++) { if (scsi->irq_requests[c] != IRQ_TYPE_NONE) { /* Found IRQ */ scsi->irq_status = c | (scsi->irq_requests[c] << 4); @@ -414,21 +413,21 @@ spock_rd_sge(spock_t *scsi, uint32_t Address, SGE *SG) static int spock_get_len(spock_t *scsi, scb_t *scb) { - uint32_t DataToTransfer = 0, i = 0; + uint32_t DataToTransfer = 0; spock_log("Data Buffer write: length %d, pointer 0x%04X\n", scsi->data_len, scsi->data_ptr); if (!scsi->data_len) - return (0); + return 0; if (scb->enable & ENABLE_PT) { - for (i = 0; i < scsi->data_len; i += 8) { + for (uint32_t i = 0; i < scsi->data_len; i += 8) { spock_rd_sge(scsi, scsi->data_ptr + i, &scb->sge); DataToTransfer += scb->sge.sys_buf_byte_count; } - return (DataToTransfer); + return DataToTransfer; } else { return (scsi->data_len); } @@ -437,8 +436,11 @@ spock_get_len(spock_t *scsi, scb_t *scb) static void spock_process_imm_cmd(spock_t *scsi) { - int i, j = 0; - int adapter_id, phys_id, lun_id; + int i; + int j = 0; + int adapter_id; + int phys_id; + int lun_id; scsi->assign = 0; @@ -516,7 +518,8 @@ spock_process_imm_cmd(spock_t *scsi) static void spock_execute_cmd(spock_t *scsi, scb_t *scb) { - int c, j = 0; + int c; + int j = 0; int old_scb_state; if (scsi->in_reset) { @@ -847,7 +850,6 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb) static void spock_process_scsi(spock_t *scsi, scb_t *scb) { - int c; double p; scsi_device_t *sd; @@ -910,7 +912,7 @@ spock_process_scsi(spock_t *scsi, scb_t *scb) uint32_t Address; if (scb->sge.sys_buf_byte_count > 0) { - for (c = 0; c < scsi->data_len; c += 8) { + for (uint32_t c = 0; c < scsi->data_len; c += 8) { spock_rd_sge(scsi, scsi->data_ptr + c, &scb->sge); Address = scb->sge.sys_buf_addr; @@ -1077,7 +1079,6 @@ static void spock_mca_reset(void *priv) { spock_t *scsi = (spock_t *) priv; - int i; scsi->in_reset = 2; scsi->cmd_timer = SPOCK_TIME * 50; @@ -1089,7 +1090,7 @@ spock_mca_reset(void *priv) scsi->basic_ctrl = 0; /* Reset all devices on controller reset. */ - for (i = 0; i < 8; i++) { + for (uint8_t i = 0; i < 8; i++) { scsi_device_reset(&scsi_devices[scsi->bus][i]); scsi->present[i] = 0; } @@ -1098,7 +1099,6 @@ spock_mca_reset(void *priv) static void * spock_init(const device_t *info) { - int c; spock_t *scsi = malloc(sizeof(spock_t)); memset(scsi, 0x00, sizeof(spock_t)); @@ -1128,7 +1128,7 @@ spock_init(const device_t *info) scsi->cmd_timer = SPOCK_TIME * 50; scsi->status = STATUS_BUSY; - for (c = 0; c < (SCSI_ID_MAX - 1); c++) { + for (uint8_t c = 0; c < (SCSI_ID_MAX - 1); c++) { scsi->dev_id[c].phys_id = -1; } diff --git a/src/scsi/scsi_x54x.c b/src/scsi/scsi_x54x.c index 2fa917bf8..dd71b1a05 100644 --- a/src/scsi/scsi_x54x.c +++ b/src/scsi/scsi_x54x.c @@ -238,9 +238,9 @@ completion_code(uint8_t *sense) case ASC_MEDIUM_NOT_PRESENT: ret = 0xaa; break; - }; + } - return (ret); + return ret; } static uint8_t @@ -256,7 +256,7 @@ x54x_bios_scsi_command(scsi_device_t *dev, uint8_t *cdb, uint8_t *buf, int len, if (len > 0) { if (dev->buffer_length == -1) { fatal("Buffer length -1 when doing SCSI DMA\n"); - return (0xff); + return 0xff; } if (dev->phase == SCSI_PHASE_DATA_IN) { @@ -292,7 +292,7 @@ x54x_bios_read_capacity(scsi_device_t *sd, uint8_t *buf, int transfer_size) free(cdb); - return (ret); + return ret; } static uint8_t @@ -311,7 +311,7 @@ x54x_bios_inquiry(scsi_device_t *sd, uint8_t *buf, int transfer_size) free(cdb); - return (ret); + return ret; } static uint8_t @@ -327,7 +327,7 @@ x54x_bios_command_08(scsi_device_t *sd, uint8_t *buffer, int transfer_size) ret = x54x_bios_read_capacity(sd, rcbuf, transfer_size); if (ret) { free(rcbuf); - return (ret); + return ret; } memset(buffer, 0x00, 6); @@ -340,15 +340,15 @@ x54x_bios_command_08(scsi_device_t *sd, uint8_t *buffer, int transfer_size) free(rcbuf); - return (0); + return 0; } static int x54x_bios_command_15(scsi_device_t *sd, uint8_t *buffer, int transfer_size) { - uint8_t *inqbuf, *rcbuf; + uint8_t *inqbuf; + uint8_t *rcbuf; uint8_t ret; - int i; memset(buffer, 0x00, 6); @@ -356,7 +356,7 @@ x54x_bios_command_15(scsi_device_t *sd, uint8_t *buffer, int transfer_size) ret = x54x_bios_inquiry(sd, inqbuf, transfer_size); if (ret) { free(inqbuf); - return (ret); + return ret; } buffer[4] = inqbuf[0]; @@ -367,10 +367,10 @@ x54x_bios_command_15(scsi_device_t *sd, uint8_t *buffer, int transfer_size) if (ret) { free(rcbuf); free(inqbuf); - return (ret); + return ret; } - for (i = 0; i < 4; i++) + for (uint8_t i = 0; i < 4; i++) buffer[i] = rcbuf[i]; x54x_log("BIOS Command 0x15: %02X %02X %02X %02X %02X %02X\n", @@ -379,7 +379,7 @@ x54x_bios_command_15(scsi_device_t *sd, uint8_t *buffer, int transfer_size) free(rcbuf); free(inqbuf); - return (0); + return 0; } /* This returns the completion code. */ @@ -428,7 +428,7 @@ x54x_bios_command(x54x_t *x54x, uint8_t max_id, BIOSCMD *cmd, int8_t islba) if ((dev->type == SCSI_REMOVABLE_CDROM) && !(x54x->flags & X54X_CDROM_BOOT)) { x54x_log("BIOS Target ID %i is CD-ROM on unsupported BIOS\n", cmd->id); - return (0x80); + return 0x80; } else { dma_address = ADDR_TO_U32(cmd->dma_address); @@ -458,7 +458,7 @@ x54x_bios_command(x54x_t *x54x, uint8_t max_id, BIOSCMD *cmd, int8_t islba) dma_bm_write(dma_address, scsi_device_sense(dev), 14, x54x->transfer_size); } - return (0); + return 0; break; case 0x02: /* Read Desired Sectors to Memory */ @@ -533,7 +533,7 @@ x54x_bios_command(x54x_t *x54x, uint8_t max_id, BIOSCMD *cmd, int8_t islba) } x54x_log("BIOS Request %02X complete: %02X\n", cmd->command, ret); - return (ret); + return ret; } static void @@ -692,10 +692,11 @@ x54x_rd_sge(x54x_t *dev, int Is24bit, uint32_t Address, SGE32 *SG) static int x54x_get_length(x54x_t *dev, Req_t *req, int Is24bit) { - uint32_t DataPointer, DataLength; + uint32_t DataPointer; + uint32_t DataLength; uint32_t SGEntryLength = (Is24bit ? sizeof(SGE) : sizeof(SGE32)); SGE32 SGBuffer; - uint32_t DataToTransfer = 0, i = 0; + uint32_t DataToTransfer = 0; if (Is24bit) { DataPointer = ADDR_TO_U32(req->CmdBlock.old.DataPointer); @@ -709,23 +710,23 @@ x54x_get_length(x54x_t *dev, Req_t *req, int Is24bit) DataLength, DataPointer); if (!DataLength) - return (0); + return 0; if (req->CmdBlock.common.ControlByte != 0x03) { if (req->CmdBlock.common.Opcode == SCATTER_GATHER_COMMAND || req->CmdBlock.common.Opcode == SCATTER_GATHER_COMMAND_RES) { - for (i = 0; i < DataLength; i += SGEntryLength) { + for (uint32_t i = 0; i < DataLength; i += SGEntryLength) { x54x_rd_sge(dev, Is24bit, DataPointer + i, &SGBuffer); DataToTransfer += SGBuffer.Segment; } - return (DataToTransfer); + return DataToTransfer; } else if (req->CmdBlock.common.Opcode == SCSI_INITIATOR_COMMAND || req->CmdBlock.common.Opcode == SCSI_INITIATOR_COMMAND_RES) { - return (DataLength); + return DataLength; } else { - return (0); + return 0; } } else { - return (0); + return 0; } } @@ -763,9 +764,10 @@ x54x_set_residue(x54x_t *dev, Req_t *req, int32_t TransferLength) static void x54x_buf_dma_transfer(x54x_t *dev, Req_t *req, int Is24bit, int TransferLength, int dir) { - uint32_t DataPointer, DataLength; + uint32_t DataPointer; + uint32_t DataLength; uint32_t SGEntryLength = (Is24bit ? sizeof(SGE) : sizeof(SGE32)); - uint32_t Address, i; + uint32_t Address; int32_t BufLen = scsi_devices[dev->bus][req->TargetID].buffer_length; uint8_t read_from_host = (dir && ((req->CmdBlock.common.ControlByte == CCB_DATA_XFER_OUT) || (req->CmdBlock.common.ControlByte == 0x00))); uint8_t write_to_host = (!dir && ((req->CmdBlock.common.ControlByte == CCB_DATA_XFER_IN) || (req->CmdBlock.common.ControlByte == 0x00))); @@ -789,7 +791,7 @@ x54x_buf_dma_transfer(x54x_t *dev, Req_t *req, int Is24bit, int TransferLength, /* If the control byte is 0x00, it means that the transfer direction is set up by the SCSI command without checking its length, so do this procedure for both no read/write commands. */ if ((DataLength > 0) && (req->CmdBlock.common.ControlByte < 0x03)) { - for (i = 0; i < DataLength; i += SGEntryLength) { + for (uint32_t i = 0; i < DataLength; i += SGEntryLength) { x54x_rd_sge(dev, Is24bit, DataPointer + i, &SGBuffer); Address = SGBuffer.SegmentPointer; @@ -838,7 +840,7 @@ ConvertSenseLength(uint8_t RequestSenseLength) x54x_log("Request Sense length %i\n", RequestSenseLength); - return (RequestSenseLength); + return RequestSenseLength; } uint32_t @@ -852,7 +854,7 @@ SenseBufferPointer(Req_t *req) SenseBufferAddress = req->CmdBlock.new.SensePointer; } - return (SenseBufferAddress); + return SenseBufferAddress; } static void @@ -888,7 +890,7 @@ x54x_scsi_cmd(x54x_t *dev) { Req_t *req = &dev->Req; uint8_t bit24 = !!req->Is24bit; - uint32_t i, target_cdb_len = 12; + uint32_t target_cdb_len = 12; scsi_device_t *sd; sd = &scsi_devices[dev->bus][req->TargetID]; @@ -904,7 +906,7 @@ x54x_scsi_cmd(x54x_t *dev) x54x_log("SCSI command being executed on ID %i, LUN %i\n", req->TargetID, req->LUN); x54x_log("SCSI CDB[0]=0x%02X\n", req->CmdBlock.common.Cdb[0]); - for (i = 1; i < req->CmdBlock.common.CdbLength; i++) + for (uint8_t i = 1; i < req->CmdBlock.common.CdbLength; i++) x54x_log("SCSI CDB[%i]=%i\n", i, req->CmdBlock.common.Cdb[i]); memset(dev->temp_cdb, 0x00, target_cdb_len); @@ -1036,7 +1038,8 @@ static void x54x_req_setup(x54x_t *dev, uint32_t CCBPointer, Mailbox32_t *Mailbox32) { Req_t *req = &dev->Req; - uint8_t id, lun; + uint8_t id; + uint8_t lun; scsi_device_t *sd; /* Fetch data from the Command Control Block. */ @@ -1141,7 +1144,7 @@ x54x_mbo(x54x_t *dev, Mailbox32_t *Mailbox32) x54x_add_to_period(dev, sizeof(Mailbox32_t)); } - return (Outgoing); + return Outgoing; } uint8_t @@ -1169,10 +1172,10 @@ x54x_mbo_process(x54x_t *dev) else dev->MailboxReq--; - return (1); + return 1; } - return (0); + return 0; } static void @@ -1218,7 +1221,8 @@ x54x_cmd_callback(void *priv) double period; x54x_t *dev = (x54x_t *) priv; - int mailboxes_present, bios_mailboxes_present; + int mailboxes_present; + int bios_mailboxes_present; mailboxes_present = (!(dev->Status & STAT_INIT) && dev->MailboxInit && dev->MailboxReq); bios_mailboxes_present = (dev->ven_callback && dev->BIOSMailboxInit && dev->BIOSMailboxReq); @@ -1354,7 +1358,7 @@ x54x_in(uint16_t port, void *priv) x54x_log("x54x_in(): %04X, %02X\n", port, ret); #endif - return (ret); + return ret; } static uint16_t @@ -1398,8 +1402,6 @@ x54x_reset_poll(void *priv) static void x54x_reset(x54x_t *dev) { - int i; - clear_irq(dev); if (dev->flags & X54X_INT_GEOM_WRITABLE) dev->Geometry = 0x90; @@ -1421,7 +1423,7 @@ x54x_reset(x54x_t *dev) dev->MailboxOutPosCur = 0; /* Reset all devices on controller reset. */ - for (i = 0; i < 16; i++) + for (uint8_t i = 0; i < 16; i++) scsi_device_reset(&scsi_devices[dev->bus][i]); if (dev->ven_reset) @@ -1878,7 +1880,7 @@ x54x_init(const device_t *info) /* Allocate control block and set up basic stuff. */ dev = malloc(sizeof(x54x_t)); if (dev == NULL) - return (dev); + return dev; memset(dev, 0x00, sizeof(x54x_t)); dev->type = info->local; @@ -1895,7 +1897,7 @@ x54x_init(const device_t *info) else dev->transfer_size = 2; - return (dev); + return dev; } void diff --git a/src/sio/sio_82091aa.c b/src/sio/sio_82091aa.c index 52a8809e9..4011f7ecf 100644 --- a/src/sio/sio_82091aa.c +++ b/src/sio/sio_82091aa.c @@ -134,7 +134,8 @@ static void i82091aa_write(uint16_t port, uint8_t val, void *priv) { i82091aa_t *dev = (i82091aa_t *) priv; - uint8_t index, valxor; + uint8_t index; + uint8_t valxor; uint8_t uart = (dev->cur_reg >> 4) - 0x03; uint8_t *reg = &(dev->regs[dev->cur_reg]); @@ -199,7 +200,8 @@ uint8_t i82091aa_read(uint16_t port, void *priv) { i82091aa_t *dev = (i82091aa_t *) priv; - uint8_t ret = 0xff, index; + uint8_t ret = 0xff; + uint8_t index; index = (port & 1) ? 0 : 1; diff --git a/src/sio/sio_ali5123.c b/src/sio/sio_ali5123.c index 54949a125..68d674b11 100644 --- a/src/sio/sio_ali5123.c +++ b/src/sio/sio_ali5123.c @@ -131,15 +131,13 @@ ali5123_serial_handler(ali5123_t *dev, int uart) static void ali5123_reset(ali5123_t *dev) { - int i = 0; - memset(dev->regs, 0, 48); dev->regs[0x20] = 0x43; dev->regs[0x21] = 0x15; dev->regs[0x2d] = 0x20; - for (i = 0; i < 13; i++) + for (uint8_t i = 0; i < 13; i++) memset(dev->ld_regs[i], 0, 256); /* Logical device 0: FDD */ @@ -209,7 +207,8 @@ ali5123_write(uint16_t port, uint8_t val, void *priv) { ali5123_t *dev = (ali5123_t *) priv; uint8_t index = (port & 1) ? 0 : 1; - uint8_t valxor = 0x00, cur_ld = dev->regs[7]; + uint8_t valxor = 0x00; + uint8_t cur_ld = dev->regs[7]; if (index) { if (((val == 0x51) && (!dev->tries) && (!dev->locked)) || ((val == 0x23) && (dev->tries) && (!dev->locked))) { @@ -402,7 +401,8 @@ ali5123_read(uint16_t port, void *priv) { ali5123_t *dev = (ali5123_t *) priv; uint8_t index = (port & 1) ? 0 : 1; - uint8_t ret = 0xff, cur_ld; + uint8_t ret = 0xff; + uint8_t cur_ld; if (dev->locked) { if (index) diff --git a/src/sio/sio_fdc37c67x.c b/src/sio/sio_fdc37c67x.c index af8a89bf5..35c7ccc5b 100644 --- a/src/sio/sio_fdc37c67x.c +++ b/src/sio/sio_fdc37c67x.c @@ -234,7 +234,8 @@ fdc37c67x_write(uint16_t port, uint8_t val, void *priv) { fdc37c67x_t *dev = (fdc37c67x_t *) priv; uint8_t index = (port & 1) ? 0 : 1; - uint8_t valxor = 0x00, keep = 0x00; + uint8_t valxor = 0x00; + uint8_t keep = 0x00; if (index) { if ((val == 0x55) && !dev->locked) { @@ -477,8 +478,6 @@ fdc37c67x_read(uint16_t port, void *priv) static void fdc37c67x_reset(fdc37c67x_t *dev) { - int i = 0; - memset(dev->regs, 0, 48); dev->regs[0x03] = 0x03; @@ -488,7 +487,7 @@ fdc37c67x_reset(fdc37c67x_t *dev) dev->regs[0x26] = 0xf0; dev->regs[0x27] = 0x03; - for (i = 0; i < 11; i++) + for (uint8_t i = 0; i < 11; i++) memset(dev->ld_regs[i], 0, 256); /* Logical device 0: FDD */ diff --git a/src/sio/sio_fdc37c93x.c b/src/sio/sio_fdc37c93x.c index 110289f1f..80f451e06 100644 --- a/src/sio/sio_fdc37c93x.c +++ b/src/sio/sio_fdc37c93x.c @@ -339,7 +339,8 @@ fdc37c93x_write(uint16_t port, uint8_t val, void *priv) { fdc37c93x_t *dev = (fdc37c93x_t *) priv; uint8_t index = (port & 1) ? 0 : 1; - uint8_t valxor = 0x00, keep = 0x00; + uint8_t valxor = 0x00; + uint8_t keep = 0x00; /* Compaq Presario 4500: Unlock at FB, Register at EA, Data at EB, Lock at F9. */ if ((port == 0xea) || (port == 0xf9) || (port == 0xfb)) @@ -669,8 +670,6 @@ fdc37c93x_read(uint16_t port, void *priv) static void fdc37c93x_reset(fdc37c93x_t *dev) { - int i = 0; - memset(dev->regs, 0, 48); dev->regs[0x03] = 0x03; @@ -681,7 +680,7 @@ fdc37c93x_reset(fdc37c93x_t *dev) dev->regs[0x26] = 0xF0; dev->regs[0x27] = 0x03; - for (i = 0; i < 11; i++) + for (uint8_t i = 0; i < 11; i++) memset(dev->ld_regs[i], 0, 256); /* Logical device 0: FDD */ diff --git a/src/sio/sio_fdc37m60x.c b/src/sio/sio_fdc37m60x.c index e29734c51..af238c51f 100644 --- a/src/sio/sio_fdc37m60x.c +++ b/src/sio/sio_fdc37m60x.c @@ -249,10 +249,9 @@ static void fdc37m60x_reset(void *priv) { fdc37m60x_t *dev = (fdc37m60x_t *) priv; - uint8_t i; memset(dev->regs, 0, sizeof(dev->regs)); - for (i = 0; i < 10; i++) + for (uint8_t i = 0; i < 10; i++) memset(dev->device_regs[i], 0, sizeof(dev->device_regs[i])); dev->regs[0x20] = 0x47; diff --git a/src/sio/sio_pc87306.c b/src/sio/sio_pc87306.c index 8755775de..088467eeb 100644 --- a/src/sio/sio_pc87306.c +++ b/src/sio/sio_pc87306.c @@ -85,7 +85,8 @@ static void lpt1_handler(pc87306_t *dev) { int temp; - uint16_t lptba, lpt_port = LPT1_ADDR; + uint16_t lptba; + uint16_t lpt_port = LPT1_ADDR; uint8_t lpt_irq = LPT2_IRQ; temp = dev->regs[0x01] & 3; @@ -126,8 +127,10 @@ static void serial_handler(pc87306_t *dev, int uart) { int temp; - uint8_t fer_irq, pnp1_irq; - uint8_t fer_shift, pnp_shift; + uint8_t fer_irq; + uint8_t pnp1_irq; + uint8_t fer_shift; + uint8_t pnp_shift; uint8_t irq; temp = (dev->regs[1] >> (2 << uart)) & 3; @@ -187,7 +190,8 @@ static void pc87306_write(uint16_t port, uint8_t val, void *priv) { pc87306_t *dev = (pc87306_t *) priv; - uint8_t index, valxor; + uint8_t index; + uint8_t valxor; index = (port & 1) ? 0 : 1; @@ -327,7 +331,8 @@ uint8_t pc87306_read(uint16_t port, void *priv) { pc87306_t *dev = (pc87306_t *) priv; - uint8_t ret = 0xff, index; + uint8_t ret = 0xff; + uint8_t index; index = (port & 1) ? 0 : 1; diff --git a/src/sio/sio_pc87307.c b/src/sio/sio_pc87307.c index 6f773a8e1..78cfdcd99 100644 --- a/src/sio/sio_pc87307.c +++ b/src/sio/sio_pc87307.c @@ -64,8 +64,10 @@ uint8_t pc87307_gpio_read(uint16_t port, void *priv) { pc87307_t *dev = (pc87307_t *) priv; - uint8_t pins = 0xff, bank = ((port & 0xfffc) == dev->gpio_base2); - uint8_t mask, ret = dev->gpio[bank][port & 0x0003]; + uint8_t pins = 0xff; + uint8_t bank = ((port & 0xfffc) == dev->gpio_base2); + uint8_t mask; + uint8_t ret = dev->gpio[bank][port & 0x0003]; switch (port & 0x0003) { case 0x0000: @@ -157,7 +159,8 @@ pc87307_pm_init(pc87307_t *dev, uint16_t addr) static void fdc_handler(pc87307_t *dev) { - uint8_t irq, active; + uint8_t irq; + uint8_t active; uint16_t addr; fdc_remove(dev->fdc); @@ -175,7 +178,8 @@ fdc_handler(pc87307_t *dev) static void lpt1_handler(pc87307_t *dev) { - uint8_t irq, active; + uint8_t irq; + uint8_t active; uint16_t addr; lpt1_remove(); @@ -193,7 +197,8 @@ lpt1_handler(pc87307_t *dev) static void serial_handler(pc87307_t *dev, int uart) { - uint8_t irq, active; + uint8_t irq; + uint8_t active; uint16_t addr; serial_remove(dev->uart[uart]); @@ -424,7 +429,8 @@ uint8_t pc87307_read(uint16_t port, void *priv) { pc87307_t *dev = (pc87307_t *) priv; - uint8_t ret = 0xff, index; + uint8_t ret = 0xff; + uint8_t index; index = (port & 1) ? 0 : 1; @@ -445,10 +451,8 @@ pc87307_read(uint16_t port, void *priv) void pc87307_reset(pc87307_t *dev) { - int i; - memset(dev->regs, 0x00, 0x30); - for (i = 0; i < 256; i++) + for (uint16_t i = 0; i < 256; i++) memset(dev->ld_regs[i], 0x00, 0xd0); memset(dev->pcregs, 0x00, 0x10); memset(dev->gpio, 0xff, 0x08); diff --git a/src/sio/sio_pc87309.c b/src/sio/sio_pc87309.c index 70ed57229..dfa41f601 100644 --- a/src/sio/sio_pc87309.c +++ b/src/sio/sio_pc87309.c @@ -102,7 +102,8 @@ pc87309_pm_init(pc87309_t *dev, uint16_t addr) static void fdc_handler(pc87309_t *dev) { - uint8_t irq, active; + uint8_t irq; + uint8_t active; uint16_t addr; fdc_remove(dev->fdc); @@ -120,7 +121,8 @@ fdc_handler(pc87309_t *dev) static void lpt1_handler(pc87309_t *dev) { - uint8_t irq, active; + uint8_t irq; + uint8_t active; uint16_t addr; lpt1_remove(); @@ -138,7 +140,8 @@ lpt1_handler(pc87309_t *dev) static void serial_handler(pc87309_t *dev, int uart) { - uint8_t irq, active; + uint8_t irq; + uint8_t active; uint16_t addr; serial_remove(dev->uart[uart]); @@ -326,7 +329,8 @@ uint8_t pc87309_read(uint16_t port, void *priv) { pc87309_t *dev = (pc87309_t *) priv; - uint8_t ret = 0xff, index; + uint8_t ret = 0xff; + uint8_t index; index = (port & 1) ? 0 : 1; @@ -345,10 +349,8 @@ pc87309_read(uint16_t port, void *priv) void pc87309_reset(pc87309_t *dev) { - int i; - memset(dev->regs, 0x00, 0x30); - for (i = 0; i < 256; i++) + for (uint16_t i = 0; i < 256; i++) memset(dev->ld_regs[i], 0x00, 0xd0); memset(dev->pm, 0x00, 0x08); diff --git a/src/sio/sio_pc87332.c b/src/sio/sio_pc87332.c index 64dd86665..7f48b899b 100644 --- a/src/sio/sio_pc87332.c +++ b/src/sio/sio_pc87332.c @@ -149,7 +149,8 @@ static void pc87332_write(uint16_t port, uint8_t val, void *priv) { pc87332_t *dev = (pc87332_t *) priv; - uint8_t index, valxor; + uint8_t index; + uint8_t valxor; index = (port & 1) ? 0 : 1; @@ -244,7 +245,8 @@ uint8_t pc87332_read(uint16_t port, void *priv) { pc87332_t *dev = (pc87332_t *) priv; - uint8_t ret = 0xff, index; + uint8_t ret = 0xff; + uint8_t index; index = (port & 1) ? 0 : 1; @@ -316,7 +318,7 @@ pc87332_init(const device_t *info) dev->fdc_on = (info->local >> 16) & 0xff; pc87332_reset(dev); - if ((info->local & 0xff) == (0x01)) { + if ((info->local & 0xff) == 0x01) { io_sethandler(0x398, 0x0002, pc87332_read, NULL, NULL, pc87332_write, NULL, NULL, dev); } else { diff --git a/src/sio/sio_vt82c686.c b/src/sio/sio_vt82c686.c index c7f9c28bc..b03207041 100644 --- a/src/sio/sio_vt82c686.c +++ b/src/sio/sio_vt82c686.c @@ -68,7 +68,8 @@ vt82c686_fdc_handler(vt82c686_t *dev) static void vt82c686_lpt_handler(vt82c686_t *dev) { - uint16_t io_mask, io_base = dev->regs[0x06] << 2; + uint16_t io_mask; + uint16_t io_base = dev->regs[0x06] << 2; int io_len = get_lpt_length(dev); io_base &= (0xff8 | io_len); io_mask = 0x3fc; /* non-EPP */ diff --git a/src/sio/sio_w83787f.c b/src/sio/sio_w83787f.c index 722f1eef8..280bab6e9 100644 --- a/src/sio/sio_w83787f.c +++ b/src/sio/sio_w83787f.c @@ -123,8 +123,10 @@ w83787f_serial_handler(w83787f_t *dev, int uart) int urs0 = !!(dev->regs[1] & (1 << uart)); int urs1 = !!(dev->regs[1] & (4 << uart)); int urs2 = !!(dev->regs[3] & (8 >> uart)); - int urs, irq = COM1_IRQ; - uint16_t addr = COM1_ADDR, enable = 1; + int urs; + int irq = COM1_IRQ; + uint16_t addr = COM1_ADDR; + uint16_t enable = 1; urs = (urs1 << 1) | urs0; @@ -165,7 +167,8 @@ w83787f_lpt_handler(w83787f_t *dev) { int ptras = (dev->regs[1] >> 4) & 0x03; int irq = LPT1_IRQ; - uint16_t addr = LPT1_ADDR, enable = 1; + uint16_t addr = LPT1_ADDR; + uint16_t enable = 1; switch (ptras) { case 0x00: diff --git a/src/sio/sio_w83977f.c b/src/sio/sio_w83977f.c index 1b6105840..30a4c8b52 100644 --- a/src/sio/sio_w83977f.c +++ b/src/sio/sio_w83977f.c @@ -96,7 +96,8 @@ w83977f_fdc_handler(w83977f_t *dev) static void w83977f_lpt_handler(w83977f_t *dev) { - uint16_t io_mask, io_base = (dev->dev_regs[1][0x30] << 8) | dev->dev_regs[1][0x31]; + uint16_t io_mask; + uint16_t io_base = (dev->dev_regs[1][0x30] << 8) | dev->dev_regs[1][0x31]; int io_len = get_lpt_length(dev); io_base &= (0xff8 | io_len); io_mask = 0xffc; @@ -362,10 +363,8 @@ w83977f_read(uint16_t port, void *priv) static void w83977f_reset(w83977f_t *dev) { - int i; - memset(dev->regs, 0, 48); - for (i = 0; i < 256; i++) + for (uint16_t i = 0; i < 256; i++) memset(dev->dev_regs[i], 0, 208); if (dev->type < 2) { diff --git a/src/sound/midi.c b/src/sound/midi.c index 0cc8f2b38..50ddaaeb4 100644 --- a/src/sound/midi.c +++ b/src/sound/midi.c @@ -36,10 +36,12 @@ static int midi_output_device_last = 0; int midi_input_device_current = 0; static int midi_input_device_last = 0; -midi_t *midi_out = NULL, *midi_in = NULL; +midi_t *midi_out = NULL; +midi_t *midi_in = NULL; -midi_in_handler_t *mih_first = NULL, *mih_last = NULL, - *mih_cur = NULL; +midi_in_handler_t *mih_first = NULL; +midi_in_handler_t *mih_last = NULL; +midi_in_handler_t *mih_cur = NULL; uint8_t MIDI_InSysexBuf[SYSEX_SIZE]; @@ -306,7 +308,7 @@ midi_raw_out_rt_byte(uint8_t val) if (!midi_in->midi_realtime) return; - if ((!midi_in->midi_clockout && (val == 0xf8))) + if (!midi_in->midi_clockout && (val == 0xf8)) return; midi_in->midi_cmd_r = val << 24; @@ -329,7 +331,7 @@ midi_raw_out_byte(uint8_t val) if (!midi_out || !midi_out->m_out_device) return; - if ((midi_out->m_out_device->write && midi_out->m_out_device->write(val))) + if (midi_out->m_out_device->write && midi_out->m_out_device->write(val)) return; if (midi_out->midi_sysex_start) { @@ -408,7 +410,8 @@ midi_clear_buffer(void) void midi_in_handler(int set, void (*msg)(void *p, uint8_t *msg, uint32_t len), int (*sysex)(void *p, uint8_t *buffer, uint32_t len, int abort), void *p) { - midi_in_handler_t *temp = NULL, *next; + midi_in_handler_t *temp = NULL; + midi_in_handler_t *next; if (set) { /* Add MIDI IN handler. */ @@ -468,7 +471,8 @@ midi_in_handler(int set, void (*msg)(void *p, uint8_t *msg, uint32_t len), int ( void midi_in_handlers_clear(void) { - midi_in_handler_t *temp = mih_first, *next; + midi_in_handler_t *temp = mih_first; + midi_in_handler_t *next; while (1) { if (temp == NULL) @@ -532,7 +536,8 @@ static int midi_do_sysex(void) { midi_in_handler_t *temp = mih_first; - int ret, cnt_acc = 0; + int ret; + int cnt_acc = 0; while (1) { if (temp == NULL) diff --git a/src/sound/openal.c b/src/sound/openal.c index a1b870480..8fe101d64 100644 --- a/src/sound/openal.c +++ b/src/sound/openal.c @@ -111,9 +111,12 @@ closeal(void) void inital(void) { - float *buf = NULL, *cd_buf = NULL, *midi_buf = NULL; - int16_t *buf_int16 = NULL, *cd_buf_int16 = NULL, *midi_buf_int16 = NULL; - int c; + float *buf = NULL; + float *cd_buf = NULL; + float *midi_buf = NULL; + int16_t *buf_int16 = NULL; + int16_t *cd_buf_int16 = NULL; + int16_t *midi_buf_int16 = NULL; char *mdn; int init_midi = 0; @@ -182,7 +185,7 @@ inital(void) memset(midi_buf_int16, 0, midi_buf_size * sizeof(int16_t)); } - for (c = 0; c < 4; c++) { + for (uint8_t c = 0; c < 4; c++) { if (sound_is_float) { alBufferData(buffers[c], AL_FORMAT_STEREO_FLOAT32, buf, BUFLEN * 2 * sizeof(float), FREQ); alBufferData(buffers_cd[c], AL_FORMAT_STEREO_FLOAT32, cd_buf, CD_BUFLEN * 2 * sizeof(float), CD_FREQ); diff --git a/src/sound/snd_ac97_codec.c b/src/sound/snd_ac97_codec.c index 58422a288..51bc6bd2b 100644 --- a/src/sound/snd_ac97_codec.c +++ b/src/sound/snd_ac97_codec.c @@ -134,9 +134,12 @@ static const int32_t codec_attn[] = { // clang-format on }; -ac97_codec_t **ac97_codec = NULL, **ac97_modem_codec = NULL; -int ac97_codec_count = 0, ac97_modem_codec_count = 0, - ac97_codec_id = 0, ac97_modem_codec_id = 0; +ac97_codec_t **ac97_codec = NULL; +ac97_codec_t **ac97_modem_codec = NULL; +int ac97_codec_count = 0; +int ac97_modem_codec_count = 0; +int ac97_codec_id = 0; +int ac97_modem_codec_id = 0; uint16_t ac97_codec_readw(ac97_codec_t *dev, uint8_t reg) @@ -160,7 +163,8 @@ ac97_codec_writew(ac97_codec_t *dev, uint8_t reg, uint16_t val) ac97_codec_log("AC97 Codec %d: writew(%02X, %04X)\n", dev->codec_id, reg, val); reg &= 0x7e; - uint16_t i = 0, prev = dev->regs[reg >> 1]; + uint16_t i = 0; + uint16_t prev = dev->regs[reg >> 1]; int j; switch (reg) { @@ -450,7 +454,7 @@ void ac97_codec_reset(void *priv) { ac97_codec_t *dev = (ac97_codec_t *) priv; - uint16_t i, j; + uint16_t i; ac97_codec_log("AC97 Codec %d: reset()\n", dev->codec_id); @@ -498,7 +502,7 @@ ac97_codec_reset(void *priv) /* Set vendor-specific registers. */ if (dev->vendor_regs) { - for (j = 0; dev->vendor_regs[j].index; j++) { + for (uint16_t j = 0; dev->vendor_regs[j].index; j++) { i = (dev->vendor_regs[j].index >> 8) & 0x000f; if (i > 0) dev->vendor_reg_pages[(i << 3) | (dev->vendor_regs[j].index >> 1)] = dev->vendor_regs[j].value; @@ -523,7 +527,8 @@ ac97_codec_getattn(void *priv, uint8_t reg, int *l, int *r) *r = 0; } else { /* per-channel mute */ /* Determine attenuation value. */ - uint8_t l_val = val >> 8, r_val = val; + uint8_t l_val = val >> 8; + uint8_t r_val = val; if (reg <= 0x06) { /* 6-bit level */ *l = codec_attn[0x3f - (l_val & 0x3f)]; *r = codec_attn[0x3f - (r_val & 0x3f)]; @@ -594,9 +599,9 @@ ac97_codec_init(const device_t *info) /* Allocate vendor-specific register pages if required. */ if (dev->vendor_regs) { /* Get the highest vendor-specific register page number. */ - int i, j; + int i; dev->vendor_reg_page_max = 0; - for (j = 0; dev->vendor_regs[j].index; j++) { + for (uint16_t j = 0; dev->vendor_regs[j].index; j++) { i = (dev->vendor_regs[j].index >> 8) & 0x000f; if (i > dev->vendor_reg_page_max) dev->vendor_reg_page_max = i; diff --git a/src/sound/snd_ac97_via.c b/src/sound/snd_ac97_via.c index 6106ebb0b..81babc78b 100644 --- a/src/sound/snd_ac97_via.c +++ b/src/sound/snd_ac97_via.c @@ -284,7 +284,8 @@ void ac97_via_sgd_write(uint16_t addr, uint8_t val, void *priv) { ac97_via_t *dev = (ac97_via_t *) priv; - uint8_t modem = (addr & 0xff00) == dev->modem_sgd_base, i; + uint8_t modem = (addr & 0xff00) == dev->modem_sgd_base; + uint8_t i; ac97_codec_t *codec; addr &= 0xff; @@ -496,8 +497,8 @@ ac97_via_remap_modem_codec(void *priv, uint16_t new_io_base, uint8_t enable) static void ac97_via_update_stereo(ac97_via_t *dev, ac97_via_sgd_t *sgd) { - int32_t l = (((sgd->out_l * sgd->vol_l) >> 15) * dev->master_vol_l) >> 15, - r = (((sgd->out_r * sgd->vol_r) >> 15) * dev->master_vol_r) >> 15; + int32_t l = (((sgd->out_l * sgd->vol_l) >> 15) * dev->master_vol_l) >> 15; + int32_t r = (((sgd->out_r * sgd->vol_r) >> 15) * dev->master_vol_r) >> 15; if (l < -32768) l = -32768; @@ -728,7 +729,8 @@ static void ac97_via_filter_cd_audio(int channel, double *buffer, void *priv) { ac97_via_t *dev = (ac97_via_t *) priv; - double c, volume = channel ? dev->cd_vol_r : dev->cd_vol_l; + double c; + double volume = channel ? dev->cd_vol_r : dev->cd_vol_l; c = ((*buffer) * volume) / 65536.0; *buffer = c; diff --git a/src/sound/snd_ad1848.c b/src/sound/snd_ad1848.c index f9bc337c1..284836704 100644 --- a/src/sound/snd_ad1848.c +++ b/src/sound/snd_ad1848.c @@ -48,9 +48,9 @@ ad1848_setirq(ad1848_t *ad1848, int irq) } void -ad1848_setdma(ad1848_t *ad1848, int dma) +ad1848_setdma(ad1848_t *ad1848, int newdma) { - ad1848->dma = dma; + ad1848->dma = newdma; } void @@ -209,7 +209,8 @@ void ad1848_write(uint16_t addr, uint8_t val, void *priv) { ad1848_t *ad1848 = (ad1848_t *) priv; - uint8_t temp = 0, updatefreq = 0; + uint8_t temp = 0; + uint8_t updatefreq = 0; switch (addr & 3) { case 0: /* Index */ diff --git a/src/sound/snd_adlib.c b/src/sound/snd_adlib.c index 2f69bbf9d..d9498d567 100644 --- a/src/sound/snd_adlib.c +++ b/src/sound/snd_adlib.c @@ -42,11 +42,10 @@ static void adlib_get_buffer(int32_t *buffer, int len, void *p) { adlib_t *adlib = (adlib_t *) p; - int c; int32_t *opl_buf = adlib->opl.update(adlib->opl.priv); - for (c = 0; c < len * 2; c++) + for (int c = 0; c < len * 2; c++) buffer[c] += (int32_t) opl_buf[c]; adlib->opl.reset_buffer(adlib->opl.priv); diff --git a/src/sound/snd_adlibgold.c b/src/sound/snd_adlibgold.c index 5c95194a3..c1b2c3867 100644 --- a/src/sound/snd_adlibgold.c +++ b/src/sound/snd_adlibgold.c @@ -345,7 +345,7 @@ adgold_write(uint16_t addr, uint8_t val, void *p) adgold_update_irq_status(adgold); dma_set_drq(adgold->dma, 0); } - if ((val & 0x01)) /*Start playback*/ + if (val & 0x01) /*Start playback*/ { if (!(adgold->adgold_mma_regs[0][0x9] & 1)) adgold->adgold_mma.voice_count[0] = adgold->adgold_mma.voice_latch[0]; @@ -468,7 +468,7 @@ adgold_write(uint16_t addr, uint8_t val, void *p) adgold_update_irq_status(adgold); dma_set_drq(adgold->dma, 0); } - if ((val & 0x01)) /*Start playback*/ + if (val & 0x01) /*Start playback*/ { if (!(adgold->adgold_mma_regs[1][0x9] & 1)) adgold->adgold_mma.voice_count[1] = adgold->adgold_mma.voice_latch[1]; @@ -782,7 +782,9 @@ adgold_get_buffer(int32_t *buffer, int len, void *p) } for (c = 0; c < len * 2; c += 2) { - int32_t temp, lowpass, highpass; + int32_t temp; + int32_t lowpass; + int32_t highpass; /*Output is deliberately halved to avoid clipping*/ temp = ((int32_t) adgold_buffer[c] * adgold->vol_l) >> 17; @@ -862,14 +864,13 @@ static int adgold_input_sysex(void *p, uint8_t *buffer, uint32_t len, int abort) { adgold_t *adgold = (adgold_t *) p; - uint32_t i; if (abort) { adgold->sysex = 0; return 0; } adgold->sysex = 1; - for (i = 0; i < len; i++) { + for (uint32_t i = 0; i < len; i++) { if (adgold->midi_r == adgold->midi_w) return (len - i); adgold->midi_queue[adgold->midi_w++] = buffer[i]; diff --git a/src/sound/snd_audiopci.c b/src/sound/snd_audiopci.c index 47812d84a..6b9d8d792 100644 --- a/src/sound/snd_audiopci.c +++ b/src/sound/snd_audiopci.c @@ -290,9 +290,7 @@ es1371_write_fifo(es1371_t *dev, uint8_t val) static void es1371_reset_fifo(es1371_t *dev) { - int i; - - for (i = 0; i < 8; i++) + for (uint8_t i = 0; i < 8; i++) dev->uart_fifo[i] = 0x00000000; dev->read_fifo_pos = dev->write_fifo_pos = 0; @@ -304,7 +302,6 @@ static void es1371_reset(void *p) { es1371_t *dev = (es1371_t *) p; - int i; nmi = 0; @@ -392,7 +389,7 @@ es1371_reset(void *p) /* UART FIFO Register, Address 30H, 34H, 38H, 3CH, Memory Page 1110b, 1111b Addressable as longword only */ - for (i = 0; i < 8; i++) + for (uint8_t i = 0; i < 8; i++) dev->uart_fifo[i] = 0xffff0000; /* Reset the UART TX. */ @@ -1760,7 +1757,8 @@ low_fir_es1371(int dac_nr, int i, float NewSample) static float x[2][2][128]; // input samples static int x_pos[2] = { 0, 0 }; float out = 0.0; - int read_pos, n_coef; + int read_pos; + int n_coef; int pos = x_pos[dac_nr]; x[dac_nr][i][pos] = NewSample; @@ -1788,8 +1786,8 @@ low_fir_es1371(int dac_nr, int i, float NewSample) static void es1371_next_sample_filtered(es1371_t *dev, int dac_nr, int out_idx) { - int out_l, out_r; - int c; + int out_l; + int out_r; if ((dev->dac[dac_nr].buffer_pos - dev->dac[dac_nr].buffer_pos_end) >= 0) es1371_fetch(dev, dac_nr); @@ -1800,7 +1798,7 @@ es1371_next_sample_filtered(es1371_t *dev, int dac_nr, int out_idx) dev->dac[dac_nr].filtered_l[out_idx] = (int) low_fir_es1371(dac_nr, 0, (float) out_l); dev->dac[dac_nr].filtered_r[out_idx] = (int) low_fir_es1371(dac_nr, 1, (float) out_r); - for (c = 1; c < 16; c++) { + for (uint8_t c = 1; c < 16; c++) { dev->dac[dac_nr].filtered_l[out_idx + c] = (int) low_fir_es1371(dac_nr, 0, 0); dev->dac[dac_nr].filtered_r[out_idx + c] = (int) low_fir_es1371(dac_nr, 1, 0); } @@ -1811,7 +1809,8 @@ es1371_next_sample_filtered(es1371_t *dev, int dac_nr, int out_idx) static void es1371_update(es1371_t *dev) { - int32_t l, r; + int32_t l; + int32_t r; l = (dev->dac[0].out_l * dev->dac[0].vol_l) >> 12; l += ((dev->dac[1].out_l * dev->dac[1].vol_l) >> 12); @@ -1843,7 +1842,12 @@ static void es1371_poll(void *p) { es1371_t *dev = (es1371_t *) p; - int frac, idx, samp1_l, samp1_r, samp2_l, samp2_r; + int frac; + int idx; + int samp1_l; + int samp1_r; + int samp2_l; + int samp2_r; timer_advance_u64(&dev->dac[1].timer, dev->dac[1].latch); @@ -1906,11 +1910,10 @@ static void es1371_get_buffer(int32_t *buffer, int len, void *p) { es1371_t *dev = (es1371_t *) p; - int c; es1371_update(dev); - for (c = 0; c < len * 2; c++) + for (int c = 0; c < len * 2; c++) buffer[c] += (dev->buffer[c] / 2); dev->pos = 0; diff --git a/src/sound/snd_azt2316a.c b/src/sound/snd_azt2316a.c index ee46ab01b..ee5c982f4 100644 --- a/src/sound/snd_azt2316a.c +++ b/src/sound/snd_azt2316a.c @@ -250,14 +250,14 @@ azt1605_create_config_word(void *p) case 0x240: temp += 1 << 0; break; - /* - case 0x260: // TODO: INVALID? - temp += 2 << 0; - break; - case 0x280: // TODO: INVALID? - temp += 3 << 0; - break; - */ +#if 0 + case 0x260: // TODO: INVALID? + temp += 2 << 0; + break; + case 0x280: // TODO: INVALID? + temp += 3 << 0; + break; +#endif } switch (azt2316a->cur_irq) { @@ -414,14 +414,14 @@ azt2316a_create_config_word(void *p) case 0x240: temp += 1 << 0; break; - /* - case 0x260: // TODO: INVALID? - temp += 2 << 0; - break; - case 0x280: // TODO: INVALID? - temp += 3 << 0; - break; - */ +#if 0 + case 0x260: // TODO: INVALID? + temp += 2 << 0; + break; + case 0x280: // TODO: INVALID? + temp += 3 << 0; + break; +#endif } switch (azt2316a->cur_irq) { @@ -440,13 +440,13 @@ azt2316a_create_config_word(void *p) } switch (azt2316a->cur_dma) { - /* - // TODO: INVALID? - case 0xFF: // -1 - // do nothing - //temp += 0 << 6; - break; - */ +#if 0 + // TODO: INVALID? + case 0xFF: // -1 + // do nothing + //temp += 0 << 6; + break; +#endif case 0: temp += 1 << 6; break; @@ -541,11 +541,11 @@ azt2316a_create_config_word(void *p) case 0: temp += 1 << 20; break; - /* - case 1: // TODO: INVALID? - temp += 2 << 20; - break; - */ +#if 0 + case 1: // TODO: INVALID? + temp += 2 << 20; + break; +#endif case 3: temp += 3 << 20; break; @@ -665,12 +665,12 @@ azt1605_config_write(uint16_t addr, uint8_t val, void *p) azt2316a->cur_addr = 0x220; else if (temp == 1) azt2316a->cur_addr = 0x240; - /* - else if (temp == 2) - azt2316a->cur_addr = 0x260; // TODO: INVALID - else if (temp == 3) - azt2316a->cur_addr = 0x280; // TODO: INVALID - */ +#if 0 + else if (temp == 2) + azt2316a->cur_addr = 0x260; // TODO: INVALID + else if (temp == 3) + azt2316a->cur_addr = 0x280; // TODO: INVALID +#endif if (val & 0x4) azt2316a->cur_mpu401_addr = 0x330; else @@ -866,11 +866,10 @@ static void azt2316a_get_buffer(int32_t *buffer, int len, void *p) { azt2316a_t *azt2316a = (azt2316a_t *) p; - int c; /* wss part */ ad1848_update(&azt2316a->ad1848); - for (c = 0; c < len * 2; c++) + for (int c = 0; c < len * 2; c++) buffer[c] += (azt2316a->ad1848.buffer[c] / 2); azt2316a->ad1848.pos = 0; @@ -1189,7 +1188,6 @@ azt_close(void *p) char *fn = NULL; FILE *f; uint8_t checksum = 0x7f; - int i; if (azt2316a->type == SB_SUBTYPE_CLONE_AZT1605_0X0C) { fn = "azt1605.nvr"; @@ -1200,7 +1198,7 @@ azt_close(void *p) /* always save to eeprom (recover from bad values) */ f = nvr_fopen(fn, "wb"); if (f) { - for (i = 0; i < AZTECH_EEPROM_SIZE; i++) + for (uint8_t i = 0; i < AZTECH_EEPROM_SIZE; i++) checksum += azt2316a->sb->dsp.azt_eeprom[i]; fwrite(azt2316a->sb->dsp.azt_eeprom, AZTECH_EEPROM_SIZE, 1, f); diff --git a/src/sound/snd_cmi8x38.c b/src/sound/snd_cmi8x38.c index d4a54880b..cd0021148 100644 --- a/src/sound/snd_cmi8x38.c +++ b/src/sound/snd_cmi8x38.c @@ -181,8 +181,8 @@ cmi8x38_sb_dma_post(cmi8x38_t *dev, uint16_t *addr, uint16_t *count, int channel /* Check TDMA position update interrupt if enabled. */ if (dev->io_regs[0x0e] & 0x04) { /* Nothing uses this; I assume it goes by the SB DSP sample counter (forwards instead of backwards). */ - int origlength = (channel & 4) ? dev->sb->dsp.sb_16_origlength : dev->sb->dsp.sb_8_origlength, - length = (channel & 4) ? dev->sb->dsp.sb_16_length : dev->sb->dsp.sb_8_length; + int origlength = (channel & 4) ? dev->sb->dsp.sb_16_origlength : dev->sb->dsp.sb_8_origlength; + int length = (channel & 4) ? dev->sb->dsp.sb_16_length : dev->sb->dsp.sb_8_length; if ((origlength != length) && (((origlength - length) & dev->tdma_irq_mask) == 0)) { /* skip initial sample */ /* Fire the interrupt. */ dev->io_regs[0x11] |= (channel & 4) ? 0x40 : 0x80; @@ -225,8 +225,8 @@ cmi8x38_sb_dma_readb(void *priv) return DMA_NODATA; /* Get 16-bit address and count registers. */ - uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c], - *count = (uint16_t *) &dev->io_regs[0x1e]; + uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c]; + uint16_t *count = (uint16_t *) &dev->io_regs[0x1e]; /* Read data. */ int ret = mem_readb_phys((dma[channel].ab & 0xffff0000) | *addr); @@ -248,8 +248,8 @@ cmi8x38_sb_dma_readw(void *priv) return DMA_NODATA; /* Get 16-bit address and count registers. */ - uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c], - *count = (uint16_t *) &dev->io_regs[0x1e]; + uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c]; + uint16_t *count = (uint16_t *) &dev->io_regs[0x1e]; /* Read data. */ int ret = mem_readw_phys((dma[channel].ab & 0xfffe0000) | ((*addr) << 1)); @@ -271,8 +271,8 @@ cmi8x38_sb_dma_writeb(void *priv, uint8_t val) return 1; /* Get 16-bit address and count registers. */ - uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c], - *count = (uint16_t *) &dev->io_regs[0x1e]; + uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c]; + uint16_t *count = (uint16_t *) &dev->io_regs[0x1e]; /* Write data. */ mem_writeb_phys((dma[channel].ab & 0xffff0000) | *addr, val); @@ -294,8 +294,8 @@ cmi8x38_sb_dma_writew(void *priv, uint16_t val) return 1; /* Get 16-bit address and count registers. */ - uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c], - *count = (uint16_t *) &dev->io_regs[0x1e]; + uint16_t *addr = (uint16_t *) &dev->io_regs[0x1c]; + uint16_t *count = (uint16_t *) &dev->io_regs[0x1e]; /* Write data. */ mem_writew_phys((dma[channel].ab & 0xfffe0000) | ((*addr) << 1), val); @@ -333,8 +333,8 @@ cmi8x38_dma_write(uint16_t addr, uint8_t val, void *priv) } /* Write base address and count. */ - uint16_t *daddr = (uint16_t *) &dev->io_regs[0x1c], - *count = (uint16_t *) &dev->io_regs[0x1e]; + uint16_t *daddr = (uint16_t *) &dev->io_regs[0x1c]; + uint16_t *count = (uint16_t *) &dev->io_regs[0x1e]; *daddr = dev->tdma_base_addr = dma[channel].ab >> !!(channel & 4); *count = dev->tdma_base_count = dma[channel].cb; cmi8x38_log("CMI8x38: Starting TDMA on DMA %d with addr %08X count %04X\n", @@ -556,7 +556,8 @@ cmi8x38_remap_traps(cmi8x38_t *dev) static void cmi8x38_start_playback(cmi8x38_t *dev) { - uint8_t i, val = dev->io_regs[0x00]; + uint8_t i; + uint8_t val = dev->io_regs[0x00]; i = !(val & 0x01); if (!dev->dma[0].playback_enabled && i) @@ -990,8 +991,8 @@ static void cmi8x38_update(cmi8x38_t *dev, cmi8x38_dma_t *dma) { sb_ct1745_mixer_t *mixer = &dev->sb->mixer_sb16; - int32_t l = (dma->out_fl * mixer->voice_l) * mixer->master_l, - r = (dma->out_fr * mixer->voice_r) * mixer->master_r; + int32_t l = (dma->out_fl * mixer->voice_l) * mixer->master_l; + int32_t r = (dma->out_fr * mixer->voice_r) * mixer->master_r; for (; dma->pos < sound_pos_global; dma->pos++) { dma->buffer[dma->pos * 2] = l; @@ -1083,7 +1084,10 @@ cmi8x38_poll(void *priv) { cmi8x38_dma_t *dma = (cmi8x38_dma_t *) priv; cmi8x38_t *dev = dma->dev; - int16_t *out_l, *out_r, *out_ol, *out_or; /* o = opposite */ + int16_t *out_l; + int16_t *out_r; + int16_t *out_ol; + int16_t *out_or; /* o = opposite */ /* Schedule next run if playback is enabled. */ if (dma->playback_enabled) @@ -1245,8 +1249,8 @@ cmi8x38_speed_changed(void *priv) { cmi8x38_t *dev = (cmi8x38_t *) priv; double freq; - uint8_t dsr = dev->io_regs[0x09], freqreg = dev->io_regs[0x05] >> 2, - chfmt45 = dev->io_regs[0x0b], chfmt6 = dev->io_regs[0x15]; + uint8_t dsr = dev->io_regs[0x09], freqreg = dev->io_regs[0x05] >> 2; + uint8_t chfmt45 = dev->io_regs[0x0b], chfmt6 = dev->io_regs[0x15]; #ifdef ENABLE_CMI8X38_LOG char buf[256]; diff --git a/src/sound/snd_cms.c b/src/sound/snd_cms.c index 1b55765fa..b451dea30 100644 --- a/src/sound/snd_cms.c +++ b/src/sound/snd_cms.c @@ -15,8 +15,10 @@ void cms_update(cms_t *cms) { for (; cms->pos < sound_pos_global; cms->pos++) { - int c, d; - int16_t out_l = 0, out_r = 0; + int c; + int d; + int16_t out_l = 0; + int16_t out_r = 0; for (c = 0; c < 4; c++) { switch (cms->noisetype[c >> 1][c & 1]) { @@ -65,7 +67,7 @@ cms_update(cms_t *cms) } } } - cms->buffer[(cms->pos << 1)] = out_l; + cms->buffer[cms->pos << 1] = out_l; cms->buffer[(cms->pos << 1) + 1] = out_r; } } @@ -75,11 +77,9 @@ cms_get_buffer(int32_t *buffer, int len, void *p) { cms_t *cms = (cms_t *) p; - int c; - cms_update(cms); - for (c = 0; c < len * 2; c++) + for (int c = 0; c < len * 2; c++) buffer[c] += cms->buffer[c]; cms->pos = 0; diff --git a/src/sound/snd_cs423x.c b/src/sound/snd_cs423x.c index 0a98d9886..58b217fbd 100644 --- a/src/sound/snd_cs423x.c +++ b/src/sound/snd_cs423x.c @@ -469,9 +469,9 @@ cs423x_slam_enable(cs423x_t *dev, uint8_t enable) static void cs423x_ctxswitch_write(uint16_t addr, uint8_t val, void *priv) { - cs423x_t *dev = (cs423x_t *) priv; - uint8_t ctx = (dev->regs[7] & 0x80), - enable_opl = (dev->ad1848.xregs[4] & 0x10) && !(dev->indirect_regs[2] & 0x85); + cs423x_t *dev = (cs423x_t *) priv; + uint8_t ctx = (dev->regs[7] & 0x80); + uint8_t enable_opl = (dev->ad1848.xregs[4] & 0x10) && !(dev->indirect_regs[2] & 0x85); /* Check if a context switch (WSS=1 <-> SBPro=0) occurred through the address being written. */ if ((dev->regs[7] & 0x80) ? ((addr & 0xfff0) == dev->sb_base) : ((addr & 0xfffc) == dev->wss_base)) { @@ -504,7 +504,7 @@ static void cs423x_get_buffer(int32_t *buffer, int len, void *priv) { cs423x_t *dev = (cs423x_t *) priv; - int c, opl_wss = dev->opl_wss; + int opl_wss = dev->opl_wss; int32_t *opl_buf = NULL; /* Output audio from the WSS codec, and also the OPL if we're in charge of it. */ @@ -514,7 +514,7 @@ cs423x_get_buffer(int32_t *buffer, int len, void *priv) /* Don't output anything if the analog section is powered down. */ if (!(dev->indirect_regs[2] & 0xa4)) { - for (c = 0; c < len * 2; c += 2) { + for (int c = 0; c < len * 2; c += 2) { if (opl_wss) { buffer[c] += (opl_buf[c] * dev->ad1848.fm_vol_l) >> 16; buffer[c + 1] += (opl_buf[c + 1] * dev->ad1848.fm_vol_r) >> 16; diff --git a/src/sound/snd_emu8k.c b/src/sound/snd_emu8k.c index b58def3a9..99a703d14 100644 --- a/src/sound/snd_emu8k.c +++ b/src/sound/snd_emu8k.c @@ -946,8 +946,7 @@ emu8k_outw(uint16_t addr, uint16_t val, void *p) break; case 0x5: { - int c; - for (c = 0; c < 8; c++) { + for (uint8_t c = 0; c < 8; c++) { emu8k->reverb_engine.allpass[c].feedback = (val & 0xFF) / ((float) 0xFF); } } @@ -1216,8 +1215,7 @@ emu8k_outw(uint16_t addr, uint16_t val, void *p) break; case 0x1d: { - int c; - for (c = 0; c < 6; c++) { + for (uint8_t c = 0; c < 6; c++) { emu8k->reverb_engine.reflections[c].damp1 = (val & 0xFF) / 255.0; emu8k->reverb_engine.reflections[c].damp2 = (0xFF - (val & 0xFF)) / 255.0; emu8k->reverb_engine.reflections[c].filterstore = 0; @@ -1468,8 +1466,7 @@ emu8k_outb(uint16_t addr, uint8_t val, void *p) void emu8k_work_chorus(int32_t *inbuf, int32_t *outbuf, emu8k_chorus_eng_t *engine, int count) { - int pos; - for (pos = 0; pos < count; pos++) { + for (int pos = 0; pos < count; pos++) { double lfo_inter1 = chortable[engine->lfo_pos.int_address]; // double lfo_inter2 = chortable[(engine->lfo_pos.int_address+1)&0xFFFF]; @@ -1595,7 +1592,10 @@ emu8k_work_reverb(int32_t *inbuf, int32_t *outbuf, emu8k_reverb_eng_t *engine, i int pos; if (engine->link_return_type) { for (pos = 0; pos < count; pos++) { - int32_t dat1, dat2, in, in2; + int32_t dat1; + int32_t dat2; + int32_t in; + int32_t in2; in = emu8k_reverb_damper_work(&engine->damper, inbuf[pos]); in2 = (in * engine->refl_in_amp) >> 8; dat2 = emu8k_reverb_comb_work(&engine->reflections[0], in2); @@ -1613,7 +1613,10 @@ emu8k_work_reverb(int32_t *inbuf, int32_t *outbuf, emu8k_reverb_eng_t *engine, i } } else { for (pos = 0; pos < count; pos++) { - int32_t dat1, dat2, in, in2; + int32_t dat1; + int32_t dat2; + int32_t in; + int32_t in2; in = emu8k_reverb_damper_work(&engine->damper, inbuf[pos]); in2 = (in * engine->refl_in_amp) >> 8; dat1 = emu8k_reverb_comb_work(&engine->reflections[0], in2); @@ -1666,7 +1669,6 @@ emu8k_update(emu8k_t *emu8k) int32_t *buf; emu8k_voice_t *emu_voice; int pos; - int c; /* Clean the buffers since we will accumulate into them. */ buf = &emu8k->buffer[emu8k->pos * 2]; @@ -1675,7 +1677,7 @@ emu8k_update(emu8k_t *emu8k) memset(&emu8k->reverb_in_buffer[emu8k->pos], 0, (new_pos - emu8k->pos) * sizeof(emu8k->reverb_in_buffer[0])); /* Voices section */ - for (c = 0; c < 32; c++) { + for (uint8_t c = 0; c < 32; c++) { emu_voice = &emu8k->voice[c]; buf = &emu8k->buffer[emu8k->pos * 2]; @@ -2205,8 +2207,7 @@ emu8k_init(emu8k_t *emu8k, uint16_t emu_addr, int onboard_ram) } /* Filter coefficients tables. Note: Values are multiplied by *16777216 to left shift 24 bits. (i.e. 8.24 fixed point) */ - int qidx; - for (qidx = 0; qidx < 16; qidx++) { + for (uint8_t qidx = 0; qidx < 16; qidx++) { out = 125.0; /* Start at 125Hz */ for (c = 0; c < 256; c++) { #ifdef FILTER_INITIAL diff --git a/src/sound/snd_gus.c b/src/sound/snd_gus.c index 1557f97ba..9dfd7269b 100644 --- a/src/sound/snd_gus.c +++ b/src/sound/snd_gus.c @@ -202,7 +202,8 @@ void writegus(uint16_t addr, uint8_t val, void *p) { gus_t *gus = (gus_t *) p; - int c, d; + int c; + int d; int old; uint16_t port; #if defined(DEV_BRANCH) && defined(USE_GUSMAX) @@ -925,7 +926,6 @@ gus_poll_wave(void *p) { gus_t *gus = (gus_t *) p; uint32_t addr; - int d; int16_t v; int32_t vl; int update_irqs = 0; @@ -938,7 +938,7 @@ gus_poll_wave(void *p) if ((gus->reset & 3) != 3) return; - for (d = 0; d < 32; d++) { + for (uint8_t d = 0; d < 32; d++) { if (!(gus->ctrl[d] & 3)) { if (gus->ctrl[d] & 4) { addr = gus->cur[d] >> 9; @@ -1058,7 +1058,6 @@ static void gus_get_buffer(int32_t *buffer, int len, void *p) { gus_t *gus = (gus_t *) p; - int c; #if defined(DEV_BRANCH) && defined(USE_GUSMAX) if (gus->max_ctrl) @@ -1066,7 +1065,7 @@ gus_get_buffer(int32_t *buffer, int len, void *p) #endif gus_update(gus); - for (c = 0; c < len * 2; c++) { + for (int c = 0; c < len * 2; c++) { #if defined(DEV_BRANCH) && defined(USE_GUSMAX) if (gus->max_ctrl) buffer[c] += (int32_t) (gus->ad1848.buffer[c] / 2); @@ -1105,14 +1104,13 @@ static int gus_input_sysex(void *p, uint8_t *buffer, uint32_t len, int abort) { gus_t *gus = (gus_t *) p; - uint32_t i; if (abort) { gus->sysex = 0; return 0; } gus->sysex = 1; - for (i = 0; i < len; i++) { + for (uint32_t i = 0; i < len; i++) { if (gus->midi_r == gus->midi_w) return (len - i); gus->midi_queue[gus->midi_w++] = buffer[i]; diff --git a/src/sound/snd_lpt_dac.c b/src/sound/snd_lpt_dac.c index f3e679a55..c0712d8be 100644 --- a/src/sound/snd_lpt_dac.c +++ b/src/sound/snd_lpt_dac.c @@ -67,11 +67,10 @@ static void dac_get_buffer(int32_t *buffer, int len, void *p) { lpt_dac_t *lpt_dac = (lpt_dac_t *) p; - int c; dac_update(lpt_dac); - for (c = 0; c < len; c++) { + for (int c = 0; c < len; c++) { buffer[c * 2] += dac_iir(0, lpt_dac->buffer[0][c]); buffer[c * 2 + 1] += dac_iir(1, lpt_dac->buffer[1][c]); } diff --git a/src/sound/snd_lpt_dss.c b/src/sound/snd_lpt_dss.c index 7990a2a23..9ae2ffdbe 100644 --- a/src/sound/snd_lpt_dss.c +++ b/src/sound/snd_lpt_dss.c @@ -77,13 +77,12 @@ static void dss_get_buffer(int32_t *buffer, int len, void *p) { dss_t *dss = (dss_t *) p; - int c; int16_t val; float fval; dss_update(dss); - for (c = 0; c < len * 2; c += 2) { + for (int c = 0; c < len * 2; c += 2) { fval = dss_iir((float) dss->buffer[c >> 1]); val = (float) fval; diff --git a/src/sound/snd_mpu401.c b/src/sound/snd_mpu401.c index 328c3c688..0758393cc 100644 --- a/src/sound/snd_mpu401.c +++ b/src/sound/snd_mpu401.c @@ -76,7 +76,8 @@ mpu401_log(const char *fmt, ...) static void MPU401_ReCalcClock(mpu_t *mpu) { - int32_t maxtempo = 240, mintempo = 16; + int32_t mintempo = 16; + int32_t maxtempo = 240; int32_t freq; if (mpu->clock.timebase < 72) { @@ -360,7 +361,10 @@ MPU401_ResetDone(void *priv) static void MPU401_WriteCommand(mpu_t *mpu, uint8_t val) { - uint8_t i, j, was_uart, recmsg[3]; + uint8_t i; + uint8_t j; + uint8_t was_uart; + uint8_t recmsg[3]; if (mpu->state.reset) mpu->state.cmd_pending = val + 1; @@ -685,8 +689,8 @@ MPU401_WriteCommand(mpu_t *mpu, uint8_t val) static void MPU401_WriteData(mpu_t *mpu, uint8_t val) { - static int length, cnt; - uint8_t i; + static int length; + static int cnt; #ifdef DOSBOX_CODE if (mpu->mode == M_UART) { @@ -740,7 +744,7 @@ MPU401_WriteData(mpu_t *mpu, uint8_t val) mpu->state.command_byte = 0; if (!val) val = 64; - for (i = 0; i < 4; i++) + for (uint8_t i = 0; i < 4; i++) mpu->clock.cth_rate[i] = (val >> 2) + cth_data[(val & 3) * 4 + i]; mpu->clock.cth_mode = 0; return; @@ -973,9 +977,12 @@ MPU401_WriteData(mpu_t *mpu, uint8_t val) static void MPU401_IntelligentOut(mpu_t *mpu, uint8_t track) { - uint8_t chan, chrefnum, key, msg; - int send, retrigger; - uint8_t i; + uint8_t chan; + uint8_t chrefnum; + uint8_t key; + uint8_t msg; + int send; + int retrigger; switch (mpu->playbuf[track].type) { case T_OVERFLOW: @@ -1022,7 +1029,7 @@ MPU401_IntelligentOut(mpu_t *mpu, uint8_t track) midi_raw_out_byte(0); } if (send) { - for (i = 0; i < mpu->playbuf[track].length; i++) + for (uint8_t i = 0; i < mpu->playbuf[track].length; i++) midi_raw_out_byte(mpu->playbuf[track].value[i]); } break; @@ -1265,14 +1272,13 @@ mpu401_read(uint16_t addr, void *priv) } /* mpu401_log("MPU401 Read Port %04X, ret %x\n", addr, ret); */ - return (ret); + return ret; } static void MPU401_Event(void *priv) { mpu_t *mpu = (mpu_t *) priv; - uint8_t i; int max_meascnt; mpu401_log("MPU-401 event callback\n"); @@ -1293,7 +1299,7 @@ MPU401_Event(void *priv) goto next_event; if (mpu->state.playing) { - for (i = 0; i < 8; i++) { + for (uint8_t i = 0; i < 8; i++) { /* Decrease counters. */ if (mpu->state.amask & (1 << i)) { mpu->playbuf[i].counter--; @@ -1356,17 +1362,14 @@ next_event: static void MPU401_NotesOff(mpu_t *mpu, int i) { - int j; - uint8_t key; - if (mpu->filter.allnotesoff_out && !(mpu->inputref[i].on && (mpu->inputref[i].key[0] | mpu->inputref[i].key[1] | mpu->inputref[i].key[2] | mpu->inputref[i].key[3]))) { - for (j = 0; j < 4; j++) + for (uint8_t j = 0; j < 4; j++) mpu->chanref[mpu->ch_toref[i]].key[j] = 0; midi_raw_out_byte(0xb0 | i); midi_raw_out_byte(123); midi_raw_out_byte(0); } else if (mpu->chanref[mpu->ch_toref[i]].on) { - for (key = 0; key < 128; key++) { + for (uint8_t key = 0; key < 128; key++) { if ((mpu->chanref[mpu->ch_toref[i]].M_GETKEY) && !(mpu->inputref[i].on && (mpu->inputref[i].M_GETKEY))) { midi_raw_out_byte(0x80 | i); midi_raw_out_byte(key); @@ -1437,12 +1440,17 @@ void MPU401_InputMsg(void *p, uint8_t *msg, uint32_t len) { mpu_t *mpu = (mpu_t *) p; - int i, tick; + int i; + int tick; static uint8_t old_msg = 0; uint8_t key; - uint8_t recdata[2], recmsg[4]; - int send = 1, send_thru = 0; - int retrigger_thru = 0, chan, chrefnum; + uint8_t recdata[2]; + uint8_t recmsg[4]; + int send = 1; + int send_thru = 0; + int retrigger_thru = 0; + int chan; + int chrefnum; /* Abort if sysex transfer is in progress. */ if (!mpu->state.sysex_in_finished) { @@ -1794,7 +1802,7 @@ mpu401_standalone_init(const device_t *info) mpu401_init(mpu, base, irq, M_INTELLIGENT, device_get_config_int("receive_input")); - return (mpu); + return mpu; } static void diff --git a/src/sound/snd_opl_nuked.c b/src/sound/snd_opl_nuked.c index 35049836a..20b956b1d 100644 --- a/src/sound/snd_opl_nuked.c +++ b/src/sound/snd_opl_nuked.c @@ -514,7 +514,8 @@ env_calc(slot_t *slot) uint8_t rate_lo; uint8_t reg_rate = 0; uint8_t ks; - uint8_t eg_shift, shift; + uint8_t eg_shift; + uint8_t shift; uint16_t eg_rout; int16_t eg_inc; uint8_t eg_off; @@ -646,7 +647,8 @@ phase_generate(slot_t *slot) { uint16_t f_num; uint32_t basefreq; - uint8_t rm_xor, n_bit; + uint8_t rm_xor; + uint8_t n_bit; uint32_t noise; uint16_t phase; int8_t range; @@ -891,7 +893,9 @@ channel_setup_alg(chan_t *ch) static void channel_update_rhythm(nuked_t *dev, uint8_t data) { - chan_t *ch6, *ch7, *ch8; + chan_t *ch6; + chan_t *ch7; + chan_t *ch8; uint8_t chnum; dev->rhy = data & 0x3f; @@ -1076,9 +1080,8 @@ static void channel_set_4op(nuked_t *dev, uint8_t data) { uint8_t chnum; - uint8_t bit; - for (bit = 0; bit < 6; bit++) { + for (uint8_t bit = 0; bit < 6; bit++) { chnum = bit; if (bit >= 3) @@ -1104,7 +1107,7 @@ nuked_write_addr(void *priv, uint16_t port, uint8_t val) if ((port & 0x0002) && ((addr == 0x0005) || dev->newm)) addr |= 0x0100; - return (addr); + return addr; } void @@ -1195,7 +1198,8 @@ void nuked_write_reg_buffered(void *priv, uint16_t reg, uint8_t val) { nuked_t *dev = (nuked_t *) priv; - uint64_t time1, time2; + uint64_t time1; + uint64_t time2; if (dev->wrbuf[dev->wrbuf_last].reg & 0x0200) { nuked_write_reg(dev, dev->wrbuf[dev->wrbuf_last].reg & 0x01ff, @@ -1222,8 +1226,10 @@ void nuked_generate(void *priv, int32_t *bufp) { nuked_t *dev = (nuked_t *) priv; - int16_t accm, shift = 0; - uint8_t i, j; + int16_t accm; + int16_t shift = 0; + uint8_t i; + uint8_t j; bufp[1] = dev->mixbuff[1]; @@ -1352,9 +1358,7 @@ nuked_generate_resampled(nuked_t *dev, int32_t *bufp) void nuked_generate_stream(nuked_t *dev, int32_t *sndptr, uint32_t num) { - uint32_t i; - - for (i = 0; i < num; i++) { + for (uint32_t i = 0; i < num; i++) { nuked_generate_resampled(dev, sndptr); sndptr += 2; } diff --git a/src/sound/snd_opl_ymfm.cpp b/src/sound/snd_opl_ymfm.cpp index a446ab01e..8390bc1ed 100644 --- a/src/sound/snd_opl_ymfm.cpp +++ b/src/sound/snd_opl_ymfm.cpp @@ -240,7 +240,8 @@ public: private: ChipType m_chip; uint32_t m_clock; - double m_clock_us, m_subtract[2]; + double m_clock_us; + double m_subtract[2]; typename ChipType::output_data m_output; pc_timer_t m_timers[2]; int32_t m_duration_in_clocks[2]; // Needed for clock switches. @@ -323,7 +324,7 @@ ymfm_drv_close(void *priv) YMFMChipBase *drv = (YMFMChipBase *) priv; if (drv != NULL) - delete (drv); + delete drv; } static uint8_t diff --git a/src/sound/snd_optimc.c b/src/sound/snd_optimc.c index 5f0de7673..11aea6896 100644 --- a/src/sound/snd_optimc.c +++ b/src/sound/snd_optimc.c @@ -108,14 +108,13 @@ static void optimc_get_buffer(int32_t *buffer, int len, void *p) { optimc_t *optimc = (optimc_t *) p; - int c; if (optimc->regs[3] & 0x4) return; /* wss part */ ad1848_update(&optimc->ad1848); - for (c = 0; c < len * 2; c++) + for (int c = 0; c < len * 2; c++) buffer[c] += (optimc->ad1848.buffer[c] / 2); optimc->ad1848.pos = 0; diff --git a/src/sound/snd_pas16.c b/src/sound/snd_pas16.c index 856b29e93..10e6bd1c4 100644 --- a/src/sound/snd_pas16.c +++ b/src/sound/snd_pas16.c @@ -419,7 +419,6 @@ pas16_pit_out(uint16_t port, uint8_t val, void *p) if (!(val & 0x20)) { if (val & 2) pas16->pit.rl[0] = timer_get_remaining_u64(&pas16->pit.timer[0]) / PITCONST; - ; if (val & 4) pas16->pit.rl[1] = pas16->pit.c[1]; if (val & 8) @@ -700,12 +699,11 @@ void pas16_get_buffer(int32_t *buffer, int len, void *p) { pas16_t *pas16 = (pas16_t *) p; - int c; int32_t *opl_buf = pas16->opl.update(pas16->opl.priv); sb_dsp_update(&pas16->dsp); pas16_update(pas16); - for (c = 0; c < len * 2; c++) { + for (int c = 0; c < len * 2; c++) { buffer[c] += opl_buf[c]; buffer[c] += (int16_t) (sb_iir(0, c & 1, (double) pas16->dsp.buffer[c]) / 1.3) / 2; buffer[c] += (pas16->pcm_buffer[c & 1][c >> 1] / 2); diff --git a/src/sound/snd_ps1.c b/src/sound/snd_ps1.c index 471874d4d..d440af9d0 100644 --- a/src/sound/snd_ps1.c +++ b/src/sound/snd_ps1.c @@ -75,7 +75,7 @@ ps1snd_read(uint16_t port, void *priv) ret = 0; } - return (ret); + return ret; } static void @@ -144,11 +144,10 @@ static void ps1snd_get_buffer(int32_t *buffer, int len, void *priv) { ps1snd_t *ps1snd = (ps1snd_t *) priv; - int c; ps1snd_update(ps1snd); - for (c = 0; c < len * 2; c++) + for (int c = 0; c < len * 2; c++) buffer[c] += ps1snd->buffer[c >> 1]; ps1snd->pos = 0; @@ -175,7 +174,7 @@ ps1snd_init(const device_t *info) sound_add_handler(ps1snd_get_buffer, ps1snd); - return (ps1snd); + return ps1snd; } static void diff --git a/src/sound/snd_pssj.c b/src/sound/snd_pssj.c index 8b493e030..705a83517 100644 --- a/src/sound/snd_pssj.c +++ b/src/sound/snd_pssj.c @@ -168,11 +168,10 @@ static void pssj_get_buffer(int32_t *buffer, int len, void *p) { pssj_t *pssj = (pssj_t *) p; - int c; pssj_update(pssj); - for (c = 0; c < len * 2; c++) + for (int c = 0; c < len * 2; c++) buffer[c] += pssj->buffer[c >> 1]; pssj->pos = 0; diff --git a/src/sound/snd_resid.cc b/src/sound/snd_resid.cc index da46b7634..68d9fa71c 100644 --- a/src/sound/snd_resid.cc +++ b/src/sound/snd_resid.cc @@ -21,7 +21,6 @@ void * sid_init(void) { // psid_t *psid; - int c; sampling_method method = SAMPLE_INTERPOLATE; float cycles_per_sec = 14318180.0 / 16.0; @@ -40,7 +39,7 @@ sid_init(void) psid->sid->reset(); - for (c = 0; c < 32; c++) + for (uint8_t c = 0; c < 32; c++) psid->sid->write(c, 0); if (!psid->sid->set_sampling_parameters((float) cycles_per_sec, method, @@ -70,11 +69,10 @@ void sid_reset(UNUSED(void *p)) { // psid_t *psid = (psid_t *)p; - int c; psid->sid->reset(); - for (c = 0; c < 32; c++) + for (uint8_t c = 0; c < 32; c++) psid->sid->write(c, 0); } diff --git a/src/sound/snd_sb.c b/src/sound/snd_sb.c index 086b954bb..84f31f500 100644 --- a/src/sound/snd_sb.c +++ b/src/sound/snd_sb.c @@ -181,8 +181,9 @@ sb_get_buffer_sb2(int32_t *buffer, int len, void *p) { sb_t *sb = (sb_t *) p; sb_ct1335_mixer_t *mixer = &sb->mixer_sb2; - int c; - double out_mono = 0.0, out_l = 0.0, out_r = 0.0; + double out_mono = 0.0; + double out_l = 0.0; + double out_r = 0.0; int32_t *opl_buf = NULL; if (sb->opl_enabled) @@ -193,7 +194,7 @@ sb_get_buffer_sb2(int32_t *buffer, int len, void *p) if (sb->cms_enabled) cms_update(&sb->cms); - for (c = 0; c < len * 2; c += 2) { + for (int c = 0; c < len * 2; c += 2) { out_mono = 0.0; out_l = 0.0; out_r = 0.0; @@ -264,9 +265,10 @@ sb_get_buffer_sbpro(int32_t *buffer, int len, void *p) { sb_t *sb = (sb_t *) p; sb_ct1345_mixer_t *mixer = &sb->mixer_sbpro; - int c; - double out_l = 0.0, out_r = 0.0; - int32_t *opl_buf = NULL, *opl2_buf = NULL; + double out_l = 0.0; + double out_r = 0.0; + int32_t *opl_buf = NULL; + int32_t *opl2_buf = NULL; if (sb->opl_enabled) { if (sb->dsp.sb_type == SBPRO) { @@ -278,7 +280,7 @@ sb_get_buffer_sbpro(int32_t *buffer, int len, void *p) sb_dsp_update(&sb->dsp); - for (c = 0; c < len * 2; c += 2) { + for (int c = 0; c < len * 2; c += 2) { out_l = 0.0, out_r = 0.0; if (sb->opl_enabled) { @@ -345,10 +347,13 @@ sb_get_buffer_sb16_awe32(int32_t *buffer, int len, void *p) { sb_t *sb = (sb_t *) p; sb_ct1745_mixer_t *mixer = &sb->mixer_sb16; - int c, dsp_rec_pos = sb->dsp.record_pos_write; - int c_emu8k, c_record; - int32_t in_l, in_r; - double out_l = 0.0, out_r = 0.0; + int dsp_rec_pos = sb->dsp.record_pos_write; + int c_emu8k; + int c_record; + int32_t in_l; + int32_t in_r; + double out_l = 0.0; + double out_r = 0.0; double bass_treble; int32_t *opl_buf = NULL; @@ -360,8 +365,9 @@ sb_get_buffer_sb16_awe32(int32_t *buffer, int len, void *p) sb_dsp_update(&sb->dsp); - for (c = 0; c < len * 2; c += 2) { - out_l = 0.0, out_r = 0.0; + for (int c = 0; c < len * 2; c += 2) { + out_l = 0.0; + out_r = 0.0; if (sb->dsp.sb_type > SB16) c_emu8k = ((((c / 2) * FREQ_44100) / SOUND_FREQ) * 2); @@ -402,7 +408,7 @@ sb_get_buffer_sb16_awe32(int32_t *buffer, int len, void *p) if (mixer->bass_l > 8) out_l += (low_iir(0, 0, out_l) * bass_treble); else if (mixer->bass_l < 8) - out_l = ((out_l) *bass_treble + low_cut_iir(0, 0, out_l) * (1.0 - bass_treble)); + out_l = (out_l *bass_treble + low_cut_iir(0, 0, out_l) * (1.0 - bass_treble)); } if (mixer->bass_r != 8) { @@ -411,7 +417,7 @@ sb_get_buffer_sb16_awe32(int32_t *buffer, int len, void *p) if (mixer->bass_r > 8) out_r += (low_iir(0, 1, out_r) * bass_treble); else if (mixer->bass_r < 8) - out_r = ((out_r) *bass_treble + low_cut_iir(0, 1, out_r) * (1.0 - bass_treble)); + out_r = (out_r *bass_treble + low_cut_iir(0, 1, out_r) * (1.0 - bass_treble)); } if (mixer->treble_l != 8) { @@ -420,7 +426,7 @@ sb_get_buffer_sb16_awe32(int32_t *buffer, int len, void *p) if (mixer->treble_l > 8) out_l += (high_iir(0, 0, out_l) * bass_treble); else if (mixer->treble_l < 8) - out_l = ((out_l) *bass_treble + high_cut_iir(0, 0, out_l) * (1.0 - bass_treble)); + out_l = (out_l *bass_treble + high_cut_iir(0, 0, out_l) * (1.0 - bass_treble)); } if (mixer->treble_r != 8) { @@ -429,7 +435,7 @@ sb_get_buffer_sb16_awe32(int32_t *buffer, int len, void *p) if (mixer->treble_r > 8) out_r += (high_iir(0, 1, out_r) * bass_treble); else if (mixer->treble_r < 8) - out_r = ((out_l) *bass_treble + high_cut_iir(0, 1, out_r) * (1.0 - bass_treble)); + out_r = (out_l *bass_treble + high_cut_iir(0, 1, out_r) * (1.0 - bass_treble)); } if (sb->dsp.sb_enable_i) { @@ -662,7 +668,7 @@ sb_ct1345_mixer_write(uint16_t addr, uint8_t val, void *p) if (mixer->index == 0xe) sb_dsp_set_stereo(&sb->dsp, val & 2); - switch ((mixer->regs[0xc] & 6)) { + switch (mixer->regs[0xc] & 6) { case 2: mixer->input_selector = INPUT_CD_L | INPUT_CD_R; break; @@ -895,7 +901,8 @@ sb_ct1745_mixer_read(uint16_t addr, void *p) { sb_t *sb = (sb_t *) p; sb_ct1745_mixer_t *mixer = &sb->mixer_sb16; - uint8_t temp, ret = 0xff; + uint8_t temp; + uint8_t ret = 0xff; if (!(addr & 1)) ret = mixer->index; @@ -1218,8 +1225,10 @@ sb_16_reply_mca_read(int port, void *p) static void sb_16_reply_mca_write(int port, uint8_t val, void *p) { - uint16_t addr, mpu401_addr; - int low_dma, high_dma; + uint16_t addr; + uint16_t mpu401_addr; + int low_dma; + int high_dma; sb_t *sb = (sb_t *) p; if (port < 0x102) diff --git a/src/sound/snd_sb_dsp.c b/src/sound/snd_sb_dsp.c index e340c1482..5b9637a81 100644 --- a/src/sound/snd_sb_dsp.c +++ b/src/sound/snd_sb_dsp.c @@ -144,7 +144,8 @@ recalc_sb16_filter(int c, int playback_freq) { /* Cutoff frequency = playback / 2 */ int n; - double w, h; + double w; + double h; double fC = ((double) playback_freq) / (double) FREQ_96000; double gain; @@ -299,8 +300,6 @@ sb_dsp_reset(sb_dsp_t *dsp) void sb_doreset(sb_dsp_t *dsp) { - int c; - sb_dsp_reset(dsp); if (IS_AZTECH(dsp)) { @@ -315,7 +314,7 @@ sb_doreset(sb_dsp_t *dsp) dsp->sb_asp_mode = 0; dsp->sb_asp_ram_index = 0; - for (c = 0; c < 256; c++) + for (uint16_t c = 0; c < 256; c++) dsp->sb_asp_regs[c] = 0; dsp->sb_asp_regs[5] = 0x01; @@ -455,7 +454,8 @@ sb_dsp_setdma16(sb_dsp_t *dsp, int dma) void sb_exec_command(sb_dsp_t *dsp) { - int temp, c; + int temp; + int c; sb_dsp_log("sb_exec_command : SB command %02X\n", dsp->sb_command); @@ -1080,7 +1080,6 @@ int sb_dsp_input_sysex(void *p, uint8_t *buffer, uint32_t len, int abort) { sb_dsp_t *dsp = (sb_dsp_t *) p; - uint32_t i; if (!dsp->uart_irq && !dsp->midi_in_poll && (dsp->mpu != NULL)) return MPU401_InputSysex(dsp->mpu, buffer, len, abort); @@ -1092,7 +1091,7 @@ sb_dsp_input_sysex(void *p, uint8_t *buffer, uint32_t len, int abort) dsp->midi_in_sysex = 1; - for (i = 0; i < len; i++) { + for (uint32_t i = 0; i < len; i++) { if (dsp->sb_read_rp == dsp->sb_read_wp) { sb_dsp_log("Length sysex SB = %d\n", len - i); return (len - i); @@ -1196,7 +1195,8 @@ void pollsb(void *p) { sb_dsp_t *dsp = (sb_dsp_t *) p; - int tempi, ref; + int tempi; + int ref; int data[2]; timer_advance_u64(&dsp->output_timer, dsp->sblatcho); diff --git a/src/sound/snd_sn76489.c b/src/sound/snd_sn76489.c index a28e5b848..56b3538d8 100644 --- a/src/sound/snd_sn76489.c +++ b/src/sound/snd_sn76489.c @@ -24,10 +24,9 @@ void sn76489_update(sn76489_t *sn76489) { for (; sn76489->pos < sound_pos_global; sn76489->pos++) { - int c; int16_t result = 0; - for (c = 1; c < 4; c++) { + for (uint8_t c = 1; c < 4; c++) { if (sn76489->latch[c] > 256) result += (int16_t) (volslog[sn76489->vol[c]] * sn76489->stat[c]); else @@ -64,12 +63,10 @@ sn76489_get_buffer(int32_t *buffer, int len, void *p) { sn76489_t *sn76489 = (sn76489_t *) p; - int c; - sn76489_update(sn76489); if (!sn76489_mute) { - for (c = 0; c < len * 2; c++) + for (int c = 0; c < len * 2; c++) buffer[c] += sn76489->buffer[c >> 1]; } diff --git a/src/sound/snd_speaker.c b/src/sound/snd_speaker.c index 774e4d650..babc8aee1 100644 --- a/src/sound/snd_speaker.c +++ b/src/sound/snd_speaker.c @@ -27,10 +27,14 @@ #include <86box/snd_speaker.h> #include <86box/sound.h> -int speaker_mute = 0, speaker_gated = 0; -int speaker_enable = 0, was_speaker_enable = 0; +int speaker_mute = 0; +int speaker_gated = 0; +int speaker_enable = 0; +int was_speaker_enable = 0; -int gated, speakval, speakon; +int gated; +int speakval; +int speakon; static int32_t speaker_buffer[SOUNDBUFLEN]; static int speaker_pos = 0; @@ -83,12 +87,12 @@ speaker_update(void) void speaker_get_buffer(int32_t *buffer, int len, void *p) { - int32_t c, val; + int32_t val; speaker_update(); if (!speaker_mute) { - for (c = 0; c < len * 2; c += 2) { + for (int c = 0; c < len * 2; c += 2) { val = speaker_buffer[c >> 1]; buffer[c] += val; buffer[c + 1] += val; diff --git a/src/sound/snd_ssi2001.c b/src/sound/snd_ssi2001.c index 4ce948305..7c2a18f5a 100644 --- a/src/sound/snd_ssi2001.c +++ b/src/sound/snd_ssi2001.c @@ -34,11 +34,10 @@ static void ssi2001_get_buffer(int32_t *buffer, int len, void *p) { ssi2001_t *ssi2001 = (ssi2001_t *) p; - int c; ssi2001_update(ssi2001); - for (c = 0; c < len * 2; c++) + for (int c = 0; c < len * 2; c++) buffer[c] += ssi2001->buffer[c >> 1] / 2; ssi2001->pos = 0; diff --git a/src/sound/snd_wss.c b/src/sound/snd_wss.c index 9e37dd745..a3a748374 100644 --- a/src/sound/snd_wss.c +++ b/src/sound/snd_wss.c @@ -79,11 +79,10 @@ static void wss_get_buffer(int32_t *buffer, int len, void *priv) { wss_t *wss = (wss_t *) priv; - int c; int32_t *opl_buf = wss->opl.update(wss->opl.priv); ad1848_update(&wss->ad1848); - for (c = 0; c < len * 2; c++) { + for (int c = 0; c < len * 2; c++) { buffer[c] += opl_buf[c]; buffer[c] += wss->ad1848.buffer[c] / 2; } diff --git a/src/sound/snd_ym7128.c b/src/sound/snd_ym7128.c index a6398628a..e7cf37b2a 100644 --- a/src/sound/snd_ym7128.c +++ b/src/sound/snd_ym7128.c @@ -112,13 +112,13 @@ ym7128_write(ym7128_t *ym7128, uint8_t val) void ym7128_apply(ym7128_t *ym7128, int16_t *buffer, int len) { - int c, d; - - for (c = 0; c < len * 2; c += 4) { + for (int c = 0; c < len * 2; c += 4) { /*YM7128 samples a mono stream at ~24 kHz, so downsample*/ int32_t samp = ((int32_t) buffer[c] + (int32_t) buffer[c + 1] + (int32_t) buffer[c + 2] + (int32_t) buffer[c + 3]) / 4; - int32_t filter_temp, filter_out; - int32_t samp_l = 0, samp_r = 0; + int32_t filter_temp; + int32_t filter_out; + int32_t samp_l = 0; + int32_t samp_r = 0; filter_temp = GET_DELAY_SAMPLE(ym7128, ym7128->t[0]); filter_out = ((filter_temp * ym7128->c0) >> 11) + ((ym7128->filter_dat * ym7128->c1) >> 11); @@ -129,7 +129,7 @@ ym7128_apply(ym7128_t *ym7128, int16_t *buffer, int len) ym7128->delay_buffer[ym7128->delay_pos] = samp; - for (d = 0; d < 8; d++) { + for (uint8_t d = 0; d < 8; d++) { samp_l += (GET_DELAY_SAMPLE(ym7128, ym7128->t[d + 1]) * ym7128->gl[d]) >> 16; samp_r += (GET_DELAY_SAMPLE(ym7128, ym7128->t[d + 1]) * ym7128->gr[d]) >> 16; } diff --git a/src/sound/sound.c b/src/sound/sound.c index d8791d0cf..94fbad394 100644 --- a/src/sound/sound.c +++ b/src/sound/sound.c @@ -70,7 +70,8 @@ static uint64_t sound_poll_latch; static int16_t cd_buffer[CDROM_NUM][CD_BUFLEN * 2]; static float cd_out_buffer[CD_BUFLEN * 2]; static int16_t cd_out_buffer_int16[CD_BUFLEN * 2]; -static unsigned int cd_vol_l, cd_vol_r; +static unsigned int cd_vol_l; +static unsigned int cd_vol_r; static int cd_buf_update = CD_BUFLEN / SOUNDBUFLEN; static volatile int cdaudioon = 0; static int cd_thread_enable = 0; @@ -248,8 +249,11 @@ static void sound_cd_thread(void *param) { uint32_t lba; - int c, r, i, pre, channel_select[2]; - double audio_vol_l, audio_vol_r; + int r; + int pre; + int channel_select[2]; + double audio_vol_l; + double audio_vol_r; double cd_buffer_temp[2] = { 0.0, 0.0 }; thread_set_event(sound_cd_start_event); @@ -263,7 +267,7 @@ sound_cd_thread(void *param) sound_cd_clean_buffers(); - for (i = 0; i < CDROM_NUM; i++) { + for (uint8_t i = 0; i < CDROM_NUM; i++) { if ((cdrom[i].bus_type == CDROM_BUS_DISABLED) || (cdrom[i].cd_status == CD_STATUS_EMPTY)) continue; lba = cdrom[i].seek_pos; @@ -303,7 +307,7 @@ sound_cd_thread(void *param) channel_select[1] = 2; } - for (c = 0; c < CD_BUFLEN * 2; c += 2) { + for (uint16_t c = 0; c < CD_BUFLEN * 2; c += 2) { /*Apply ATAPI channel select*/ cd_buffer_temp[0] = cd_buffer_temp[1] = 0.0; @@ -388,7 +392,6 @@ sound_realloc_buffers(void) void sound_init(void) { - int i = 0; int available_cdrom_drives = 0; outbuffer_ex = NULL; @@ -398,7 +401,7 @@ sound_init(void) outbuffer = calloc(SOUNDBUFLEN * 2, sizeof(int32_t)); memset(outbuffer, 0x00, SOUNDBUFLEN * 2 * sizeof(int32_t)); - for (i = 0; i < CDROM_NUM; i++) { + for (uint8_t i = 0; i < CDROM_NUM; i++) { if (cdrom[i].bus_type != CDROM_BUS_DISABLED) available_cdrom_drives++; } @@ -551,10 +554,9 @@ sound_cd_thread_end(void) void sound_cd_thread_reset(void) { - int i = 0; int available_cdrom_drives = 0; - for (i = 0; i < CDROM_NUM; i++) { + for (uint8_t i = 0; i < CDROM_NUM; i++) { cdrom_stop(&(cdrom[i])); if (cdrom[i].bus_type != CDROM_BUS_DISABLED) diff --git a/src/sound/xaudio2.c b/src/sound/xaudio2.c index 0045135fc..9f26fe517 100644 --- a/src/sound/xaudio2.c +++ b/src/sound/xaudio2.c @@ -221,10 +221,10 @@ givealbuffer_common(void *buf, IXAudio2SourceVoice *sourcevoice, size_t buflen) buffer.Flags = 0; if (sound_is_float) { buffer.pAudioData = calloc(buflen, sizeof(float)); - buffer.AudioBytes = (buflen) * sizeof(float); + buffer.AudioBytes = buflen * sizeof(float); } else { buffer.pAudioData = calloc(buflen, sizeof(int16_t)); - buffer.AudioBytes = (buflen) * sizeof(int16_t); + buffer.AudioBytes = buflen * sizeof(int16_t); } if (buffer.pAudioData == NULL) { fatal("xaudio2: Out Of Memory!"); diff --git a/src/unix/unix.c b/src/unix/unix.c index 23390fae9..8bddc5346 100644 --- a/src/unix/unix.c +++ b/src/unix/unix.c @@ -63,7 +63,8 @@ SDL_mutex *blitmtx; SDL_threadID eventthread; static int exit_event = 0; static int fullscreen_pending = 0; -uint32_t lang_id = 0x0409, lang_sys = 0x0409; // Multilangual UI variables, for now all set to LCID of en-US +uint32_t lang_id = 0x0409; // Multilangual UI variables, for now all set to LCID of en-US +uint32_t lang_sys = 0x0409; // Multilangual UI variables, for now all set to LCID of en-US char icon_set[256] = ""; /* name of the iconset to be used */ static const uint16_t sdl_to_xt[0x200] = { @@ -175,7 +176,10 @@ static const uint16_t sdl_to_xt[0x200] = { }; typedef struct sdl_blit_params { - int x, y, w, h; + int x; + int y; + int w; + int h; } sdl_blit_params; sdl_blit_params params = { 0, 0, 0, 0 }; @@ -307,7 +311,7 @@ path_normalize(char *path) void path_slash(char *path) { - if ((path[strlen(path) - 1] != '/')) { + if (path[strlen(path) - 1] != '/') { strcat(path, "/"); } path_normalize(path); @@ -347,7 +351,7 @@ path_get_filename(char *s) c--; } - return (s); + return s; } char * @@ -356,7 +360,7 @@ path_get_extension(char *s) int c = strlen(s) - 1; if (c <= 0) - return (s); + return s; while (c && s[c] != '.') c--; @@ -417,7 +421,8 @@ plat_timer_read(void) static uint64_t plat_get_ticks_common(void) { - uint64_t EndingTime, ElapsedMicroseconds; + uint64_t EndingTime; + uint64_t ElapsedMicroseconds; if (first_use) { Frequency = SDL_GetPerformanceFrequency(); StartingTime = SDL_GetPerformanceCounter(); @@ -519,8 +524,10 @@ strnicmp(const char *s1, const char *s2, size_t n) void main_thread(void *param) { - uint32_t old_time, new_time; - int drawits, frames; + uint32_t old_time; + uint32_t new_time; + int drawits; + int frames; SDL_SetThreadPriority(SDL_THREAD_PRIORITY_HIGH); framecountx = 0; @@ -693,7 +700,9 @@ ui_sb_bugui(char *str) extern void sdl_blit(int x, int y, int w, int h); typedef struct mouseinputdata { - int deltax, deltay, deltaz; + int deltax; + int deltay; + int deltaz; int mousebuttons; } mouseinputdata; SDL_mutex *mousemutex; @@ -710,7 +719,8 @@ mouse_poll(void) SDL_UnlockMutex(mousemutex); } -int real_sdl_w, real_sdl_h; +int real_sdl_w; +int real_sdl_h; void ui_sb_set_ready(int ready) { @@ -721,7 +731,8 @@ char *xargv[512]; char * local_strsep(char **str, const char *sep) { - char *s = *str, *end; + char *s = *str; + char *end; if (!s) return NULL; end = s + strcspn(s, sep); @@ -828,8 +839,7 @@ process_media_commands_3(uint8_t *id, char *fn, uint8_t *wp, int cmdargc) bool err = false; *id = atoi(xargv[1]); if (xargv[2][0] == '\'' || xargv[2][0] == '"') { - int curarg = 2; - for (curarg = 2; curarg < cmdargc; curarg++) { + for (int curarg = 2; curarg < cmdargc; curarg++) { if (strlen(fn) + strlen(xargv[curarg]) >= PATH_MAX) { err = true; fprintf(stderr, "Path name too long.\n"); @@ -989,7 +999,8 @@ monitor_thread(void *param) } else if (strncasecmp(xargv[0], "zipeject", 8) == 0 && cmdargc >= 2) { zip_eject(atoi(xargv[1])); } else if (strncasecmp(xargv[0], "fddload", 7) == 0 && cmdargc >= 4) { - uint8_t id, wp; + uint8_t id; + uint8_t wp; bool err = false; char fn[PATH_MAX]; memset(fn, 0, sizeof(fn)); @@ -1008,7 +1019,8 @@ monitor_thread(void *param) floppy_mount(id, fn, wp); } } else if (strncasecmp(xargv[0], "moload", 7) == 0 && cmdargc >= 4) { - uint8_t id, wp; + uint8_t id; + uint8_t wp; bool err = false; char fn[PATH_MAX]; memset(fn, 0, sizeof(fn)); @@ -1027,7 +1039,8 @@ monitor_thread(void *param) mo_mount(id, fn, wp); } } else if (strncasecmp(xargv[0], "cartload", 7) == 0 && cmdargc >= 4) { - uint8_t id, wp; + uint8_t id; + uint8_t wp; bool err = false; char fn[PATH_MAX]; memset(fn, 0, sizeof(fn)); @@ -1046,7 +1059,8 @@ monitor_thread(void *param) cartridge_mount(id, fn, wp); } } else if (strncasecmp(xargv[0], "zipload", 7) == 0 && cmdargc >= 4) { - uint8_t id, wp; + uint8_t id; + uint8_t wp; bool err = false; char fn[PATH_MAX]; memset(fn, 0, sizeof(fn)); diff --git a/src/unix/unix_cdrom.c b/src/unix/unix_cdrom.c index 79a649eb5..7ba247108 100644 --- a/src/unix/unix_cdrom.c +++ b/src/unix/unix_cdrom.c @@ -49,7 +49,9 @@ cassette_mount(char *fn, uint8_t wp) if (fn != NULL) memcpy(cassette_fname, fn, MIN(511, strlen(fn))); ui_sb_update_icon_state(SB_CASSETTE, (fn == NULL) ? 1 : 0); - // media_menu_update_cassette(); +#if 0 + media_menu_update_cassette(); +#endif ui_sb_update_tip(SB_CASSETTE); config_save(); } @@ -60,7 +62,9 @@ cassette_eject(void) pc_cas_set_fname(cassette, NULL); memset(cassette_fname, 0x00, sizeof(cassette_fname)); ui_sb_update_icon_state(SB_CASSETTE, 1); - // media_menu_update_cassette(); +#if 0 + media_menu_update_cassette(); +#endif ui_sb_update_tip(SB_CASSETTE); config_save(); } @@ -71,7 +75,9 @@ cartridge_mount(uint8_t id, char *fn, uint8_t wp) cart_close(id); cart_load(id, fn); ui_sb_update_icon_state(SB_CARTRIDGE | id, strlen(cart_fns[id]) ? 0 : 1); - // media_menu_update_cartridge(id); +#if 0 + media_menu_update_cartridge(id); +#endif ui_sb_update_tip(SB_CARTRIDGE | id); config_save(); } @@ -81,7 +87,9 @@ cartridge_eject(uint8_t id) { cart_close(id); ui_sb_update_icon_state(SB_CARTRIDGE | id, 1); - // media_menu_update_cartridge(id); +#if 0 + media_menu_update_cartridge(id); +#endif ui_sb_update_tip(SB_CARTRIDGE | id); config_save(); } @@ -93,7 +101,9 @@ floppy_mount(uint8_t id, char *fn, uint8_t wp) ui_writeprot[id] = wp; fdd_load(id, fn); ui_sb_update_icon_state(SB_FLOPPY | id, strlen(floppyfns[id]) ? 0 : 1); - // media_menu_update_floppy(id); +#if 0 + media_menu_update_floppy(id); +#endif ui_sb_update_tip(SB_FLOPPY | id); config_save(); } @@ -103,7 +113,9 @@ floppy_eject(uint8_t id) { fdd_close(id); ui_sb_update_icon_state(SB_FLOPPY | id, 1); - // media_menu_update_floppy(id); +#if 0 + media_menu_update_floppy(id); +#endif ui_sb_update_tip(SB_FLOPPY | id); config_save(); } @@ -119,7 +131,9 @@ plat_cdrom_ui_update(uint8_t id, uint8_t reload) ui_sb_update_icon_state(SB_CDROM | id, 0); } - // media_menu_update_cdrom(id); +#if 0 + media_menu_update_cdrom(id); +#endif ui_sb_update_tip(SB_CDROM | id); } @@ -142,7 +156,9 @@ cdrom_mount(uint8_t id, char *fn) } else { ui_sb_update_icon_state(SB_CDROM | id, 1); } - // media_menu_update_cdrom(id); +#if 0 + media_menu_update_cdrom(id); +#endif ui_sb_update_tip(SB_CDROM | id); config_save(); } @@ -159,7 +175,9 @@ mo_eject(uint8_t id) } ui_sb_update_icon_state(SB_MO | id, 1); - // media_menu_update_mo(id); +#if 0 + media_menu_update_mo(id); +#endif ui_sb_update_tip(SB_MO | id); config_save(); } @@ -175,7 +193,9 @@ mo_mount(uint8_t id, char *fn, uint8_t wp) mo_insert(dev); ui_sb_update_icon_state(SB_MO | id, strlen(mo_drives[id].image_path) ? 0 : 1); - // media_menu_update_mo(id); +#if 0 + media_menu_update_mo(id); +#endif ui_sb_update_tip(SB_MO | id); config_save(); @@ -193,7 +213,9 @@ mo_reload(uint8_t id) ui_sb_update_icon_state(SB_MO | id, 0); } - // media_menu_update_mo(id); +#if 0 + media_menu_update_mo(id); +#endif ui_sb_update_tip(SB_MO | id); config_save(); @@ -211,7 +233,9 @@ zip_eject(uint8_t id) } ui_sb_update_icon_state(SB_ZIP | id, 1); - // media_menu_update_zip(id); +#if 0 + media_menu_update_zip(id); +#endif ui_sb_update_tip(SB_ZIP | id); config_save(); } @@ -227,7 +251,9 @@ zip_mount(uint8_t id, char *fn, uint8_t wp) zip_insert(dev); ui_sb_update_icon_state(SB_ZIP | id, strlen(zip_drives[id].image_path) ? 0 : 1); - // media_menu_update_zip(id); +#if 0 + media_menu_update_zip(id); +#endif ui_sb_update_tip(SB_ZIP | id); config_save(); @@ -245,7 +271,9 @@ zip_reload(uint8_t id) ui_sb_update_icon_state(SB_ZIP | id, 0); } - // media_menu_update_zip(id); +#if 0 + media_menu_update_zip(id); +#endif ui_sb_update_tip(SB_ZIP | id); config_save(); diff --git a/src/unix/unix_sdl.c b/src/unix/unix_sdl.c index bc89c9290..4cf723b00 100644 --- a/src/unix/unix_sdl.c +++ b/src/unix/unix_sdl.c @@ -23,18 +23,27 @@ #define RENDERER_OPENGL 4 typedef struct sdl_blit_params { - int x, y, w, h; + int x; + int y; + int w; + int h; } sdl_blit_params; extern sdl_blit_params params; extern int blitreq; -SDL_Window *sdl_win = NULL; -SDL_Renderer *sdl_render = NULL; -static SDL_Texture *sdl_tex = NULL; -int sdl_w = SCREEN_RES_X, sdl_h = SCREEN_RES_Y; -static int sdl_fs, sdl_flags = -1; -static int cur_w, cur_h; -static int cur_wx = 0, cur_wy = 0, cur_ww = 0, cur_wh = 0; +SDL_Window *sdl_win = NULL; +SDL_Renderer *sdl_render = NULL; +static SDL_Texture *sdl_tex = NULL; +int sdl_w = SCREEN_RES_X; +int sdl_h = SCREEN_RES_Y; +static int sdl_fs; +static int sdl_flags = -1; +static int cur_w; +static int cur_h; +static int cur_wx = 0; +static int cur_wy = 0; +static int cur_ww = 0; +static int cur_wh = 0; static volatile int sdl_enabled = 1; static SDL_mutex *sdl_mutex = NULL; int mouse_capture; @@ -43,7 +52,8 @@ int resize_pending = 0; int resize_w = 0; int resize_h = 0; double mouse_sensitivity = 1.0; /* Unused. */ -double mouse_x_error = 0.0, mouse_y_error = 0.0; /* Unused. */ +double mouse_x_error = 0.0; /* Unused. */ +double mouse_y_error = 0.0; /* Unused. */ static uint8_t interpixels[17842176]; extern void RenderImGui(void); @@ -66,8 +76,18 @@ void sdl_reinit_texture(void); static void sdl_stretch(int *w, int *h, int *x, int *y) { - double hw, gw, hh, gh, dx, dy, dw, dh, gsr, hsr; - int real_sdl_w, real_sdl_h; + double hw; + double gw; + double hh; + double gh; + double dx; + double dy; + double dw; + double dh; + double gsr; + double hsr; + int real_sdl_w; + int real_sdl_h; SDL_GL_GetDrawableSize(sdl_win, &real_sdl_w, &real_sdl_h); @@ -147,7 +167,9 @@ void sdl_real_blit(SDL_Rect *r_src) { SDL_Rect r_dst; - int ret, winx, winy; + int ret; + int winx; + int winy; SDL_GL_GetDrawableSize(sdl_win, &winx, &winy); SDL_RenderClear(sdl_render); @@ -273,10 +295,9 @@ sdl_enable(int enable) static void sdl_select_best_hw_driver(void) { - int i; SDL_RendererInfo renderInfo; - for (i = 0; i < SDL_GetNumRenderDrivers(); ++i) { + for (int i = 0; i < SDL_GetNumRenderDrivers(); ++i) { SDL_GetRenderDriverInfo(i, &renderInfo); if (renderInfo.flags & SDL_RENDERER_ACCELERATED) { SDL_SetHint(SDL_HINT_RENDER_DRIVER, renderInfo.name); @@ -321,7 +342,10 @@ sdl_set_fs(int fs) void sdl_resize(int x, int y) { - int ww = 0, wh = 0, wx = 0, wy = 0; + int ww = 0; + int wh = 0; + int wx = 0; + int wy = 0; if (video_fullscreen & 2) return; @@ -436,7 +460,7 @@ sdl_initho(void) int sdl_pause(void) { - return (0); + return 0; } void diff --git a/src/unix/unix_serial_passthrough.c b/src/unix/unix_serial_passthrough.c index 13c695e83..b3a0080b7 100644 --- a/src/unix/unix_serial_passthrough.c +++ b/src/unix/unix_serial_passthrough.c @@ -87,20 +87,22 @@ plat_serpt_close(void *p) static void plat_serpt_write_vcon(serial_passthrough_t *dev, uint8_t data) { - /* fd_set wrfds; - * int res; - */ +#if 0 + fd_set wrfds; + int res; +#endif /* We cannot use select here, this would block the hypervisor! */ - /* FD_ZERO(&wrfds); - FD_SET(ctx->master_fd, &wrfds); +#if 0 + FD_ZERO(&wrfds); + FD_SET(ctx->master_fd, &wrfds); - res = select(ctx->master_fd + 1, NULL, &wrfds, NULL, NULL); + res = select(ctx->master_fd + 1, NULL, &wrfds, NULL, NULL); - if (res <= 0) { - return; - } - */ + if (res <= 0) { + return; + } +#endif /* just write it out */ if (dev->mode == SERPT_MODE_HOSTSER) { diff --git a/src/unix/unix_thread.c b/src/unix/unix_thread.c index 268545719..0c2e9bf6b 100644 --- a/src/unix/unix_thread.c +++ b/src/unix/unix_thread.c @@ -133,7 +133,7 @@ int thread_wait_mutex(mutex_t *_mutex) { if (_mutex == NULL) - return (0); + return 0; pt_mutex_t *mutex = (pt_mutex_t *) _mutex; return pthread_mutex_lock(&mutex->mutex) != 0; @@ -143,7 +143,7 @@ int thread_test_mutex(mutex_t *_mutex) { if (_mutex == NULL) - return (0); + return 0; pt_mutex_t *mutex = (pt_mutex_t *) _mutex; return pthread_mutex_trylock(&mutex->mutex) != 0; @@ -153,7 +153,7 @@ int thread_release_mutex(mutex_t *_mutex) { if (_mutex == NULL) - return (0); + return 0; pt_mutex_t *mutex = (pt_mutex_t *) _mutex; return pthread_mutex_unlock(&mutex->mutex) != 0; diff --git a/src/video/vid_8514a.c b/src/video/vid_8514a.c index b82b116c6..addba804c 100644 --- a/src/video/vid_8514a.c +++ b/src/video/vid_8514a.c @@ -193,7 +193,8 @@ ibm8514_accel_out_pixtrans(svga_t *svga, uint16_t port, uint16_t val, int len) { ibm8514_t *dev = &svga->dev8514; uint8_t nibble = 0; - uint32_t pixelxfer = 0, monoxfer = 0xffffffff; + uint32_t pixelxfer = 0; + uint32_t monoxfer = 0xffffffff; int pixcnt = 0; int pixcntl = (dev->accel.multifunc[0x0a] >> 6) & 3; int frgd_mix = (dev->accel.frgd_mix >> 5) & 3; @@ -1104,8 +1105,11 @@ void ibm8514_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat, svga_t *svga, int len) { ibm8514_t *dev = &svga->dev8514; - uint8_t src_dat = 0, dest_dat, old_dest_dat; - int frgd_mix, bkgd_mix; + uint8_t src_dat = 0; + uint8_t dest_dat; + uint8_t old_dest_dat; + int frgd_mix; + int bkgd_mix; uint16_t clip_b = dev->accel.multifunc[3] & 0x7ff; uint16_t clip_r = dev->accel.multifunc[4] & 0x7ff; int pixcntl = (dev->accel.multifunc[0x0a] >> 6) & 3; @@ -1365,7 +1369,7 @@ ibm8514_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat count >>= 1; dev->accel.xx_count++; while (count-- && (dev->accel.sy >= 0)) { - if ((dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b)) { + if (dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b) { if (ibm8514_cpu_dest(svga) && (pixcntl == 0)) { mix_dat = mix_mask; /* Mix data = forced to foreground register. */ } else if (ibm8514_cpu_dest(svga) && (pixcntl == 3)) { @@ -1522,7 +1526,7 @@ ibm8514_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat dev->accel.temp_cnt = 8; mix_dat = old_mix_dat; } - if ((dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b)) { + if (dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b) { if (ibm8514_cpu_dest(svga)) { READ((dev->accel.cy * dev->pitch) + dev->accel.cx, src_dat); } else @@ -1627,7 +1631,7 @@ ibm8514_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat } } else { while (count-- && (dev->accel.sy >= 0)) { - if (((dev->accel.cx) >= dev->accel.clip_left && (dev->accel.cx) <= clip_r && (dev->accel.cy) >= dev->accel.clip_top && (dev->accel.cy) <= clip_b)) { + if ((dev->accel.cx) >= dev->accel.clip_left && (dev->accel.cx) <= clip_r && (dev->accel.cy) >= dev->accel.clip_top && (dev->accel.cy) <= clip_b) { if (ibm8514_cpu_dest(svga) && (pixcntl == 0)) { mix_dat = mix_mask; /* Mix data = forced to foreground register. */ } else if (ibm8514_cpu_dest(svga) && (pixcntl == 3)) { @@ -1851,7 +1855,7 @@ rect_fill_pix: if ((dev->accel.cmd & 8) && ibm8514_cpu_src(svga)) { dev->accel.xx_count++; while (count-- && (dev->accel.sy >= 0)) { - if ((dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b)) { + if (dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b) { switch ((mix_dat & mix_mask) ? frgd_mix : bkgd_mix) { case 0: src_dat = bkgd_color; @@ -2006,7 +2010,7 @@ rect_fill_pix: } if (count < 8) { while (count-- && (dev->accel.sy >= 0)) { - if ((dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b)) { + if (dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b) { if (ibm8514_cpu_dest(svga) && (pixcntl == 0)) { mix_dat = mix_mask; /* Mix data = forced to foreground register. */ } else if (ibm8514_cpu_dest(svga) && (pixcntl == 3)) { @@ -2080,7 +2084,7 @@ rect_fill_pix: } } else { while (count-- && (dev->accel.sy >= 0)) { - if ((dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b)) { + if (dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b) { if (ibm8514_cpu_dest(svga) && (pixcntl == 0)) { mix_dat = 1; /* Mix data = forced to foreground register. */ } else if (ibm8514_cpu_dest(svga) && (pixcntl == 3)) { @@ -2171,7 +2175,7 @@ rect_fill_pix: } else { if (dev->accel.input && !dev->accel.output) { while (count-- && (dev->accel.sy >= 0)) { - if ((dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b)) { + if (dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b) { mix_dat = mix_mask; /* Mix data = forced to foreground register. */ if (!dev->accel.odd_in && !dev->accel.sx) { READ(dev->accel.newdest_in + dev->accel.cur_x, src_dat); @@ -2305,7 +2309,7 @@ rect_fill_pix: } } else { while (count-- && (dev->accel.sy >= 0)) { - if ((dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b)) { + if (dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b) { if (ibm8514_cpu_dest(svga) && (pixcntl == 0)) { mix_dat = mix_mask; /* Mix data = forced to foreground register. */ } else if (ibm8514_cpu_dest(svga) && (pixcntl == 3)) { @@ -2393,7 +2397,7 @@ rect_fill: mix_dat >>= 8; dev->accel.temp_cnt = 8; } - if ((dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b)) { + if (dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b) { switch ((mix_dat & mix_mask) ? frgd_mix : bkgd_mix) { case 0: src_dat = bkgd_color; @@ -2460,7 +2464,7 @@ rect_fill: dev->accel.temp_cnt = 8; mix_dat = old_mix_dat; } - if ((dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b)) { + if (dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b) { switch ((mix_dat & 1) ? frgd_mix : bkgd_mix) { case 0: src_dat = bkgd_color; @@ -2523,7 +2527,7 @@ rect_fill: } else { if (dev->accel.multifunc[0x0a] & 6) { while (count-- && dev->accel.sy >= 0) { - if ((dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b)) { + if (dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b) { switch ((mix_dat & mix_mask) ? frgd_mix : bkgd_mix) { case 0: src_dat = bkgd_color; @@ -2599,7 +2603,7 @@ rect_fill: } } else { while (count-- && dev->accel.sy >= 0) { - if ((dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b)) { + if (dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b) { switch ((mix_dat & mix_mask) ? frgd_mix : bkgd_mix) { case 0: src_dat = bkgd_color; @@ -2686,7 +2690,7 @@ rect_fill: if (dev->accel.cur_x > 1023) dev->accel.cx = 0; - if (((dev->accel.cx) >= dev->accel.clip_left && ((dev->accel.cx) <= clip_r) && (dev->accel.cy) >= dev->accel.clip_top && (dev->accel.cy) <= clip_b)) { + if ((dev->accel.cx) >= dev->accel.clip_left && ((dev->accel.cx) <= clip_r) && (dev->accel.cy) >= dev->accel.clip_top && (dev->accel.cy) <= clip_b) { switch ((mix_dat & mix_mask) ? frgd_mix : bkgd_mix) { case 0: src_dat = bkgd_color; @@ -2852,7 +2856,7 @@ rect_fill: bitblt_pix: if (count < 8) { while (count-- && (dev->accel.sy >= 0)) { - if ((dev->accel.dx >= dev->accel.clip_left && dev->accel.dx <= clip_r && dev->accel.dy >= dev->accel.clip_top && dev->accel.dy <= clip_b)) { + if (dev->accel.dx >= dev->accel.clip_left && dev->accel.dx <= clip_r && dev->accel.dy >= dev->accel.clip_top && dev->accel.dy <= clip_b) { if (pixcntl == 3) { if (!(dev->accel.cmd & 0x10) && ((frgd_mix != 3) || (bkgd_mix != 3))) { READ(dev->accel.src + dev->accel.cx, mix_dat); @@ -2928,7 +2932,7 @@ bitblt_pix: } } else { while (count-- && (dev->accel.sy >= 0)) { - if ((dev->accel.dx >= dev->accel.clip_left && dev->accel.dx <= clip_r && dev->accel.dy >= dev->accel.clip_top && dev->accel.dy <= clip_b)) { + if (dev->accel.dx >= dev->accel.clip_left && dev->accel.dx <= clip_r && dev->accel.dy >= dev->accel.clip_top && dev->accel.dy <= clip_b) { if (pixcntl == 3) { if (!(dev->accel.cmd & 0x10) && ((frgd_mix != 3) || (bkgd_mix != 3))) { READ(dev->accel.src + dev->accel.cx, mix_dat); @@ -3032,7 +3036,7 @@ bitblt_pix: goto bitblt_pix; } else { while (count-- && (dev->accel.sy >= 0)) { - if ((dev->accel.dx >= dev->accel.clip_left && dev->accel.dx <= clip_r && dev->accel.dy >= dev->accel.clip_top && dev->accel.dy <= clip_b)) { + if (dev->accel.dx >= dev->accel.clip_left && dev->accel.dx <= clip_r && dev->accel.dy >= dev->accel.clip_top && dev->accel.dy <= clip_b) { if (pixcntl == 3) { if (!(dev->accel.cmd & 0x10) && ((frgd_mix != 3) || (bkgd_mix != 3))) { READ(dev->accel.src + dev->accel.cx, mix_dat); @@ -3123,7 +3127,7 @@ bitblt: mix_dat >>= 8; dev->accel.temp_cnt = 8; } - if ((dev->accel.dx >= dev->accel.clip_left && dev->accel.dx <= clip_r && dev->accel.dy >= dev->accel.clip_top && dev->accel.dy <= clip_b)) { + if (dev->accel.dx >= dev->accel.clip_left && dev->accel.dx <= clip_r && dev->accel.dy >= dev->accel.clip_top && dev->accel.dy <= clip_b) { switch ((mix_dat & mix_mask) ? frgd_mix : bkgd_mix) { case 0: src_dat = bkgd_color; @@ -3197,7 +3201,7 @@ bitblt: dev->accel.temp_cnt = 8; mix_dat = old_mix_dat; } - if ((dev->accel.dx >= dev->accel.clip_left && dev->accel.dx <= clip_r && dev->accel.dy >= dev->accel.clip_top && dev->accel.dy <= clip_b)) { + if (dev->accel.dx >= dev->accel.clip_left && dev->accel.dx <= clip_r && dev->accel.dy >= dev->accel.clip_top && dev->accel.dy <= clip_b) { switch ((mix_dat & 1) ? frgd_mix : bkgd_mix) { case 0: src_dat = bkgd_color; @@ -3266,7 +3270,7 @@ bitblt: } } else { while (count-- && dev->accel.sy >= 0) { - if ((dev->accel.dx >= dev->accel.clip_left && dev->accel.dx <= clip_r && dev->accel.dy >= dev->accel.clip_top && dev->accel.dy <= clip_b)) { + if (dev->accel.dx >= dev->accel.clip_left && dev->accel.dx <= clip_r && dev->accel.dy >= dev->accel.clip_top && dev->accel.dy <= clip_b) { if (pixcntl == 3) { if (!(dev->accel.cmd & 0x10) && ((frgd_mix != 3) || (bkgd_mix != 3))) { READ(dev->accel.src + dev->accel.cx, mix_dat); @@ -3412,7 +3416,8 @@ ibm8514_render_overscan_left(ibm8514_t *dev, svga_t *svga) static void ibm8514_render_overscan_right(ibm8514_t *dev, svga_t *svga) { - int i, right; + int i; + int right; if ((dev->displine + svga->y_add) < 0) return; @@ -3429,7 +3434,8 @@ void ibm8514_poll(ibm8514_t *dev, svga_t *svga) { uint32_t x; - int wx, wy; + int wx; + int wy; if (!dev->linepos) { timer_advance_u64(&svga->timer, svga->dispofftime); @@ -3619,7 +3625,7 @@ ibm8514_recalctimings(svga_t *svga) dev->pitch = 1024; // pclog("1024x768 clock mode, hdisp = %d, htotal = %d, vtotal = %d, vsyncstart = %d, interlace = %02x\n", dev->h_disp, dev->h_total, dev->v_total, dev->v_syncstart, dev->interlace); - svga->clock = (cpuclock * (double) (1ull << 32)) / 44900000.0; + svga->clock = (cpuclock * (double) (1ULL << 32)) / 44900000.0; } else { if (!vga_on && dev->ibm_mode) { dev->h_disp = 640; @@ -3637,7 +3643,7 @@ ibm8514_recalctimings(svga_t *svga) dev->rowoffset = 0x80; dev->pitch = 1024; - svga->clock = (cpuclock * (double) (1ull << 32)) / 25175000.0; + svga->clock = (cpuclock * (double) (1ULL << 32)) / 25175000.0; } svga->render = ibm8514_render_8bpp; //pclog("Pitch = %d, mode = %d.\n", dev->pitch, dev->ibm_mode); diff --git a/src/video/vid_ati_mach64.c b/src/video/vid_ati_mach64.c index d67ff876b..d5c83f81f 100644 --- a/src/video/vid_ati_mach64.c +++ b/src/video/vid_ati_mach64.c @@ -474,7 +474,7 @@ mach64_recalctimings(svga_t *svga) svga->hdisp_time = svga->hdisp = ((mach64->crtc_h_total_disp >> 16) & 255) + 1; svga->vsyncstart = (mach64->crtc_v_sync_strt_wid & 2047) + 1; svga->rowoffset = (mach64->crtc_off_pitch >> 22); - svga->clock = (cpuclock * (double) (1ull << 32)) / ics2595_getclock(svga->clock_gen); + svga->clock = (cpuclock * (double) (1ULL << 32)) / ics2595_getclock(svga->clock_gen); svga->ma_latch = (mach64->crtc_off_pitch & 0x1fffff) * 2; svga->linedbl = svga->rowcount = 0; svga->split = 0xffffff; @@ -1179,7 +1179,8 @@ mach64_queue(mach64_t *mach64, uint32_t addr, uint32_t val, uint32_t type) void mach64_start_fill(mach64_t *mach64) { - int x, y; + int x; + int y; mach64->accel.dst_x = 0; mach64->accel.dst_y = 0; @@ -1309,7 +1310,8 @@ mach64_start_fill(mach64_t *mach64) void mach64_start_line(mach64_t *mach64) { - int x, y; + int x; + int y; mach64->accel.dst_x = (mach64->dst_y_x >> 16) & 0xfff; mach64->accel.dst_y = mach64->dst_y_x & 0xfff; @@ -1490,7 +1492,8 @@ mach64_blit(uint32_t cpu_dat, int count, mach64_t *mach64) switch (mach64->accel.op) { case OP_RECT: while (count) { - uint32_t src_dat = 0, dest_dat; + uint32_t src_dat = 0; + uint32_t dest_dat; uint32_t host_dat = 0; uint32_t old_dest_dat; int mix = 0; @@ -1698,7 +1701,8 @@ mach64_blit(uint32_t cpu_dat, int count, mach64_t *mach64) if (((mach64->crtc_gen_cntl >> 8) & 7) == BPP_24) { int x = 0; while (count) { - uint32_t src_dat = 0, dest_dat; + uint32_t src_dat = 0; + uint32_t dest_dat; uint32_t host_dat = 0; int mix = 0; @@ -1825,7 +1829,8 @@ mach64_blit(uint32_t cpu_dat, int count, mach64_t *mach64) } } else { while (count) { - uint32_t src_dat = 0, dest_dat; + uint32_t src_dat = 0; + uint32_t dest_dat; uint32_t host_dat = 0; int mix = 0; int draw_pixel = !(mach64->dst_cntl & DST_POLYGON_EN); @@ -3857,7 +3862,8 @@ mach64_overlay_draw(svga_t *svga, int displine) } else { for (x = 0; x < mach64->svga.overlay_latch.cur_xsize; x++) { int h = h_acc >> 12; - int gr_cmp = 0, vid_cmp = 0; + int gr_cmp = 0; + int vid_cmp = 0; int use_video = 0; switch (video_key_fn) { diff --git a/src/win/languages/cs-CZ.rc b/src/win/languages/cs-CZ.rc index 238d31b07..573493163 100644 --- a/src/win/languages/cs-CZ.rc +++ b/src/win/languages/cs-CZ.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/de-DE.rc b/src/win/languages/de-DE.rc index 0af4a28b5..0dc8a4754 100644 --- a/src/win/languages/de-DE.rc +++ b/src/win/languages/de-DE.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/en-GB.rc b/src/win/languages/en-GB.rc index f8dab3bd7..299d100ad 100644 --- a/src/win/languages/en-GB.rc +++ b/src/win/languages/en-GB.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/en-US.rc b/src/win/languages/en-US.rc index 66c9d60e2..5c6932a62 100644 --- a/src/win/languages/en-US.rc +++ b/src/win/languages/en-US.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/es-ES.rc b/src/win/languages/es-ES.rc index 8ff91d891..8a9e436a9 100644 --- a/src/win/languages/es-ES.rc +++ b/src/win/languages/es-ES.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/fi-FI.rc b/src/win/languages/fi-FI.rc index 31467afbf..3f8cdf8b2 100644 --- a/src/win/languages/fi-FI.rc +++ b/src/win/languages/fi-FI.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/fr-FR.rc b/src/win/languages/fr-FR.rc index 73e36550d..f5b65a741 100644 --- a/src/win/languages/fr-FR.rc +++ b/src/win/languages/fr-FR.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/hr-HR.rc b/src/win/languages/hr-HR.rc index 74e43ebb6..743e14b6f 100644 --- a/src/win/languages/hr-HR.rc +++ b/src/win/languages/hr-HR.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/hu-HU.rc b/src/win/languages/hu-HU.rc index bcebd91f0..b4fc976d6 100644 --- a/src/win/languages/hu-HU.rc +++ b/src/win/languages/hu-HU.rc @@ -546,6 +546,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/it-IT.rc b/src/win/languages/it-IT.rc index e81e07a6e..c5a726062 100644 --- a/src/win/languages/it-IT.rc +++ b/src/win/languages/it-IT.rc @@ -543,6 +543,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/ja-JP.rc b/src/win/languages/ja-JP.rc index 0b9efec12..36e42e357 100644 --- a/src/win/languages/ja-JP.rc +++ b/src/win/languages/ja-JP.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/ko-KR.rc b/src/win/languages/ko-KR.rc index 1949eb6c9..14fff915e 100644 --- a/src/win/languages/ko-KR.rc +++ b/src/win/languages/ko-KR.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "두번째 비디오카드 ""%hs""는 roms/video 디렉토리에서 ROM이 누락되어 사용할 수 없습니다. 두번째 비디오 카드를 비활성화 합니다." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/pl-PL.rc b/src/win/languages/pl-PL.rc index 98dc0c903..0cbadf296 100644 --- a/src/win/languages/pl-PL.rc +++ b/src/win/languages/pl-PL.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/pt-BR.rc b/src/win/languages/pt-BR.rc index 723e25685..ceb530c43 100644 --- a/src/win/languages/pt-BR.rc +++ b/src/win/languages/pt-BR.rc @@ -545,6 +545,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/pt-PT.rc b/src/win/languages/pt-PT.rc index b6a66a325..c1dd53ca5 100644 --- a/src/win/languages/pt-PT.rc +++ b/src/win/languages/pt-PT.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/ru-RU.rc b/src/win/languages/ru-RU.rc index 552f8a0dc..8b3e4fbc3 100644 --- a/src/win/languages/ru-RU.rc +++ b/src/win/languages/ru-RU.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/sl-SI.rc b/src/win/languages/sl-SI.rc index ec080d7cb..439c97330 100644 --- a/src/win/languages/sl-SI.rc +++ b/src/win/languages/sl-SI.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/tr-TR.rc b/src/win/languages/tr-TR.rc index cd6132ee0..a9a6bbbbc 100644 --- a/src/win/languages/tr-TR.rc +++ b/src/win/languages/tr-TR.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/uk-UA.rc b/src/win/languages/uk-UA.rc index adc04e808..49f5573e7 100644 --- a/src/win/languages/uk-UA.rc +++ b/src/win/languages/uk-UA.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Відеокарта #2 ""%hs"" недоступна через відсутність файлу її ПЗУ в каталозі roms/video. Відключення другої відеокарти." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/zh-CN.rc b/src/win/languages/zh-CN.rc index cd47d64df..807f5f3a0 100644 --- a/src/win/languages/zh-CN.rc +++ b/src/win/languages/zh-CN.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/languages/zh-TW.rc b/src/win/languages/zh-TW.rc index 8ed160f21..1adf0c4ca 100644 --- a/src/win/languages/zh-TW.rc +++ b/src/win/languages/zh-TW.rc @@ -542,6 +542,8 @@ BEGIN IDS_2164 "Old Dynarec" IDS_2165 "New Dynarec" IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" END STRINGTABLE DISCARDABLE diff --git a/src/win/win_dynld.c b/src/win/win_dynld.c index 88fb632bc..43c1a5266 100644 --- a/src/win/win_dynld.c +++ b/src/win/win_dynld.c @@ -47,7 +47,6 @@ void * dynld_module(const char *name, dllimp_t *table) { HMODULE h; - dllimp_t *imp; void *func; /* See if we can load the desired module. */ @@ -57,7 +56,7 @@ dynld_module(const char *name, dllimp_t *table) } /* Now load the desired function pointers. */ - for (imp = table; imp->name != NULL; imp++) { + for (dllimp_t *imp = table; imp->name != NULL; imp++) { func = GetProcAddress(h, imp->name); if (func == NULL) { dynld_log("DynLd(\"%s\"): function '%s' not found! (%08X)\n",