diff options
author | thorpej <thorpej@pkgsrc.org> | 2002-11-06 08:37:46 +0000 |
---|---|---|
committer | thorpej <thorpej@pkgsrc.org> | 2002-11-06 08:37:46 +0000 |
commit | 3f48a0c8f543a1e06c703368f810ecf9df0dafe6 (patch) | |
tree | 0f52c431253add892c1d39f02c1e44c2c098e7ab /emulators/simh | |
parent | 916b2538deb00fefcc13064fd411012fbc976d13 (diff) | |
download | pkgsrc-3f48a0c8f543a1e06c703368f810ecf9df0dafe6.tar.gz |
Update the DELQA module to beta5. Changes:
22-Oct-02 DTH Added all_multicast and promiscuous support
21-Oct-02 DTH Added write buffer max size check (code by Jason Thorpe)
Corrected copyright again
Implemented NXM testing and recovery
22-Oct-02 DTH Added all_multicast and promiscuous support
Fixed not attached behavior
21-Oct-02 DTH Added NetBSD code from Jason Thorpe
Patched buffer size to make sure entire packet is read in
Made 'ethX' check characters passed as well as length
Corrected copyright again
Bump revision to nb2.
Diffstat (limited to 'emulators/simh')
-rw-r--r-- | emulators/simh/Makefile | 15 | ||||
-rw-r--r-- | emulators/simh/distinfo | 8 | ||||
-rw-r--r-- | emulators/simh/patches/patch-ab | 137 | ||||
-rw-r--r-- | emulators/simh/patches/patch-ac | 17 |
4 files changed, 7 insertions, 170 deletions
diff --git a/emulators/simh/Makefile b/emulators/simh/Makefile index 7c3abbaf3b0..c10cbf8b677 100644 --- a/emulators/simh/Makefile +++ b/emulators/simh/Makefile @@ -1,16 +1,16 @@ -# $NetBSD: Makefile,v 1.8 2002/10/19 21:38:09 thorpej Exp $ +# $NetBSD: Makefile,v 1.9 2002/11/06 08:37:46 thorpej Exp $ # DISTNAME= simhv210-0b2 PKGNAME= simh-2.10.0b2 -PKGREVISION= 1 +PKGREVISION= 2 CATEGORIES= emulators MASTER_SITES= http://simh.trailing-edge.com/sources/ EXTRACT_SUFX= .zip -EXTRACT_CMD= unzip -aq ${DOWNLOADED_DISTFILE} +EXTRACT_CMD= unzip -aoq ${DOWNLOADED_DISTFILE} DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ - xq_beta4${EXTRACT_SUFX} + xq_beta5${EXTRACT_SUFX} MAINTAINER= packages@netbsd.org HOMEPAGE= http://simh.trailing-edge.com/ @@ -23,13 +23,6 @@ post-extract: ${MV} ${WRKSRC}/makefile ${WRKSRC}/Makefile ${MV} ${WRKSRC}/AltairZ80/altairZ80_defs.h \ ${WRKSRC}/AltairZ80/altairz80_defs.h - ${MV} ${WRKSRC}/SIMH/sim_ether.c ${WRKSRC}/sim_ether.c - ${MV} ${WRKSRC}/SIMH/sim_ether.h ${WRKSRC}/sim_ether.h - ${MV} ${WRKSRC}/SIMH/PDP11/pdp11_xq.c ${WRKSRC}/PDP11/pdp11_xq.c - ${MV} ${WRKSRC}/SIMH/PDP11/pdp11_xq.h ${WRKSRC}/PDP11/pdp11_xq.h - ${MV} ${WRKSRC}/SIMH/xq_README.txt ${WRKSRC}/xq_README.txt - ${RMDIR} ${WRKSRC}/SIMH/PDP11 - ${RMDIR} ${WRKSRC}/SIMH do-install: (cd ${WRKSRC}/BIN && for BIN in *; do \ diff --git a/emulators/simh/distinfo b/emulators/simh/distinfo index 88f7609f769..113f7946b5f 100644 --- a/emulators/simh/distinfo +++ b/emulators/simh/distinfo @@ -1,9 +1,7 @@ -$NetBSD: distinfo,v 1.5 2002/10/19 21:38:10 thorpej Exp $ +$NetBSD: distinfo,v 1.6 2002/11/06 08:37:46 thorpej Exp $ SHA1 (simhv210-0b2.zip) = 841669853d24f7b2b608442806eeaa083f2dd7ab Size (simhv210-0b2.zip) = 1555874 bytes -SHA1 (xq_beta4.zip) = 662c824c8b5d6bef947dadef3e8285130d400877 -Size (xq_beta4.zip) = 22487 bytes +SHA1 (xq_beta5.zip) = a66fe7fecb76737632e262ae40c3d59147071a7e +Size (xq_beta5.zip) = 24582 bytes SHA1 (patch-aa) = 29fc614b64358b50e5181a186edf339cd18de17a -SHA1 (patch-ab) = 438720c909897eae2203139e3f645bcecb700422 -SHA1 (patch-ac) = 9330161b91d2af6af60add660bc12532ec8e401a diff --git a/emulators/simh/patches/patch-ab b/emulators/simh/patches/patch-ab deleted file mode 100644 index 3b72d453cd1..00000000000 --- a/emulators/simh/patches/patch-ab +++ /dev/null @@ -1,137 +0,0 @@ -$NetBSD: patch-ab,v 1.1 2002/10/19 21:38:10 thorpej Exp $ - ---- sim_ether.c.orig Sat Oct 19 14:26:01 2002 -+++ sim_ether.c Sat Oct 19 14:26:10 2002 -@@ -70,6 +70,7 @@ - msg, dst, src, *proto, packet->len); - } - -+#ifndef __NetBSD__ - char* eth_getname(int number, char* name) - { - #define ETH_SUPPORTED_DEVICES 10 -@@ -80,6 +81,7 @@ - strcpy(name, list[number].name); - return name; - } -+#endif /* ! __NetBSD__ */ - - void eth_zero(ETH_DEV* dev) - { -@@ -89,7 +91,7 @@ - - /* First, all the non-implemented versions */ - --#if !defined (WIN32) && !defined(linux) -+#if !defined (WIN32) && !defined(linux) && !defined(__NetBSD__) - t_stat eth_open (ETH_DEV* dev, char* name) - {return SCPE_NOFNC;} - t_stat eth_close (ETH_DEV* dev) -@@ -110,9 +112,13 @@ - #ifdef WIN32 - #include <packet32.h> - #endif /*WIN32*/ --#ifdef linux -+#ifdef __NetBSD__ -+#include <sys/ioctl.h> -+#include <net/bpf.h> -+#endif /* __NetBSD__ */ -+#if defined(linux) || defined(__NetBSD__) - #include <fcntl.h> --#endif /*linux*/ -+#endif /*linux || __NetBSD__*/ - - t_stat eth_open(ETH_DEV* dev, char* name) - { -@@ -124,22 +130,34 @@ - /* initialize device */ - eth_zero(dev); - -+#ifndef __NetBSD__ - /* translate name of type "ethX" */ - if ((strlen(name) == 4) && isdigit(name[3])) { - num = atoi(&name[3]); - savname = eth_getname(num, temp); - } -+#endif /* ! __NetBSD__ */ - - /* attempt to connect device */ -- dev->handle = (void*) pcap_open_live(savname, BUFSIZ, ETH_PROMISC, /*ETH_TIMEOUT*/-1, errbuf); -+ dev->handle = (void*) pcap_open_live(savname, ETH_MAX_PACKET, ETH_PROMISC, /*ETH_TIMEOUT*/-1, errbuf); - -- if (!dev->handle) return SCPE_OPENERR; /* can't open device */ -+ if (!dev->handle) { -+ printf("pcap_open_live: %s\n", errbuf); -+ return SCPE_OPENERR; /* can't open device */ -+ } - - /* save name of device */ - dev->name = malloc(strlen(savname)+1); - strcpy(dev->name, savname); - --#ifdef linux -+#ifdef __NetBSD__ -+ /* tell the kernel that the header is fully-formed when it gets it. this -+ is required in order to fake the src address. */ -+ i = 1; -+ ioctl(pcap_fileno(dev->handle), BIOCSHDRCMPLT, &i); -+#endif /* __NetBSD__ */ -+ -+#if defined(linux) || defined(__NetBSD__) - /* set file non-blocking */ - fcntl(pcap_fileno(dev->handle), F_SETFL, fcntl(pcap_fileno(dev->handle), F_GETFL, 0) | O_NONBLOCK); - #endif /*linux*/ -@@ -373,4 +391,53 @@ - - #endif /*linux*/ - -+#ifdef __NetBSD__ -+ -+#include <sys/types.h> -+#include <sys/socket.h> -+#include <net/if_dl.h> -+#include <net/if_types.h> -+#include <ifaddrs.h> -+#include <string.h> -+ -+int pcap_sendpacket(pcap_t* handle, u_char* msg, int len) -+{ -+ return (write(pcap_fileno(handle), msg, len) == len)?0:-1; -+} -+ -+int PacketGetAdapterNames(char* buffer, int* size) -+{ -+ const struct sockaddr_dl *sdl; -+ struct ifaddrs *ifap, *ifa; -+ char *p; -+ int ptr = 0; -+ -+ if (getifaddrs(&ifap) != 0) { -+ *size = 0; -+ return (0); -+ } -+ -+ p = NULL; -+ for (ifa = ifap; ifa; ifa = ifa->ifa_next) { -+ if (ifa->ifa_addr->sa_family != AF_LINK) -+ continue; -+ if (p && strcmp(p, ifa->ifa_name) == 0) -+ continue; -+ sdl = (const struct sockaddr_dl *) ifa->ifa_addr; -+ if (sdl->sdl_type != IFT_ETHER) -+ continue; -+ -+ strcpy(buffer+ptr, ifa->ifa_name); -+ ptr += strlen(ifa->ifa_name)+1; -+ } -+ -+ freeifaddrs(ifap); -+ -+ buffer[ptr++] = '\0'; -+ buffer[ptr++] = '\0'; -+ *size = ptr; -+ -+ return (ptr); -+} - -+#endif /* __NetBSD__ */ diff --git a/emulators/simh/patches/patch-ac b/emulators/simh/patches/patch-ac deleted file mode 100644 index 13f5904c89e..00000000000 --- a/emulators/simh/patches/patch-ac +++ /dev/null @@ -1,17 +0,0 @@ -$NetBSD: patch-ac,v 1.1 2002/10/19 21:38:10 thorpej Exp $ - -*** PDP11/pdp11_xq.c.orig Sat Oct 19 14:29:44 2002 ---- PDP11/pdp11_xq.c Sat Oct 19 14:30:00 2002 -*************** -*** 766,771 **** ---- 766,775 ---- - if (xq.xbdl_buf[1] & XQ_DSC_H) b_length -= 1; - if (xq.xbdl_buf[1] & XQ_DSC_L) b_length -= 1; - -+ /* protect ourselves from a broken device driver... */ -+ if ((xq.write_buffer.len + b_length) > sizeof(xq.write_buffer.msg)) -+ b_length = sizeof(xq.write_buffer.msg) - xq.write_buffer.len; -+ - /* add to transmit buffer */ - Map_ReadB(address, b_length, &xq.write_buffer.msg[xq.write_buffer.len], NOMAP); - xq.write_buffer.len += b_length; |