summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2011-12-12 14:20:12 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2011-12-12 14:20:12 +0000
commit6e79bb2629d4463830fd1739423a950c042c7b0f (patch)
treefd550398ed5ea6a3fe9c65ee8d42cb27899d372b /src/osd
parent9e467dfcf6c70fd39d6e80271936f5699981db0d (diff)
Sync with MESS all credited there (no whatsnew)
Diffstat (limited to 'src/osd')
-rw-r--r--src/osd/osdnet.c20
-rw-r--r--src/osd/osdnet.h21
-rw-r--r--src/osd/sdl/netdev_pcap.c2
-rw-r--r--src/osd/sdl/netdev_tap.c2
-rw-r--r--src/osd/windows/netdev_pcap.c2
5 files changed, 31 insertions, 16 deletions
diff --git a/src/osd/osdnet.c b/src/osd/osdnet.c
index 2df27d6cde5..21c8774ea03 100644
--- a/src/osd/osdnet.c
+++ b/src/osd/osdnet.c
@@ -1,22 +1,16 @@
#include "emu.h"
#include "osdnet.h"
-typedef struct netdev_entry
-{
- int id;
- char name[256];
- create_netdev func;
- struct netdev_entry *m_next;
-} netdev_entry_t;
-
static class simple_list<netdev_entry_t> netdev_list;
-void add_netdev(const char *name, create_netdev func)
+void add_netdev(const char *name, const char *description, create_netdev func)
{
netdev_entry_t *entry = global_alloc_clear(netdev_entry_t);
entry->id = netdev_list.count();
strncpy(entry->name, name, 255);
entry->name[255] = '\0';
+ strncpy(entry->description, description, 255);
+ entry->description[255] = '\0';
entry->func = func;
netdev_list.append(*entry);
}
@@ -26,6 +20,10 @@ void clear_netdev()
netdev_list.reset();
}
+const netdev_entry_t *netdev_first() {
+ return netdev_list.first();
+}
+
class netdev *open_netdev(int id, class device_network_interface *ifdev, int rate)
{
netdev_entry_t *entry = netdev_list.first();
@@ -97,3 +95,7 @@ const char *netdev::get_mac()
return "\0\0\0\0\0\0";
}
+int netdev_count()
+{
+ return netdev_list.count();
+}
diff --git a/src/osd/osdnet.h b/src/osd/osdnet.h
index aca6f75b5e4..74c75c3781a 100644
--- a/src/osd/osdnet.h
+++ b/src/osd/osdnet.h
@@ -3,6 +3,20 @@
#ifndef __OSDNET_H__
#define __OSDNET_H__
+class netdev;
+
+#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);
+
+typedef struct netdev_entry
+{
+ int id;
+ char name[256];
+ char description[256];
+ create_netdev func;
+ struct netdev_entry *m_next;
+} netdev_entry_t;
+
class netdev
{
public:
@@ -25,10 +39,9 @@ private:
class device_network_interface *m_dev;
};
-#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(int id, class device_network_interface *ifdev, int rate);
-void add_netdev(const char *name, create_netdev func);
+void add_netdev(const char *name, const char *description, create_netdev func);
void clear_netdev();
+const netdev_entry_t *netdev_first();
+int netdev_count();
#endif
diff --git a/src/osd/sdl/netdev_pcap.c b/src/osd/sdl/netdev_pcap.c
index ef74a2e02c6..f8ae41853f5 100644
--- a/src/osd/sdl/netdev_pcap.c
+++ b/src/osd/sdl/netdev_pcap.c
@@ -88,7 +88,7 @@ void init_pcap()
{
while(devs->next)
{
- add_netdev(devs->name, create_pcap);
+ add_netdev(devs->name, devs->description, create_pcap);
devs = devs->next;
}
}
diff --git a/src/osd/sdl/netdev_tap.c b/src/osd/sdl/netdev_tap.c
index cc68c97c229..3e024a4285a 100644
--- a/src/osd/sdl/netdev_tap.c
+++ b/src/osd/sdl/netdev_tap.c
@@ -94,7 +94,7 @@ static CREATE_NETDEV(create_tap)
void init_tap()
{
- add_netdev("tap", create_tap);
+ add_netdev("tap", "TAP/TUN Device", create_tap);
}
void deinit_tap()
diff --git a/src/osd/windows/netdev_pcap.c b/src/osd/windows/netdev_pcap.c
index 02887f3a831..d3d0b113609 100644
--- a/src/osd/windows/netdev_pcap.c
+++ b/src/osd/windows/netdev_pcap.c
@@ -127,7 +127,7 @@ void init_pcap()
{
while(devs->next)
{
- add_netdev(devs->name, create_pcap);
+ add_netdev(devs->name, devs->description, create_pcap);
devs = devs->next;
}
}