--- trunk/src/devices/dev_sn.c 2007/10/08 16:18:00 4 +++ trunk/src/devices/dev_sn.c 2007/10/08 16:19:23 20 @@ -25,7 +25,7 @@ * SUCH DAMAGE. * * - * $Id: dev_sn.c,v 1.10 2005/03/14 19:14:02 debug Exp $ + * $Id: dev_sn.c,v 1.13 2005/11/13 00:14:10 debug Exp $ * * National Semiconductor SONIC ("sn") DP83932 ethernet. * @@ -68,7 +68,9 @@ uint64_t idata = 0, odata = 0; int regnr; - idata = memory_readmax64(cpu, data, len); + if (writeflag == MEM_WRITE) + idata = memory_readmax64(cpu, data, len); + regnr = relative_addr / sizeof(uint32_t); if (regnr < SONIC_NREGS) { @@ -103,6 +105,7 @@ int devinit_sn(struct devinit *devinit) { char *name2; + size_t nlen = 55; struct sn_data *d = malloc(sizeof(struct sn_data)); if (d == NULL) { @@ -114,19 +117,18 @@ net_generate_unique_mac(devinit->machine, d->macaddr); - name2 = malloc(50); + name2 = malloc(nlen); if (name2 == NULL) { fprintf(stderr, "out of memory in dev_sn_init()\n"); exit(1); } - sprintf(name2, "%s [%02x:%02x:%02x:%02x:%02x:%02x]", - devinit->name, - d->macaddr[0], d->macaddr[1], d->macaddr[2], + snprintf(name2, nlen, "%s [%02x:%02x:%02x:%02x:%02x:%02x]", + devinit->name, d->macaddr[0], d->macaddr[1], d->macaddr[2], d->macaddr[3], d->macaddr[4], d->macaddr[5]); memory_device_register(devinit->machine->memory, name2, devinit->addr, DEV_SN_LENGTH, - dev_sn_access, (void *)d, MEM_DEFAULT, NULL); + dev_sn_access, (void *)d, DM_DEFAULT, NULL); net_add_nic(devinit->machine->emul->net, d, d->macaddr);