Fixing many compiler identified nits.

This commit is contained in:
Mark Pizzolato 2012-04-18 09:48:04 -07:00
parent 3836306446
commit 5f505ccadf
15 changed files with 592 additions and 574 deletions

View file

@ -589,7 +589,7 @@ static t_bool readCardASCII ( FILE *fp,
char *ccard, char *ccard,
char *acard ) char *acard )
{ {
int c, col; int c = 0, col;
assert (colStart < colEnd); assert (colStart < colEnd);
assert (colStart >= 1); assert (colStart >= 1);

View file

@ -157,7 +157,7 @@ uint32 dz_rxi = 0; /* rcv interrupts */
uint32 dz_txi = 0; /* xmt interrupts */ uint32 dz_txi = 0; /* xmt interrupts */
int32 dz_mctl = 0; /* modem ctrl enabled */ int32 dz_mctl = 0; /* modem ctrl enabled */
int32 dz_auto = 0; /* autodiscon enabled */ int32 dz_auto = 0; /* autodiscon enabled */
TMLN dz_ldsc[DZ_MUXES * DZ_LINES] = { 0 }; /* line descriptors */ TMLN dz_ldsc[DZ_MUXES * DZ_LINES] = { {0} }; /* line descriptors */
TMXR dz_desc = { DZ_MUXES * DZ_LINES, 0, 0, dz_ldsc }; /* mux descriptor */ TMXR dz_desc = { DZ_MUXES * DZ_LINES, 0, 0, dz_ldsc }; /* mux descriptor */
/* debugging bitmaps */ /* debugging bitmaps */

View file

@ -219,7 +219,7 @@ return show_vec (st, uptr, ((mp->lines * 2) / arg), desc);
void init_ubus_tab (void) void init_ubus_tab (void)
{ {
int32 i, j; size_t i, j;
for (i = 0; i < IPL_HLVL; i++) { /* clear intr tab */ for (i = 0; i < IPL_HLVL; i++) { /* clear intr tab */
for (j = 0; j < 32; j++) { for (j = 0; j < 32; j++) {

View file

@ -2110,6 +2110,7 @@ return rq_putpkt (cp, pkt, TRUE);
t_bool rq_deqf (MSC *cp, int32 *pkt) t_bool rq_deqf (MSC *cp, int32 *pkt)
{ {
*pkt = 0;
if (cp->freq == 0) /* no free pkts?? */ if (cp->freq == 0) /* no free pkts?? */
return rq_fatal (cp, PE_NSR); return rq_fatal (cp, PE_NSR);
cp->pbsy = cp->pbsy + 1; /* cnt busy pkts */ cp->pbsy = cp->pbsy + 1; /* cnt busy pkts */
@ -2160,6 +2161,7 @@ t_bool rq_getpkt (MSC *cp, int32 *pkt)
{ {
uint32 addr, desc; uint32 addr, desc;
*pkt = 0;
if (!rq_getdesc (cp, &cp->cq, &desc)) /* get cmd desc */ if (!rq_getdesc (cp, &cp->cq, &desc)) /* get cmd desc */
return ERR; return ERR;
if ((desc & UQ_DESC_OWN) == 0) { /* none */ if ((desc & UQ_DESC_OWN) == 0) { /* none */
@ -2222,6 +2224,7 @@ t_bool rq_getdesc (MSC *cp, struct uq_ring *ring, uint32 *desc)
uint32 addr = ring->ba + ring->idx; uint32 addr = ring->ba + ring->idx;
uint16 d[2]; uint16 d[2];
*desc = 0;
if (Map_ReadW (addr, 4, d)) /* fetch desc */ if (Map_ReadW (addr, 4, d)) /* fetch desc */
return rq_fatal (cp, PE_QRE); /* err? dead */ return rq_fatal (cp, PE_QRE); /* err? dead */
*desc = ((uint32) d[0]) | (((uint32) d[1]) << 16); *desc = ((uint32) d[0]) | (((uint32) d[1]) << 16);

View file

@ -606,7 +606,7 @@ void xq_make_checksum(CTLR* xq)
/* checksum calculation routine detailed in vaxboot.zip/xqbtdrivr.mar */ /* checksum calculation routine detailed in vaxboot.zip/xqbtdrivr.mar */
uint32 checksum = 0; uint32 checksum = 0;
const uint32 wmask = 0xFFFF; const uint32 wmask = 0xFFFF;
int i; size_t i;
for (i = 0; i < sizeof(ETH_MAC); i += 2) { for (i = 0; i < sizeof(ETH_MAC); i += 2) {
checksum <<= 1; checksum <<= 1;
@ -685,7 +685,7 @@ t_stat xq_show_filters (FILE* st, UNIT* uptr, int32 val, void* desc)
{ {
CTLR* xq = xq_unit2ctlr(uptr); CTLR* xq = xq_unit2ctlr(uptr);
char buffer[20]; char buffer[20];
int i; size_t i;
if (xq->var->mode == XQ_T_DELQA_PLUS) { if (xq->var->mode == XQ_T_DELQA_PLUS) {
eth_mac_fmt(&xq->var->init.phys, buffer); eth_mac_fmt(&xq->var->init.phys, buffer);
@ -2803,7 +2803,7 @@ void xq_debug_setup(CTLR* xq)
void xq_debug_turbo_setup(CTLR* xq) void xq_debug_turbo_setup(CTLR* xq)
{ {
int i; size_t i;
char buffer[64] = ""; char buffer[64] = "";
if (!(sim_deb && (xq->dev->dctrl & DBG_SET))) if (!(sim_deb && (xq->dev->dctrl & DBG_SET)))

View file

@ -536,7 +536,7 @@ return;
void zap_tb (int stb) void zap_tb (int stb)
{ {
int32 i; size_t i;
for (i = 0; i < VA_TBSIZE; i++) { for (i = 0; i < VA_TBSIZE; i++) {
ptlb[i].tag = ptlb[i].pte = -1; ptlb[i].tag = ptlb[i].pte = -1;
@ -577,7 +577,7 @@ return FALSE;
t_stat tlb_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw) t_stat tlb_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw)
{ {
int32 tlbn = uptr - tlb_unit; int32 tlbn = uptr - tlb_unit;
int32 idx = (uint32) addr >> 1; uint32 idx = (uint32) addr >> 1;
if (idx >= VA_TBSIZE) if (idx >= VA_TBSIZE)
return SCPE_NXM; return SCPE_NXM;
@ -592,7 +592,7 @@ return SCPE_OK;
t_stat tlb_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw) t_stat tlb_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw)
{ {
int32 tlbn = uptr - tlb_unit; int32 tlbn = uptr - tlb_unit;
int32 idx = (uint32) addr >> 1; uint32 idx = (uint32) addr >> 1;
if (idx >= VA_TBSIZE) if (idx >= VA_TBSIZE)
return SCPE_NXM; return SCPE_NXM;
@ -611,7 +611,7 @@ return SCPE_OK;
t_stat tlb_reset (DEVICE *dptr) t_stat tlb_reset (DEVICE *dptr)
{ {
int32 i; size_t i;
for (i = 0; i < VA_TBSIZE; i++) for (i = 0; i < VA_TBSIZE; i++)
stlb[i].tag = ptlb[i].tag = stlb[i].pte = ptlb[i].pte = -1; stlb[i].tag = ptlb[i].tag = stlb[i].pte = ptlb[i].pte = -1;

File diff suppressed because it is too large Load diff

View file

@ -409,8 +409,8 @@ DEVICE cso_dev = {
*/ */
DIB sysd_dib[] = { DIB sysd_dib[] = {
0, 0, NULL, NULL, {0, 0, NULL, NULL,
2, IVCL (TMR0), 0, { &tmr0_inta, &tmr1_inta } 2, IVCL (TMR0), 0, { &tmr0_inta, &tmr1_inta } }
}; };
UNIT sysd_unit[] = { UNIT sysd_unit[] = {

2
scp.h
View file

@ -135,7 +135,7 @@ void sim_debug (uint32 dbits, DEVICE* dptr, const char* fmt, ...);
#else #else
void _sim_debug (uint32 dbits, DEVICE* dptr, const char* fmt, ...); void _sim_debug (uint32 dbits, DEVICE* dptr, const char* fmt, ...);
extern FILE *sim_deb; /* debug file */ extern FILE *sim_deb; /* debug file */
#define sim_debug(dbits, dptr, ...) if (sim_deb && ((dptr)->dctrl & dbits)) _sim_debug (dbits, dptr, __VA_ARGS__); else 0 #define sim_debug(dbits, dptr, ...) if (sim_deb && ((dptr)->dctrl & dbits)) _sim_debug (dbits, dptr, __VA_ARGS__); else (void)0
#endif #endif
void fprint_stopped_gen (FILE *st, t_stat v, REG *pc, DEVICE *dptr); void fprint_stopped_gen (FILE *st, t_stat v, REG *pc, DEVICE *dptr);

View file

@ -55,7 +55,7 @@
int sim_make_ROM_include(const char *rom_filename, int sim_make_ROM_include(const char *rom_filename,
int expected_size, int expected_size,
int expected_checksum, unsigned int expected_checksum,
const char *include_filename, const char *include_filename,
const char *rom_array_name) const char *rom_array_name)
{ {
@ -86,7 +86,7 @@ if (statb.st_size != expected_size) {
return -1; return -1;
} }
ROMData = malloc (statb.st_size); ROMData = malloc (statb.st_size);
if (statb.st_size != fread (ROMData, sizeof(*ROMData), statb.st_size, rFile)) { if ((size_t)(statb.st_size) != fread (ROMData, sizeof(*ROMData), statb.st_size, rFile)) {
printf ("Error reading '%s': %s\n", rom_filename, strerror(errno)); printf ("Error reading '%s': %s\n", rom_filename, strerror(errno));
fclose (rFile); fclose (rFile);
free (ROMData); free (ROMData);
@ -116,7 +116,7 @@ if (iFile = fopen (include_filename, "r")) {
IncludeData = malloc (statb.st_size); IncludeData = malloc (statb.st_size);
while (fgets (line, sizeof(line), iFile)) { while (fgets (line, sizeof(line), iFile)) {
int byte; unsigned int byte;
char *c; char *c;
if (memcmp ("0x",line,2)) if (memcmp ("0x",line,2))

View file

@ -634,7 +634,7 @@ extern int32 sim_asynch_inst_latency;
if (uptr->a_check_completion) \ if (uptr->a_check_completion) \
uptr->a_check_completion (uptr); \ uptr->a_check_completion (uptr); \
} \ } \
} else 0 } else (void)0
#define AIO_ACTIVATE(caller, uptr, event_time) \ #define AIO_ACTIVATE(caller, uptr, event_time) \
if (!pthread_equal ( pthread_self(), sim_asynch_main_threadid )) { \ if (!pthread_equal ( pthread_self(), sim_asynch_main_threadid )) { \
if (uptr->a_next) { \ if (uptr->a_next) { \
@ -659,7 +659,7 @@ extern int32 sim_asynch_inst_latency;
if (sim_idle_wait) \ if (sim_idle_wait) \
pthread_cond_signal (&sim_asynch_wake); \ pthread_cond_signal (&sim_asynch_wake); \
return SCPE_OK; \ return SCPE_OK; \
} else 0 } else (void)0
#else /* !USE_AIO_INTRINSICS */ #else /* !USE_AIO_INTRINSICS */
/* This approach uses a pthread mutex to manage access to the link list */ /* This approach uses a pthread mutex to manage access to the link list */
/* head sim_asynch_queue. It will always work, but may be slower than the */ /* head sim_asynch_queue. It will always work, but may be slower than the */
@ -688,7 +688,7 @@ extern int32 sim_asynch_inst_latency;
} \ } \
} \ } \
pthread_mutex_unlock (&sim_asynch_lock); \ pthread_mutex_unlock (&sim_asynch_lock); \
} else 0 } else (void)0
#define AIO_ACTIVATE(caller, uptr, event_time) \ #define AIO_ACTIVATE(caller, uptr, event_time) \
if (!pthread_equal ( pthread_self(), sim_asynch_main_threadid )) { \ if (!pthread_equal ( pthread_self(), sim_asynch_main_threadid )) { \
pthread_mutex_lock (&sim_asynch_lock); \ pthread_mutex_lock (&sim_asynch_lock); \
@ -704,20 +704,20 @@ extern int32 sim_asynch_inst_latency;
pthread_cond_signal (&sim_asynch_wake); \ pthread_cond_signal (&sim_asynch_wake); \
pthread_mutex_unlock (&sim_asynch_lock); \ pthread_mutex_unlock (&sim_asynch_lock); \
return SCPE_OK; \ return SCPE_OK; \
} else 0 } else (void)0
#endif /* USE_AIO_INTRINSICS */ #endif /* USE_AIO_INTRINSICS */
#define AIO_VALIDATE if (!pthread_equal ( pthread_self(), sim_asynch_main_threadid )) abort() #define AIO_VALIDATE if (!pthread_equal ( pthread_self(), sim_asynch_main_threadid )) abort()
#define AIO_CHECK_EVENT \ #define AIO_CHECK_EVENT \
if (0 > --sim_asynch_check) { \ if (0 > --sim_asynch_check) { \
AIO_UPDATE_QUEUE; \ AIO_UPDATE_QUEUE; \
sim_asynch_check = sim_asynch_inst_latency; \ sim_asynch_check = sim_asynch_inst_latency; \
} else 0 } else (void)0
#define AIO_SET_INTERRUPT_LATENCY(instpersec) \ #define AIO_SET_INTERRUPT_LATENCY(instpersec) \
if (1) { \ if (1) { \
sim_asynch_inst_latency = (int32)((((double)(instpersec))*sim_asynch_latency)/1000000000);\ sim_asynch_inst_latency = (int32)((((double)(instpersec))*sim_asynch_latency)/1000000000);\
if (sim_asynch_inst_latency == 0) \ if (sim_asynch_inst_latency == 0) \
sim_asynch_inst_latency = 1; \ sim_asynch_inst_latency = 1; \
} else 0 } else (void)0
#else /* !SIM_ASYNCH_IO */ #else /* !SIM_ASYNCH_IO */
#define AIO_UPDATE_QUEUE #define AIO_UPDATE_QUEUE
#define AIO_ACTIVATE(caller, uptr, event_time) #define AIO_ACTIVATE(caller, uptr, event_time)

View file

@ -301,7 +301,8 @@ return SCPE_ARG;
t_stat sim_disk_show_fmt (FILE *st, UNIT *uptr, int32 val, void *desc) t_stat sim_disk_show_fmt (FILE *st, UNIT *uptr, int32 val, void *desc)
{ {
int32 i, f = DK_GET_FMT (uptr); int32 f = DK_GET_FMT (uptr);
size_t i;
for (i = 0; i < DKUF_N_FMT; i++) for (i = 0; i < DKUF_N_FMT; i++)
if (fmts[i].fmtval == f) { if (fmts[i].fmtval == f) {
@ -1044,6 +1045,8 @@ switch (DK_GET_FMT (uptr)) { /* case on format */
case DKUF_F_RAW: /* Physical */ case DKUF_F_RAW: /* Physical */
close_function = sim_os_disk_close_raw; close_function = sim_os_disk_close_raw;
break; break;
default:
return SCPE_IERR;
} }
if (!(uptr->flags & UNIT_ATTABLE)) /* attachable? */ if (!(uptr->flags & UNIT_ATTABLE)) /* attachable? */
return SCPE_NOATT; return SCPE_NOATT;
@ -2182,6 +2185,8 @@ static t_stat ReadFilePosition(FILE *File, void *buf, size_t bufsize, size_t *by
uint32 err = sim_fseek (File, (t_addr)position, SEEK_SET); uint32 err = sim_fseek (File, (t_addr)position, SEEK_SET);
size_t i; size_t i;
if (bytesread)
*bytesread = 0;
if (!err) { if (!err) {
i = fread (buf, 1, bufsize, File); i = fread (buf, 1, bufsize, File);
err = ferror (File); err = ferror (File);
@ -2196,6 +2201,8 @@ static t_stat WriteFilePosition(FILE *File, void *buf, size_t bufsize, size_t *b
uint32 err = sim_fseek (File, (t_addr)position, SEEK_SET); uint32 err = sim_fseek (File, (t_addr)position, SEEK_SET);
size_t i; size_t i;
if (byteswritten)
*byteswritten = 0;
if (!err) { if (!err) {
i = fwrite (buf, 1, bufsize, File); i = fwrite (buf, 1, bufsize, File);
err = ferror (File); err = ferror (File);
@ -2635,9 +2642,9 @@ RPC_STATUS
(RPC_ENTRY *UuidCreate_c) (void *); (RPC_ENTRY *UuidCreate_c) (void *);
if (!UuidCreate_c) { if (!UuidCreate_c) {
HINSTANCE hDll; HMODULE hDll;
hDll = LoadLibraryA("rpcrt4.dll"); hDll = LoadLibraryA("rpcrt4.dll");
UuidCreate_c = (void *)GetProcAddress(hDll, "UuidCreate"); UuidCreate_c = (RPC_STATUS (RPC_ENTRY *) (void *))GetProcAddress(hDll, "UuidCreate");
} }
if (UuidCreate_c) if (UuidCreate_c)
UuidCreate_c(uuidaddr); UuidCreate_c(uuidaddr);

View file

@ -375,7 +375,7 @@ extern FILE *sim_log;
t_stat eth_mac_scan (ETH_MAC* mac, char* strmac) t_stat eth_mac_scan (ETH_MAC* mac, char* strmac)
{ {
int a0, a1, a2, a3, a4, a5; unsigned int a0, a1, a2, a3, a4, a5;
const ETH_MAC zeros = {0,0,0,0,0,0}; const ETH_MAC zeros = {0,0,0,0,0,0};
const ETH_MAC ones = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; const ETH_MAC ones = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
ETH_MAC newmac; ETH_MAC newmac;
@ -881,11 +881,13 @@ static int (*p_pcap_setfilter) (pcap_t *, struct bpf_program *);
static char* (*p_pcap_lib_version) (void); static char* (*p_pcap_lib_version) (void);
/* load function pointer from DLL */ /* load function pointer from DLL */
void load_function(char* function, void** func_ptr) { typedef int (*_func)();
void load_function(char* function, _func* func_ptr) {
#ifdef _WIN32 #ifdef _WIN32
*func_ptr = GetProcAddress(hLib, function); *func_ptr = (_func)GetProcAddress(hLib, function);
#else #else
*func_ptr = dlsym(hLib, function); *func_ptr = (_func)dlsym(hLib, function);
#endif #endif
if (*func_ptr == 0) { if (*func_ptr == 0) {
char* msg = "Eth: Failed to find function '%s' in %s\r\n"; char* msg = "Eth: Failed to find function '%s' in %s\r\n";
@ -930,28 +932,28 @@ int load_pcap(void) {
} }
/* load required functions; sets dll_load=3 on error */ /* load required functions; sets dll_load=3 on error */
load_function("pcap_close", (void**) &p_pcap_close); load_function("pcap_close", (_func *) &p_pcap_close);
load_function("pcap_compile", (void**) &p_pcap_compile); load_function("pcap_compile", (_func *) &p_pcap_compile);
load_function("pcap_datalink", (void**) &p_pcap_datalink); load_function("pcap_datalink", (_func *) &p_pcap_datalink);
load_function("pcap_dispatch", (void**) &p_pcap_dispatch); load_function("pcap_dispatch", (_func *) &p_pcap_dispatch);
load_function("pcap_findalldevs", (void**) &p_pcap_findalldevs); load_function("pcap_findalldevs", (_func *) &p_pcap_findalldevs);
load_function("pcap_freealldevs", (void**) &p_pcap_freealldevs); load_function("pcap_freealldevs", (_func *) &p_pcap_freealldevs);
load_function("pcap_freecode", (void**) &p_pcap_freecode); load_function("pcap_freecode", (_func *) &p_pcap_freecode);
load_function("pcap_geterr", (void**) &p_pcap_geterr); load_function("pcap_geterr", (_func *) &p_pcap_geterr);
load_function("pcap_lookupnet", (void**) &p_pcap_lookupnet); load_function("pcap_lookupnet", (_func *) &p_pcap_lookupnet);
load_function("pcap_open_live", (void**) &p_pcap_open_live); load_function("pcap_open_live", (_func *) &p_pcap_open_live);
#ifdef _WIN32 #ifdef _WIN32
load_function("pcap_setmintocopy", (void**) &p_pcap_setmintocopy); load_function("pcap_setmintocopy", (_func *) &p_pcap_setmintocopy);
load_function("pcap_getevent", (void**) &p_pcap_getevent); load_function("pcap_getevent", (_func *) &p_pcap_getevent);
#else #else
#ifdef MUST_DO_SELECT #ifdef MUST_DO_SELECT
load_function("pcap_get_selectable_fd", (void**) &p_pcap_get_selectable_fd); load_function("pcap_get_selectable_fd", (_func *) &p_pcap_get_selectable_fd);
#endif #endif
load_function("pcap_fileno", (void**) &p_pcap_fileno); load_function("pcap_fileno", (_func *) &p_pcap_fileno);
#endif #endif
load_function("pcap_sendpacket", (void**) &p_pcap_sendpacket); load_function("pcap_sendpacket", (_func *) &p_pcap_sendpacket);
load_function("pcap_setfilter", (void**) &p_pcap_setfilter); load_function("pcap_setfilter", (_func *) &p_pcap_setfilter);
load_function("pcap_lib_version", (void**) &p_pcap_lib_version); load_function("pcap_lib_version", (_func *) &p_pcap_lib_version);
if (lib_loaded == 1) { if (lib_loaded == 1) {
/* log successful load */ /* log successful load */
@ -1147,7 +1149,7 @@ static int pcap_mac_if_win32(char *AdapterName, unsigned char MACAddress[6])
int Status; int Status;
int ReturnValue; int ReturnValue;
#ifdef _WIN32 #ifdef _WIN32
HINSTANCE hDll; /* handle to DLL */ HMODULE hDll; /* handle to DLL */
#else #else
static void *hDll = NULL; /* handle to Library */ static void *hDll = NULL; /* handle to Library */
typedef int BOOLEAN; typedef int BOOLEAN;
@ -1158,14 +1160,14 @@ static int pcap_mac_if_win32(char *AdapterName, unsigned char MACAddress[6])
#ifdef _WIN32 #ifdef _WIN32
hDll = LoadLibraryA("packet.dll"); hDll = LoadLibraryA("packet.dll");
p_PacketOpenAdapter = (void *)GetProcAddress(hDll, "PacketOpenAdapter"); p_PacketOpenAdapter = (LPADAPTER (*)(char *AdapterName))GetProcAddress(hDll, "PacketOpenAdapter");
p_PacketCloseAdapter = (void *)GetProcAddress(hDll, "PacketCloseAdapter"); p_PacketCloseAdapter = (void (*)(LPADAPTER lpAdapter))GetProcAddress(hDll, "PacketCloseAdapter");
p_PacketRequest = (void *)GetProcAddress(hDll, "PacketRequest"); p_PacketRequest = (int (*)(LPADAPTER AdapterObject,BOOLEAN Set,PPACKET_OID_DATA OidData))GetProcAddress(hDll, "PacketRequest");
#else #else
hDll = dlopen("packet.dll", RTLD_NOW); hDll = dlopen("packet.dll", RTLD_NOW);
p_PacketOpenAdapter = (void *)dlsym(hDll, "PacketOpenAdapter"); p_PacketOpenAdapter = (LPADAPTER (*)(char *AdapterName))dlsym(hDll, "PacketOpenAdapter");
p_PacketCloseAdapter = (void *)dlsym(hDll, "PacketCloseAdapter"); p_PacketCloseAdapter = (void (*)(LPADAPTER lpAdapter))dlsym(hDll, "PacketCloseAdapter");
p_PacketRequest = (void *)dlsym(hDll, "PacketRequest"); p_PacketRequest = (int (*)(LPADAPTER AdapterObject,BOOLEAN Set,PPACKET_OID_DATA OidData))dlsym(hDll, "PacketRequest");
#endif #endif
/* Open the selected adapter */ /* Open the selected adapter */
@ -1382,7 +1384,7 @@ static void *
_eth_reader(void *arg) _eth_reader(void *arg)
{ {
ETH_DEV* volatile dev = (ETH_DEV*)arg; ETH_DEV* volatile dev = (ETH_DEV*)arg;
int status; int status = 0;
int sched_policy; int sched_policy;
struct sched_param sched_priority; struct sched_param sched_priority;
#if defined (_WIN32) #if defined (_WIN32)
@ -2270,11 +2272,12 @@ while (size > 1) {
size -= sizeof(*buffer); size -= sizeof(*buffer);
} }
if (size) { if (size) {
uint8 endbytes[2]; uint16 endword;
uint8 *endbytes = (uint8 *)&endword;
endbytes[0] = *((uint8 *)buffer); endbytes[0] = *((uint8 *)buffer);
endbytes[1] = 0; endbytes[1] = 0;
cksum += *((uint16 *)endbytes); cksum += endword;
} }
/* Do a little shuffling */ /* Do a little shuffling */
@ -2609,6 +2612,10 @@ switch (dev->eth_api) {
if ((dev->hash_filter) && (!to_me) && (data[0] & 0x01)) if ((dev->hash_filter) && (!to_me) && (data[0] & 0x01))
to_me = _eth_hash_lookup(dev->hash, data); to_me = _eth_hash_lookup(dev->hash, data);
break; break;
default:
bpf_used = to_me = 0; /* Should NEVER happen */
abort();
break;
} }
/* detect reception of loopback packet to our physical address */ /* detect reception of loopback packet to our physical address */
@ -3024,7 +3031,7 @@ for (i=0; i<used; ++i) {
/* replace device description with user-defined adapter name (if defined) */ /* replace device description with user-defined adapter name (if defined) */
for (i=0; i<used; i++) { for (i=0; i<used; i++) {
char regkey[2048]; char regkey[2048];
char regval[2048]; unsigned char regval[2048];
LONG status; LONG status;
DWORD reglen, regtype; DWORD reglen, regtype;
HKEY reghnd; HKEY reghnd;
@ -3037,7 +3044,7 @@ for (i=0; i<used; i++) {
registry key, rather than hardcoding the string as we do here. */ registry key, rather than hardcoding the string as we do here. */
if (list[i].name[strlen( "\\Device\\NPF_" )] == '{') { if (list[i].name[strlen( "\\Device\\NPF_" )] == '{') {
sprintf( regkey, "SYSTEM\\CurrentControlSet\\Control\\Network\\" sprintf( regkey, "SYSTEM\\CurrentControlSet\\Control\\Network\\"
"{4D36E972-E325-11CE-BFC1-08002BE10318}\\%hs\\Connection", list[i].name+ "{4D36E972-E325-11CE-BFC1-08002BE10318}\\%s\\Connection", list[i].name+
strlen( "\\Device\\NPF_" ) ); strlen( "\\Device\\NPF_" ) );
if ((status = RegOpenKeyExA (HKEY_LOCAL_MACHINE, regkey, 0, KEY_QUERY_VALUE, &reghnd)) != ERROR_SUCCESS) if ((status = RegOpenKeyExA (HKEY_LOCAL_MACHINE, regkey, 0, KEY_QUERY_VALUE, &reghnd)) != ERROR_SUCCESS)
continue; continue;

View file

@ -173,10 +173,10 @@
struct eth_packet { struct eth_packet {
uint8 msg[ETH_FRAME_SIZE]; /* ethernet frame (message) */ uint8 msg[ETH_FRAME_SIZE]; /* ethernet frame (message) */
int len; /* packet length without CRC */ uint32 len; /* packet length without CRC */
int used; /* bytes processed (used in packet chaining) */ uint32 used; /* bytes processed (used in packet chaining) */
int status; /* transmit/receive status */ int status; /* transmit/receive status */
int crc_len; /* packet length with CRC */ uint32 crc_len; /* packet length with CRC */
}; };
struct eth_item { struct eth_item {

View file

@ -689,7 +689,7 @@ return SCPE_OK;
t_stat sim_set_throt (int32 arg, char *cptr) t_stat sim_set_throt (int32 arg, char *cptr)
{ {
char *tptr, c; char *tptr, c;
t_value val, val2; t_value val, val2 = 0;
if (arg == 0) { if (arg == 0) {
if ((cptr != 0) && (*cptr != 0)) if ((cptr != 0) && (*cptr != 0))