Replacing file descriptor read/write calls with FILE fread/fwrite calls for a little more standard portability.
This commit is contained in:
parent
5f858c9e94
commit
13183e4ce7
119
src/config.c
119
src/config.c
|
@ -707,7 +707,7 @@ config_load_roms()
|
|||
int more_than_8mb;
|
||||
int changed_rom;
|
||||
int len;
|
||||
int fd;
|
||||
FILE *file;
|
||||
int ret;
|
||||
int i;
|
||||
|
||||
|
@ -724,18 +724,18 @@ config_load_roms()
|
|||
g_config_control_panel = 1;
|
||||
return;
|
||||
}
|
||||
fd = open(&g_cfg_tmp_path[0], O_RDONLY | O_BINARY);
|
||||
if(fd < 0) {
|
||||
fatal_printf("Open ROM file %s failed:%d, errno:%d\n",
|
||||
&g_cfg_tmp_path[0], fd, errno);
|
||||
file = fopen(&g_cfg_tmp_path[0], "rb");
|
||||
if(!file) {
|
||||
fatal_printf("Open ROM file %s failed; errno:%d\n",
|
||||
&g_cfg_tmp_path[0], errno);
|
||||
g_config_control_panel = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
ret = fstat(fd, &stat_buf);
|
||||
ret = stat(&g_cfg_tmp_path[0], &stat_buf);
|
||||
if(ret != 0) {
|
||||
fatal_printf("fstat returned %d on fd %d, errno: %d\n",
|
||||
ret, fd, errno);
|
||||
fatal_printf("stat returned %d; errno: %d\n",
|
||||
ret, errno);
|
||||
g_config_control_panel = 1;
|
||||
return;
|
||||
}
|
||||
|
@ -746,11 +746,11 @@ config_load_roms()
|
|||
g_mem_size_base = 256*1024;
|
||||
memset(&g_rom_fc_ff_ptr[0], 0, 2*65536);
|
||||
/* Clear banks fc and fd to 0 */
|
||||
ret = read(fd, &g_rom_fc_ff_ptr[2*65536], len);
|
||||
ret = fread(&g_rom_fc_ff_ptr[2*65536], 1, len, file);
|
||||
} else if(len == 256*1024) {
|
||||
g_rom_version = 3;
|
||||
g_mem_size_base = 1024*1024;
|
||||
ret = read(fd, &g_rom_fc_ff_ptr[0], len);
|
||||
ret = fread(&g_rom_fc_ff_ptr[0], 1, len, file);
|
||||
} else {
|
||||
fatal_printf("The ROM size should be 128K or 256K, this file "
|
||||
"is %d bytes\n", len);
|
||||
|
@ -764,7 +764,7 @@ config_load_roms()
|
|||
g_config_control_panel = 1;
|
||||
return;
|
||||
}
|
||||
close(fd);
|
||||
fclose(file);
|
||||
|
||||
memset(&g_rom_cards_ptr[0], 0, 256*16);
|
||||
|
||||
|
@ -795,16 +795,15 @@ config_load_roms()
|
|||
names_ptr);
|
||||
|
||||
if(g_cfg_tmp_path[0] != 0) {
|
||||
fd = open(&(g_cfg_tmp_path[0]), O_RDONLY | O_BINARY);
|
||||
if(fd < 0) {
|
||||
fatal_printf("Open card ROM file %s failed: %d "
|
||||
"err:%d\n", &g_cfg_tmp_path[0], fd,
|
||||
errno);
|
||||
file = fopen(&(g_cfg_tmp_path[0]), "rb");
|
||||
if(!file) {
|
||||
fatal_printf("Open card ROM file %s failed; errno:%d\n",
|
||||
&g_cfg_tmp_path[0], errno);
|
||||
continue;
|
||||
}
|
||||
|
||||
len = 256;
|
||||
ret = read(fd, &g_rom_cards_ptr[i*0x100], len);
|
||||
ret = fread(&g_rom_cards_ptr[i*0x100], 1, len, file);
|
||||
|
||||
if(ret != len) {
|
||||
fatal_printf("While reading card ROM %s, file "
|
||||
|
@ -812,8 +811,7 @@ config_load_roms()
|
|||
"read %d bytes\n", errno, len, ret);
|
||||
continue;
|
||||
}
|
||||
close(fd);
|
||||
fd = 0;
|
||||
fclose(file);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1105,7 +1103,7 @@ config_generate_config_kegs_name(char *outstr, int maxlen, Disk *dsk,
|
|||
|
||||
str = outstr;
|
||||
|
||||
if(with_extras && dsk->fd < 0) {
|
||||
if(with_extras && (!dsk->file)) {
|
||||
snprintf(str, maxlen - (str - outstr), "#");
|
||||
str = &outstr[strlen(outstr)];
|
||||
}
|
||||
|
@ -1265,7 +1263,7 @@ insert_disk(int slot, int drive, const char *name, int ejected, int force_size,
|
|||
dsk->just_ejected = 0;
|
||||
dsk->force_size = force_size;
|
||||
|
||||
if(dsk->fd >= 0) {
|
||||
if(!dsk->file) {
|
||||
eject_disk(dsk);
|
||||
}
|
||||
|
||||
|
@ -1304,11 +1302,11 @@ insert_disk(int slot, int drive, const char *name, int ejected, int force_size,
|
|||
|
||||
if(ejected) {
|
||||
/* just get out of here */
|
||||
dsk->fd = -1;
|
||||
dsk->file = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
dsk->fd = -1;
|
||||
dsk->file = 0;
|
||||
can_write = 1;
|
||||
|
||||
if((name_len > 3) && (strcmp(&name_ptr[name_len - 3], ".gz") == 0)) {
|
||||
|
@ -1334,9 +1332,8 @@ insert_disk(int slot, int drive, const char *name, int ejected, int force_size,
|
|||
ret = system(system_str);
|
||||
if(ret == 0) {
|
||||
/* successfully ran */
|
||||
dsk->fd = open(uncomp_ptr, O_RDONLY | O_BINARY, 0x1b6);
|
||||
iwm_printf("Opening .gz file %s is fd: %d\n",
|
||||
uncomp_ptr, dsk->fd);
|
||||
dsk->file = fopen(uncomp_ptr, "rb");
|
||||
iwm_printf("Opening .gz file %s\n", uncomp_ptr);
|
||||
|
||||
/* and, unlink the temporary file */
|
||||
(void)unlink(uncomp_ptr);
|
||||
|
@ -1348,20 +1345,18 @@ insert_disk(int slot, int drive, const char *name, int ejected, int force_size,
|
|||
name_len -= 3;
|
||||
}
|
||||
|
||||
if(dsk->fd < 0 && can_write) {
|
||||
dsk->fd = open(name_ptr, O_RDWR | O_BINARY, 0x1b6);
|
||||
if((!dsk->file) && can_write) {
|
||||
dsk->file = fopen(name_ptr, "rb+");
|
||||
}
|
||||
|
||||
if(dsk->fd < 0 && can_write) {
|
||||
if((!dsk->file) && can_write) {
|
||||
printf("Trying to open %s read-only, errno: %d\n", name_ptr,
|
||||
errno);
|
||||
dsk->fd = open(name_ptr, O_RDONLY | O_BINARY, 0x1b6);
|
||||
dsk->file = fopen(name_ptr, "rb");
|
||||
can_write = 0;
|
||||
}
|
||||
|
||||
iwm_printf("open returned: %d\n", dsk->fd);
|
||||
|
||||
if(dsk->fd < 0) {
|
||||
if(!dsk->file) {
|
||||
fatal_printf("Disk image %s does not exist!\n", name_ptr);
|
||||
return;
|
||||
}
|
||||
|
@ -1379,10 +1374,10 @@ insert_disk(int slot, int drive, const char *name, int ejected, int force_size,
|
|||
dsk->image_start = 0;
|
||||
|
||||
/* See if it is in 2IMG format */
|
||||
ret = read(dsk->fd, (char *)&buf_2img[0], 512);
|
||||
ret = fread((char *)&buf_2img[0], 1, 512, dsk->file);
|
||||
size = force_size;
|
||||
if(size <= 0) {
|
||||
size = cfg_get_fd_size(dsk->fd);
|
||||
size = cfg_get_fd_size(name_ptr);
|
||||
}
|
||||
|
||||
/* Try to guess that there is a Mac Binary header of 128 bytes */
|
||||
|
@ -1483,14 +1478,14 @@ insert_disk(int slot, int drive, const char *name, int ejected, int force_size,
|
|||
g_highest_smartport_unit);
|
||||
|
||||
if(partition_name != 0 || part_num >= 0) {
|
||||
ret = cfg_partition_find_by_name_or_num(dsk->fd,
|
||||
ret = cfg_partition_find_by_name_or_num(dsk->file,
|
||||
partition_name, part_num, dsk);
|
||||
printf("partition %s (num %d) mounted, wr_prot: %d\n",
|
||||
partition_name, part_num, dsk->write_prot);
|
||||
|
||||
if(ret < 0) {
|
||||
close(dsk->fd);
|
||||
dsk->fd = -1;
|
||||
fclose(dsk->file);
|
||||
dsk->file = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -1546,7 +1541,7 @@ void
|
|||
eject_named_disk(Disk *dsk, const char *name, const char *partition_name)
|
||||
{
|
||||
|
||||
if(dsk->fd < 0) {
|
||||
if(!dsk->file) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1581,7 +1576,7 @@ eject_disk(Disk *dsk)
|
|||
int motor_on;
|
||||
int i;
|
||||
|
||||
if(dsk->fd < 0) {
|
||||
if(!dsk->file) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1616,7 +1611,7 @@ eject_disk(Disk *dsk)
|
|||
dsk->trks = 0;
|
||||
|
||||
/* close file, clean up dsk struct */
|
||||
close(dsk->fd);
|
||||
fclose(dsk->file);
|
||||
|
||||
dsk->image_start = 0;
|
||||
dsk->image_size = 0;
|
||||
|
@ -1624,22 +1619,22 @@ eject_disk(Disk *dsk)
|
|||
dsk->disk_dirty = 0;
|
||||
dsk->write_through_to_unix = 0;
|
||||
dsk->write_prot = 1;
|
||||
dsk->fd = -1;
|
||||
dsk->file = 0;
|
||||
dsk->just_ejected = 1;
|
||||
|
||||
/* Leave name_ptr valid */
|
||||
}
|
||||
|
||||
int
|
||||
cfg_get_fd_size(int fd)
|
||||
cfg_get_fd_size(char *filename)
|
||||
{
|
||||
struct stat stat_buf;
|
||||
int ret;
|
||||
|
||||
ret = fstat(fd, &stat_buf);
|
||||
ret = stat(filename, &stat_buf);
|
||||
if(ret != 0) {
|
||||
fprintf(stderr,"fstat returned %d on fd %d, errno: %d\n",
|
||||
ret, fd, errno);
|
||||
fprintf(stderr,"stat %s returned errno: %d\n",
|
||||
filename, errno);
|
||||
stat_buf.st_size = 0;
|
||||
}
|
||||
|
||||
|
@ -1647,18 +1642,18 @@ cfg_get_fd_size(int fd)
|
|||
}
|
||||
|
||||
int
|
||||
cfg_partition_read_block(int fd, void *buf, int blk, int blk_size)
|
||||
cfg_partition_read_block(FILE *file, void *buf, int blk, int blk_size)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = lseek(fd, blk * blk_size, SEEK_SET);
|
||||
if(ret != blk * blk_size) {
|
||||
printf("lseek: %08x, wanted: %08x, errno: %d\n", ret,
|
||||
ret = fseek(file, blk * blk_size, SEEK_SET);
|
||||
if(ret != 0) {
|
||||
printf("fseek: wanted: %08x, errno: %d\n",
|
||||
blk * blk_size, errno);
|
||||
return 0;
|
||||
}
|
||||
|
||||
ret = read(fd, (char *)buf, blk_size);
|
||||
ret = fread((char *)buf, 1, blk_size, file);
|
||||
if(ret != blk_size) {
|
||||
printf("ret: %08x, wanted %08x, errno: %d\n", ret, blk_size,
|
||||
errno);
|
||||
|
@ -1668,7 +1663,7 @@ cfg_partition_read_block(int fd, void *buf, int blk, int blk_size)
|
|||
}
|
||||
|
||||
int
|
||||
cfg_partition_find_by_name_or_num(int fd, const char *partnamestr, int part_num,
|
||||
cfg_partition_find_by_name_or_num(FILE *file, const char *partnamestr, int part_num,
|
||||
Disk *dsk)
|
||||
{
|
||||
Cfg_dirent *direntptr;
|
||||
|
@ -1676,7 +1671,7 @@ cfg_partition_find_by_name_or_num(int fd, const char *partnamestr, int part_num,
|
|||
int num_parts;
|
||||
int i;
|
||||
|
||||
num_parts = cfg_partition_make_list(fd);
|
||||
num_parts = cfg_partition_make_list(dsk->name_ptr, file);
|
||||
|
||||
if(num_parts <= 0) {
|
||||
return -1;
|
||||
|
@ -1711,7 +1706,7 @@ cfg_partition_find_by_name_or_num(int fd, const char *partnamestr, int part_num,
|
|||
}
|
||||
|
||||
int
|
||||
cfg_partition_make_list(int fd)
|
||||
cfg_partition_make_list(char *filename, FILE *file)
|
||||
{
|
||||
Driver_desc *driver_desc_ptr;
|
||||
Part_map *part_map_ptr;
|
||||
|
@ -1734,7 +1729,7 @@ cfg_partition_make_list(int fd)
|
|||
|
||||
blk_bufptr = (word32 *)malloc(MAX_PARTITION_BLK_SIZE);
|
||||
|
||||
cfg_partition_read_block(fd, blk_bufptr, 0, block_size);
|
||||
cfg_partition_read_block(file, blk_bufptr, 0, block_size);
|
||||
|
||||
driver_desc_ptr = (Driver_desc *)blk_bufptr;
|
||||
sig = GET_BE_WORD16(driver_desc_ptr->sig);
|
||||
|
@ -1751,13 +1746,13 @@ cfg_partition_make_list(int fd)
|
|||
|
||||
map_blks = 1;
|
||||
cur_blk = 0;
|
||||
size = cfg_get_fd_size(fd);
|
||||
size = cfg_get_fd_size(filename);
|
||||
cfg_file_add_dirent(&g_cfg_partitionlist, "None - Whole image",
|
||||
is_dir=0, size, 0, -1);
|
||||
|
||||
while(cur_blk < map_blks) {
|
||||
cur_blk++;
|
||||
cfg_partition_read_block(fd, blk_bufptr, cur_blk, block_size);
|
||||
cfg_partition_read_block(file, blk_bufptr, cur_blk, block_size);
|
||||
part_map_ptr = (Part_map *)blk_bufptr;
|
||||
sig = GET_BE_WORD16(part_map_ptr->sig);
|
||||
if(cur_blk <= 1) {
|
||||
|
@ -1809,16 +1804,16 @@ int
|
|||
cfg_maybe_insert_disk(int slot, int drive, const char *namestr)
|
||||
{
|
||||
int num_parts;
|
||||
int fd;
|
||||
FILE *file;
|
||||
|
||||
fd = open(namestr, O_RDONLY | O_BINARY, 0x1b6);
|
||||
if(fd < 0) {
|
||||
file = fopen(namestr, "rb");
|
||||
if(!file) {
|
||||
fatal_printf("Cannot open disk image: %s\n", namestr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
num_parts = cfg_partition_make_list(fd);
|
||||
close(fd);
|
||||
num_parts = cfg_partition_make_list((char*)namestr, file);
|
||||
fclose(file);
|
||||
|
||||
if(num_parts > 0) {
|
||||
printf("Choose a partition\n");
|
||||
|
|
|
@ -877,12 +877,9 @@ get_remaining_operands(word32 addr, word32 opcode, word32 psr, Fplus *fplus_ptr)
|
|||
check_breakpoints(addr); \
|
||||
} \
|
||||
if((addr & 0xfffff0) == 0x00c700) { \
|
||||
/* Removing this as it causes non-standard \
|
||||
booting behavior... \
|
||||
if(addr == 0xc700) { \
|
||||
FINISH(RET_C700, 0); \
|
||||
} else \
|
||||
*/ \
|
||||
if(addr == 0xc70a) { \
|
||||
FINISH(RET_C70A, 0); \
|
||||
} else if(addr == 0xc70d) { \
|
||||
|
|
26
src/iwm.c
26
src/iwm.c
|
@ -101,7 +101,7 @@ iwm_init_drive(Disk *dsk, int smartport, int drive, int disk_525)
|
|||
dsk->name_ptr = 0;
|
||||
dsk->partition_name = 0;
|
||||
dsk->partition_num = -1;
|
||||
dsk->fd = -1;
|
||||
dsk->file = 0;
|
||||
dsk->force_size = 0;
|
||||
dsk->image_start = 0;
|
||||
dsk->image_size = 0;
|
||||
|
@ -284,14 +284,14 @@ iwm_flush_disk_to_unix(Disk *dsk)
|
|||
break;
|
||||
}
|
||||
|
||||
ret = lseek(dsk->fd, unix_pos, SEEK_SET);
|
||||
if(ret != unix_pos) {
|
||||
halt_printf("lseek 525: %08x, errno: %d\n", ret, errno);
|
||||
ret = fseek(dsk->file, unix_pos, SEEK_SET);
|
||||
if(ret != 0) {
|
||||
halt_printf("fseek 525: errno: %d\n", errno);
|
||||
}
|
||||
|
||||
ret = write(dsk->fd, &(buffer[0]), unix_len);
|
||||
ret = fwrite(&(buffer[0]), 1, unix_len, dsk->file);
|
||||
if(ret != unix_len) {
|
||||
printf("write: %08x, errno:%d, qtrk: %02x, disk: %s\n",
|
||||
printf("fwrite: %08x, errno:%d, qtrk: %02x, disk: %s\n",
|
||||
ret, errno, j, dsk->name_ptr);
|
||||
}
|
||||
}
|
||||
|
@ -356,8 +356,8 @@ iwm_show_stats()
|
|||
iwm.drive_select, g_c031_disk35,
|
||||
iwm.iwm_phase[0], iwm.iwm_phase[1], iwm.iwm_phase[2],
|
||||
iwm.iwm_phase[3]);
|
||||
printf("iwm.drive525[0].fd: %d, [1].fd: %d\n",
|
||||
iwm.drive525[0].fd, iwm.drive525[1].fd);
|
||||
printf("iwm.drive525[0].file: %p, [1].file: %p\n",
|
||||
iwm.drive525[0].file, iwm.drive525[1].file);
|
||||
printf("iwm.drive525[0].last_phase: %d, [1].last_phase: %d\n",
|
||||
iwm.drive525[0].last_phase, iwm.drive525[1].last_phase);
|
||||
}
|
||||
|
@ -1730,14 +1730,14 @@ disk_unix_to_nib(Disk *dsk, int qtr_track, int unix_pos, int unix_len,
|
|||
}
|
||||
|
||||
if(unix_pos >= 0) {
|
||||
ret = lseek(dsk->fd, unix_pos, SEEK_SET);
|
||||
if(ret != unix_pos) {
|
||||
printf("lseek of disk %s len 0x%x ret: %d, errno: %d\n",
|
||||
dsk->name_ptr, unix_pos, ret, errno);
|
||||
ret = fseek(dsk->file, unix_pos, SEEK_SET);
|
||||
if(ret != 0) {
|
||||
printf("fseek of disk %s len 0x%x errno: %d\n",
|
||||
dsk->name_ptr, unix_pos, errno);
|
||||
must_clear_track = 1;
|
||||
}
|
||||
|
||||
len = read(dsk->fd, track_buf, unix_len);
|
||||
len = fread(track_buf, 1, unix_len, dsk->file);
|
||||
if(len != unix_len) {
|
||||
printf("read of disk %s q_trk %d ret: %d, errno: %d\n",
|
||||
dsk->name_ptr, qtr_track, ret, errno);
|
||||
|
|
|
@ -19,10 +19,6 @@
|
|||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifdef INCLUDE_RCSID_C
|
||||
const char rcsid_iwm_h[] = "@(#)$KmKId: iwm.h,v 1.14 2004-10-20 17:29:38-04 kentd Exp $";
|
||||
#endif
|
||||
|
||||
#define MAX_TRACKS (2*80)
|
||||
#define MAX_C7_DISKS 32
|
||||
|
||||
|
@ -50,7 +46,7 @@ struct _Disk {
|
|||
char *name_ptr;
|
||||
char *partition_name;
|
||||
int partition_num;
|
||||
int fd;
|
||||
FILE *file;
|
||||
int force_size;
|
||||
int image_start;
|
||||
int image_size;
|
||||
|
|
|
@ -19,10 +19,6 @@
|
|||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifdef INCLUDE_IWM_RCSID_C
|
||||
const char rcsdif_iwm_35_525_h[] = "@(#)$KmKId: iwm_35_525.h,v 1.14 2004-12-01 19:45:02-05 kentd Exp $";
|
||||
#endif
|
||||
|
||||
int
|
||||
IWM_READ_ROUT (Disk *dsk, int fast_disk_emul, double dcycs)
|
||||
{
|
||||
|
@ -238,9 +234,9 @@ IWM_WRITE_ROUT (Disk *dsk, word32 val, int fast_disk_emul, double dcycs)
|
|||
int sdiff;
|
||||
int prev_bits;
|
||||
|
||||
if(dsk->fd < 0 || dsk->trks == 0) {
|
||||
halt_printf("Tried to write to type: %d, drive: %d, fd: %d!\n",
|
||||
IWM_DISK_525, dsk->drive, dsk->fd, dsk->trks);
|
||||
if((!dsk->file) || dsk->trks == 0) {
|
||||
halt_printf("Tried to write to type: %d, drive: %d!\n",
|
||||
IWM_DISK_525, dsk->drive, dsk->trks);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
12
src/protos.h
12
src/protos.h
|
@ -19,10 +19,6 @@
|
|||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifdef INCLUDE_RCSID_C
|
||||
const char rcsid_protos_h[] = "@(#)$KmKId: protos.h,v 1.188 2004-12-06 19:08:34-05 kentd Exp $";
|
||||
#endif
|
||||
|
||||
/* xdriver.c and macdriver.c and windriver.c */
|
||||
int x_show_alert(int is_fatal, const char *str);
|
||||
int win_nonblock_read_stdin(int fd, char *bufptr, int len);
|
||||
|
@ -174,12 +170,12 @@ void insert_disk(int slot, int drive, const char *name, int ejected, int force_s
|
|||
void eject_named_disk(Disk *dsk, const char *name, const char *partition_name);
|
||||
void eject_disk_by_num(int slot, int drive);
|
||||
void eject_disk(Disk *dsk);
|
||||
int cfg_get_fd_size(int fd);
|
||||
int cfg_partition_read_block(int fd, void *buf, int blk, int blk_size);
|
||||
int cfg_partition_find_by_name_or_num(int fd, const char *partnamestr, int part_num, Disk *dsk);
|
||||
int cfg_partition_make_list(int fd);
|
||||
int cfg_get_fd_size(char *filename);
|
||||
int cfg_partition_read_block(FILE *file, void *buf, int blk, int blk_size);
|
||||
int cfg_partition_find_by_name_or_num(FILE *file, const char *partnamestr, int part_num, Disk *dsk);
|
||||
int cfg_maybe_insert_disk(int slot, int drive, const char *namestr);
|
||||
int cfg_stat(char *path, struct stat *sb);
|
||||
int cfg_partition_make_list(char *filename, FILE *file);
|
||||
void cfg_htab_vtab(int x, int y);
|
||||
void cfg_home(void);
|
||||
void cfg_cleol(void);
|
||||
|
|
|
@ -218,7 +218,7 @@ do_c70d(word32 arg0)
|
|||
return;
|
||||
} else if(unit > 0 && status_code == 0) {
|
||||
/* status for unit x */
|
||||
if(unit > MAX_C7_DISKS || iwm.smartport[unit-1].fd < 0){
|
||||
if(unit > MAX_C7_DISKS || (!iwm.smartport[unit-1].file)){
|
||||
stat_val = 0x80;
|
||||
size = 0;
|
||||
} else {
|
||||
|
@ -242,7 +242,7 @@ do_c70d(word32 arg0)
|
|||
disk_printf("just finished unit %d, stat 0\n", unit);
|
||||
return;
|
||||
} else if(status_code == 3) {
|
||||
if(unit > MAX_C7_DISKS || iwm.smartport[unit-1].fd < 0){
|
||||
if(unit > MAX_C7_DISKS || (!iwm.smartport[unit-1].file)){
|
||||
stat_val = 0x80;
|
||||
size = 0;
|
||||
} else {
|
||||
|
@ -535,8 +535,8 @@ do_read_c7(int unit_num, word32 buf, int blk)
|
|||
register word32 start_time;
|
||||
register word32 end_time;
|
||||
word32 val;
|
||||
FILE *file;
|
||||
int len;
|
||||
int fd;
|
||||
int image_start;
|
||||
int image_size;
|
||||
int ret;
|
||||
|
@ -548,11 +548,11 @@ do_read_c7(int unit_num, word32 buf, int blk)
|
|||
return 0x28;
|
||||
}
|
||||
|
||||
fd = iwm.smartport[unit_num].fd;
|
||||
file = iwm.smartport[unit_num].file;
|
||||
image_start = iwm.smartport[unit_num].image_start;
|
||||
image_size = iwm.smartport[unit_num].image_size;
|
||||
if(fd < 0) {
|
||||
printf("c7_fd == %d!\n", fd);
|
||||
if(!file) {
|
||||
printf("c7_file is null!\n");
|
||||
#if 0
|
||||
if(blk != 2 && blk != 0) {
|
||||
/* don't print error if only reading directory */
|
||||
|
@ -563,23 +563,23 @@ do_read_c7(int unit_num, word32 buf, int blk)
|
|||
return 0x2f;
|
||||
}
|
||||
|
||||
ret = lseek(fd, image_start + blk*0x200, SEEK_SET);
|
||||
if(ret != image_start + blk*0x200) {
|
||||
halt_printf("lseek returned %08x, errno: %d\n", ret, errno);
|
||||
ret = fseek(file, image_start + blk*0x200, SEEK_SET);
|
||||
if(ret != 0) {
|
||||
halt_printf("fseek errno: %d\n", errno);
|
||||
smartport_error();
|
||||
return 0x27;
|
||||
}
|
||||
|
||||
if(ret >= image_start + image_size) {
|
||||
if(image_start + blk*0x200 > image_start + image_size) {
|
||||
halt_printf("Tried to read from pos %08x on disk, (blk:%04x)\n",
|
||||
ret, blk);
|
||||
image_start + blk*0x200, blk);
|
||||
smartport_error();
|
||||
return 0x27;
|
||||
}
|
||||
|
||||
len = read(fd, &local_buf[0], 0x200);
|
||||
len = fread(&local_buf[0], 1, 0x200, file);
|
||||
if(len != 0x200) {
|
||||
printf("read returned %08x, errno:%d, blk:%04x, unit: %02x\n",
|
||||
printf("fread returned %08x, errno:%d, blk:%04x, unit: %02x\n",
|
||||
len, errno, blk, unit_num);
|
||||
halt_printf("name: %s\n", iwm.smartport[unit_num].name_ptr);
|
||||
smartport_error();
|
||||
|
@ -616,9 +616,9 @@ do_write_c7(int unit_num, word32 buf, int blk)
|
|||
word32 *ptr;
|
||||
word32 val1, val2;
|
||||
word32 val;
|
||||
FILE *file;
|
||||
int len;
|
||||
int ret;
|
||||
int fd;
|
||||
int image_start;
|
||||
int image_size;
|
||||
int i;
|
||||
|
@ -630,11 +630,11 @@ do_write_c7(int unit_num, word32 buf, int blk)
|
|||
}
|
||||
|
||||
dsk = &(iwm.smartport[unit_num]);
|
||||
fd = dsk->fd;
|
||||
file = dsk->file;
|
||||
image_start = dsk->image_start;
|
||||
image_size = dsk->image_size;
|
||||
if(fd < 0) {
|
||||
halt_printf("c7_fd == %d!\n", fd);
|
||||
if(!file) {
|
||||
halt_printf("c7_file is null!\n");
|
||||
smartport_error();
|
||||
return 0x28;
|
||||
}
|
||||
|
@ -653,14 +653,14 @@ do_write_c7(int unit_num, word32 buf, int blk)
|
|||
*ptr++ = val;
|
||||
}
|
||||
|
||||
ret = lseek(fd, image_start + blk*0x200, SEEK_SET);
|
||||
if(ret != image_start + blk*0x200) {
|
||||
halt_printf("lseek returned %08x, errno: %d\n", ret, errno);
|
||||
ret = fseek(file, image_start + blk*0x200, SEEK_SET);
|
||||
if(ret != 0) {
|
||||
halt_printf("fseek errno: %d\n", errno);
|
||||
smartport_error();
|
||||
return 0x27;
|
||||
}
|
||||
|
||||
if(ret >= image_start + image_size) {
|
||||
if(image_start + blk*0x200 > image_start + image_size) {
|
||||
halt_printf("Tried to write to %08x\n", ret);
|
||||
smartport_error();
|
||||
return 0x27;
|
||||
|
@ -676,9 +676,9 @@ do_write_c7(int unit_num, word32 buf, int blk)
|
|||
return 0x00;
|
||||
}
|
||||
|
||||
len = write(fd, (byte *)&local_buf[0], 0x200);
|
||||
len = fwrite((byte *)&local_buf[0], 1, 0x200, file);
|
||||
if(len != 0x200) {
|
||||
halt_printf("write ret %08x bytes, errno: %d\n", len, errno);
|
||||
halt_printf("fwrite ret %08x bytes, errno: %d\n", len, errno);
|
||||
smartport_error();
|
||||
return 0x27;
|
||||
}
|
||||
|
@ -694,6 +694,7 @@ do_format_c7(int unit_num)
|
|||
{
|
||||
byte local_buf[0x1000];
|
||||
Disk *dsk;
|
||||
FILE *file;
|
||||
int len;
|
||||
int ret;
|
||||
int sum;
|
||||
|
@ -701,7 +702,6 @@ do_format_c7(int unit_num)
|
|||
int max;
|
||||
int image_start;
|
||||
int image_size;
|
||||
int fd;
|
||||
int i;
|
||||
|
||||
if(unit_num < 0 || unit_num > MAX_C7_DISKS) {
|
||||
|
@ -711,11 +711,11 @@ do_format_c7(int unit_num)
|
|||
}
|
||||
|
||||
dsk = &(iwm.smartport[unit_num]);
|
||||
fd = dsk->fd;
|
||||
file = dsk->file;
|
||||
image_start = dsk->image_start;
|
||||
image_size = dsk->image_size;
|
||||
if(fd < 0) {
|
||||
halt_printf("c7_fd == %d!\n", fd);
|
||||
if(!file) {
|
||||
halt_printf("c7_file is null!\n");
|
||||
smartport_error();
|
||||
return 0x28;
|
||||
}
|
||||
|
@ -724,9 +724,9 @@ do_format_c7(int unit_num)
|
|||
local_buf[i] = 0;
|
||||
}
|
||||
|
||||
ret = lseek(fd, image_start, SEEK_SET);
|
||||
if(ret != image_start) {
|
||||
halt_printf("lseek returned %08x, errno: %d\n", ret, errno);
|
||||
ret = fseek(file, image_start, SEEK_SET);
|
||||
if(ret != 0) {
|
||||
halt_printf("fseek errno: %d\n", errno);
|
||||
smartport_error();
|
||||
return 0x27;
|
||||
}
|
||||
|
@ -746,7 +746,7 @@ do_format_c7(int unit_num)
|
|||
|
||||
while(sum < total) {
|
||||
max = MIN(0x1000, total-sum);
|
||||
len = write(fd, &local_buf[0], max);
|
||||
len = fwrite(&local_buf[0], 1, max, file);
|
||||
if(len != max) {
|
||||
halt_printf("write ret %08x, errno:%d\n", len, errno);
|
||||
smartport_error();
|
||||
|
|
|
@ -19,8 +19,6 @@
|
|||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
const char rcsid_sound_c[] = "@(#)$KmKId: sound.c,v 1.108 2004-10-31 00:56:07-04 kentd Exp $";
|
||||
|
||||
#include "defc.h"
|
||||
|
||||
#define INCLUDE_RCSID_C
|
||||
|
@ -248,7 +246,7 @@ sound_init()
|
|||
void
|
||||
sound_init_general()
|
||||
{
|
||||
#if !defined(_WIN32) && !defined(__CYGWIN__) && !defined(MAC)
|
||||
#if !defined(_WIN32) && !defined(__CYGWIN__) && !defined(MAC) && !defined(__OS2__)
|
||||
int pid;
|
||||
int shmid;
|
||||
int tmp;
|
||||
|
@ -258,7 +256,7 @@ sound_init_general()
|
|||
int size;
|
||||
int ret;
|
||||
|
||||
#if !defined(_WIN32) && !defined(__CYGWIN__) && !defined(MAC)
|
||||
#if !defined(_WIN32) && !defined(__CYGWIN__) && !defined(MAC) && !defined(__OS2__)
|
||||
if(!g_use_shmem) {
|
||||
if(g_audio_enable < 0) {
|
||||
printf("Defaulting audio off for slow X display\n");
|
||||
|
@ -425,6 +423,7 @@ sound_shutdown()
|
|||
{
|
||||
#ifdef _WIN32
|
||||
win32snd_shutdown();
|
||||
#elif defined(__OS2__)
|
||||
#else
|
||||
if((g_audio_enable != 0) && g_pipe_fd[1] != 0) {
|
||||
close(g_pipe_fd[1]);
|
||||
|
@ -611,6 +610,8 @@ send_sound(int real_samps, int size)
|
|||
#if defined(MAC) || defined(_WIN32)
|
||||
ret = 0;
|
||||
child_sound_playit(tmp);
|
||||
#elif defined(__OS2__)
|
||||
|
||||
#else
|
||||
/* Although this looks like a big/little-endian issue, since the */
|
||||
/* child is also reading an int, it just works with no byte swap */
|
||||
|
|
|
@ -19,8 +19,6 @@
|
|||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
const char rcsid_sound_driver_c[] = "@(#)$KmKId: sound_driver.c,v 1.17 2004-09-21 10:37:15-04 kentd Exp $";
|
||||
|
||||
#include "defc.h"
|
||||
#include "sound.h"
|
||||
|
||||
|
|
Loading…
Reference in New Issue