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 e95cef259..c67358e0a 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 c28046826..055c43d13 100644
--- a/src/pic.c
+++ b/src/pic.c
@@ -792,7 +792,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. */
@@ -823,7 +822,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",