diff options
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 |
commit | 6e79bb2629d4463830fd1739423a950c042c7b0f (patch) | |
tree | fd550398ed5ea6a3fe9c65ee8d42cb27899d372b /src/osd | |
parent | 9e467dfcf6c70fd39d6e80271936f5699981db0d (diff) |
Sync with MESS all credited there (no whatsnew)
Diffstat (limited to 'src/osd')
-rw-r--r-- | src/osd/osdnet.c | 20 | ||||
-rw-r--r-- | src/osd/osdnet.h | 21 | ||||
-rw-r--r-- | src/osd/sdl/netdev_pcap.c | 2 | ||||
-rw-r--r-- | src/osd/sdl/netdev_tap.c | 2 | ||||
-rw-r--r-- | src/osd/windows/netdev_pcap.c | 2 |
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; } } |