summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/emu/dinetwork.c6
-rw-r--r--src/emu/dinetwork.h2
-rw-r--r--src/osd/osdnet.c6
-rw-r--r--src/osd/osdnet.h2
4 files changed, 9 insertions, 7 deletions
diff --git a/src/emu/dinetwork.c b/src/emu/dinetwork.c
index b0c188f9a04..830a95d4cb9 100644
--- a/src/emu/dinetwork.c
+++ b/src/emu/dinetwork.c
@@ -43,9 +43,9 @@ void device_network_interface::set_mac(const char *mac)
if(m_dev) m_dev->set_mac(m_mac);
}
-void device_network_interface::set_interface(const char *name)
+void device_network_interface::set_interface(int id)
{
- m_dev = open_netdev(name, this, (int)(m_bandwidth*1000000/8.0/1500));
+ m_dev = open_netdev(id, this, (int)(m_bandwidth*1000000/8.0/1500));
if(!m_dev)
- logerror("Network interface %.256s not found\n", name);
+ logerror("Network interface %d not found\n", id);
}
diff --git a/src/emu/dinetwork.h b/src/emu/dinetwork.h
index c97b429759e..f7f2e38218d 100644
--- a/src/emu/dinetwork.h
+++ b/src/emu/dinetwork.h
@@ -9,7 +9,7 @@ public:
device_network_interface(const machine_config &mconfig, device_t &device, float bandwidth);
virtual ~device_network_interface();
- void set_interface(const char *name);
+ void set_interface(int id);
void set_promisc(bool promisc);
void set_mac(const char *mac);
diff --git a/src/osd/osdnet.c b/src/osd/osdnet.c
index 6a2fbbaac2f..b91dea82722 100644
--- a/src/osd/osdnet.c
+++ b/src/osd/osdnet.c
@@ -3,6 +3,7 @@
typedef struct netdev_entry
{
+ int id;
char name[256];
create_netdev func;
struct netdev_entry *m_next;
@@ -13,17 +14,18 @@ static class simple_list<netdev_entry_t> netdev_list;
void add_netdev(const char *name, create_netdev func)
{
netdev_entry_t *entry = new netdev_entry_t;
+ entry->id = netdev_list.count();
strncpy(entry->name, name, 255);
entry->name[255] = '\0';
entry->func = func;
netdev_list.append(*entry);
}
-class netdev *open_netdev(const char *name, class device_network_interface *ifdev, int rate)
+class netdev *open_netdev(int id, class device_network_interface *ifdev, int rate)
{
netdev_entry_t *entry = netdev_list.first();
while(entry) {
- if(!strncmp(name, entry->name, 256))
+ if(entry->id==id)
return entry->func(entry->name, ifdev, rate);
entry = entry->m_next;
}
diff --git a/src/osd/osdnet.h b/src/osd/osdnet.h
index fd80bece7b4..23fc032a061 100644
--- a/src/osd/osdnet.h
+++ b/src/osd/osdnet.h
@@ -28,6 +28,6 @@ private:
#define CREATE_NETDEV(name) class netdev *name(const char *ifname, class device_network_interface *ifdev, int rate)
typedef class netdev *(*create_netdev)(const char *ifname, class device_network_interface *ifdev, int rate);
-class netdev *open_netdev(const char *name, class device_network_interface *ifdev, int rate);
+class netdev *open_netdev(int id, class device_network_interface *ifdev, int rate);
void add_netdev(const char *name, create_netdev func);
#endif