--- trunk/src/devices/dev_sn.c 2007/10/08 16:18:27 10 +++ trunk/src/devices/dev_sn.c 2007/10/08 16:21:53 38 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2005 Anders Gavare. All rights reserved. + * Copyright (C) 2004-2007 Anders Gavare. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -25,7 +25,7 @@ * SUCH DAMAGE. * * - * $Id: dev_sn.c,v 1.11 2005/06/26 11:43:48 debug Exp $ + * $Id: dev_sn.c,v 1.17 2007/04/13 16:06:53 debug Exp $ * * National Semiconductor SONIC ("sn") DP83932 ethernet. * @@ -57,18 +57,15 @@ }; -/* - * dev_sn_access(): - */ -int dev_sn_access(struct cpu *cpu, struct memory *mem, - uint64_t relative_addr, unsigned char *data, size_t len, - int writeflag, void *extra) +DEVICE_ACCESS(sn) { struct sn_data *d = (struct sn_data *) extra; 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) { @@ -97,10 +94,7 @@ } -/* - * devinit_sn(): - */ -int devinit_sn(struct devinit *devinit) +DEVINIT(sn) { char *name2; size_t nlen = 55; @@ -126,7 +120,7 @@ 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);