summaryrefslogtreecommitdiff
path: root/comms/ltmdm
diff options
context:
space:
mode:
authorSergey A. Osokin <osa@FreeBSD.org>2004-07-22 09:16:12 +0000
committerSergey A. Osokin <osa@FreeBSD.org>2004-07-22 09:16:12 +0000
commit333982699bbd13ea944ff7a3910899b2c04fad15 (patch)
tree03c511f381c3ae7574a8162241d02043f5595ebd /comms/ltmdm
parentUpdate to 1.8 (diff)
Fix run on recent -CURRENT by removing ttyclose() calls.
Symptoms: 1) kldload ltmdm.ko kldload: can't load ltmdm.ko: No such file or directory 2) dmesg | head -1 link_elf: symbol ttyclose underfined Bump PORTREVISION.
Notes
Notes: svn path=/head/; revision=114417
Diffstat (limited to 'comms/ltmdm')
-rw-r--r--comms/ltmdm/Makefile2
-rw-r--r--comms/ltmdm/files/patch-aa411
2 files changed, 239 insertions, 174 deletions
diff --git a/comms/ltmdm/Makefile b/comms/ltmdm/Makefile
index 061743df25bc..b67dd64b0fbc 100644
--- a/comms/ltmdm/Makefile
+++ b/comms/ltmdm/Makefile
@@ -7,7 +7,7 @@
PORTNAME= ltmdm
PORTVERSION= 1.4
-PORTREVISION= 7
+PORTREVISION= 8
CATEGORIES= comms
MASTER_SITES= http://www.dons.net.au/~darius/ \
http://soupnazi.org/FreeBSD/ports/distfiles/
diff --git a/comms/ltmdm/files/patch-aa b/comms/ltmdm/files/patch-aa
index 675388144e4f..6296858fa0e1 100644
--- a/comms/ltmdm/files/patch-aa
+++ b/comms/ltmdm/files/patch-aa
@@ -1,196 +1,261 @@
---- sys/dev/ltmdm/ltmdmsio.c.orig Mon Mar 11 18:47:31 2002
-+++ sys/dev/ltmdm/ltmdmsio.c Sat Feb 21 20:56:45 2004
-@@ -60,7 +60,9 @@
- #include <sys/proc.h>
- #include <sys/module.h>
- #include <sys/conf.h>
-+#if __FreeBSD_version < 500101
- #include <sys/dkstat.h>
-+#endif
- #include <sys/fcntl.h>
- #include <sys/interrupt.h>
- #include <sys/kernel.h>
-@@ -69,12 +71,21 @@
- #include <machine/bus.h>
- #include <sys/rman.h>
- #if __FreeBSD_version >= 500000
-+#if __FreeBSD_version < 500034 /* < 20020426 */
- #include <sys/timetc.h>
- #endif
-+#endif
-+#ifdef ENABLE_PPS
- #include <sys/timepps.h>
-+#endif
+--- sys/dev/ltmdm/ltmdmsio.c.orig Thu Jul 22 13:05:17 2004
++++ sys/dev/ltmdm/ltmdmsio.c Thu Jul 22 13:06:49 2004
+@@ -245,7 +245,9 @@
+ u_char last_modem_status; /* last MSR read by intr handler */
+ u_char prev_modem_status; /* last MSR handled by high level */
-+#if __FreeBSD_version >= 500000
-+#include <dev/pci/pcireg.h>
-+#include <dev/pci/pcivar.h>
++#if __FreeBSD_version < 502119
+ u_char hotchar; /* ldisc-specific char to be handled ASAP */
++#endif
+ u_char *ibuf; /* start of input buffer */
+ u_char *ibufend; /* end of input buffer */
+ u_char *ibufold; /* old input buffer, to be freed */
+@@ -285,7 +287,11 @@
+ struct resource *iores[6];
+ struct resource *irqres;
+ void *cookie;
++#if __FreeBSD_version > 502115
++ struct cdev *devs[6];
+#else
- #include <pci/pcireg.h>
- #include <pci/pcivar.h>
+ dev_t devs[6];
+#endif
- #include <machine/clock.h>
-
-@@ -88,7 +99,9 @@
-
- #include <machine/resource.h>
-
--#if __FreeBSD_version >= 500027 /* >= 20011022 */
-+#if __FreeBSD_version >= 501107 /* >= 20030917 */
-+#include <dev/ic/ns16550.h>
-+#elif __FreeBSD_version >= 500027 /* >= 20011022 */
- #include <dev/sio/sioreg.h>
- #else
- #include <isa/sioreg.h>
-@@ -124,9 +137,11 @@
- #endif
+ /*
+ * Data area for output buffers. Someday we should build the output
+@@ -1478,11 +1484,17 @@
- #if __FreeBSD_version >= 500023 /* >= 20010912 */
--#define proc thread /* temporary hack: struct proc -> stuct thread */
-+#define proc thread /* XXX struct proc -> stuct thread */
-+#if __FreeBSD_version < 500033 /* < 20020401 */
- #define suser(p) suser_td(p)
- #endif
+ s = splfunc();
+ if (tp) {
++#if __FreeBSD_version > 502112
++ (*linesw[tp->t_line]->l_close)(tp, FNONBLOCK);
++#else
+ (*linesw[tp->t_line].l_close)(tp, FNONBLOCK);
+#endif
-
-
- #define LOTS_OF_EVENTS 64 /* helps separate urgent events from input */
-@@ -256,7 +271,9 @@
- bool_t do_dcd_timestamp;
- struct timeval timestamp;
- struct timeval dcd_timestamp;
-+#ifdef ENABLE_PPS
- struct pps_state pps;
+ disc_optim(tp, &tp->t_termios, com);
+ comstop(tp, FREAD | FWRITE);
+ comhardclose(com);
++#if __FreeBSD_version > 502122
+ ttyclose(tp);
+#endif
+ }
+ vxdPortClose();
+ siosettimeout();
+@@ -1515,7 +1527,11 @@
+ }
- u_long bytes_in; /* statistics */
- u_long bytes_out;
-@@ -352,6 +369,7 @@
- #endif
-
- static struct cdevsw sio_cdevsw = {
-+#if __FreeBSD_version < 500105
- /* open */ sioopen,
- /* close */ sioclose,
- /* read */ sioread,
-@@ -361,7 +379,11 @@
- /* mmap */ nommap,
- /* strategy */ nostrategy,
- /* name */ driver_name,
-+#ifdef MAJOR_AUTO
-+ /* maj */ MAJOR_AUTO,
-+#else
- /* maj */ CDEV_MAJOR,
-+#endif
- /* dump */ nodump,
- /* psize */ nopsize,
- #if __FreeBSD_version < 430000
-@@ -373,10 +395,30 @@
- /* bmaj */ -1,
- /* kqfilter */ ttykqfilter,
- #else /* __FreeBSD_version >= 500000 */
-- /* flags */ D_TTY | D_KQFILTER,
-+ /* flags */ D_TTY,
- /* kqfilter */ ttykqfilter,
- #endif
- #endif
-+#else
-+ .d_open = sioopen,
-+ .d_close = sioclose,
-+ .d_read = sioread,
-+ .d_write = siowrite,
-+ .d_ioctl = sioioctl,
-+ .d_name = driver_name,
-+#ifdef MAJOR_AUTO
-+ .d_maj = MAJOR_AUTO,
-+#else
-+ .d_maj = CDEV_MAJOR,
-+#endif
-+ .d_kqfilter = ttykqfilter,
-+#if __FreeBSD_version >= 502102
-+ .d_flags = D_TTY | D_NEEDGIANT,
-+ .d_version = D_VERSION
-+#else
-+ .d_poll = ttypoll,
-+#endif
-+#endif
- };
-
- static u_int com_events; /* input chars + weighted output completions */
-@@ -1295,8 +1337,11 @@
- DPRINTF(1,(" x_chip_version = %d\n", x_chip_version));
-
- com->flags = flags;
-+
-+#ifdef ENABLE_PPS
- com->pps.ppscap = PPS_CAPTUREASSERT | PPS_CAPTURECLEAR;
- pps_init(&com->pps);
+ static int
++#if __FreeBSD_version > 502115
++sioopen(struct cdev *dev, int flag, int mode, struct proc *p)
++#else
+ sioopen(dev_t dev, int flag, int mode, struct proc *p)
+#endif
-
+ {
+ struct com_s *com;
+ int error;
+@@ -1655,7 +1671,11 @@
+ * the true carrier.
+ */
+ if (com->prev_modem_status & MSR_DCD || mynor & CALLOUT_MASK)
++#if __FreeBSD_version > 502112
++ (*linesw[tp->t_line]->l_modem)(tp, 1);
++#else
+ (*linesw[tp->t_line].l_modem)(tp, 1);
++#endif
+ }
/*
- * initialize the device registers as follows:
-@@ -1685,7 +1730,9 @@
+ * Wait for DCD if necessary.
+@@ -1671,7 +1691,11 @@
+ goto out;
+ goto open_top;
+ }
++#if __FreeBSD_version > 502112
++ error = (*linesw[tp->t_line]->l_open)(dev, tp);
++#else
+ error = (*linesw[tp->t_line].l_open)(dev, tp);
++#endif
+ disc_optim(tp, &tp->t_termios, com);
+ if (tp->t_state & TS_ISOPEN && mynor & CALLOUT_MASK)
+ com->active_out = TRUE;
+@@ -1684,7 +1708,11 @@
+ }
+
+ static int
++#if __FreeBSD_version > 502115
++sioclose(struct cdev *dev, int flag, int mode, struct proc *p)
++#else
+ sioclose(dev_t dev, int flag, int mode, struct proc *p)
++#endif
+ {
+ struct com_s *com;
+ int mynor;
+@@ -1699,11 +1727,17 @@
+ return (ENODEV);
+ tp = com->tp;
s = splfunc();
- com->do_timestamp = FALSE;
- com->do_dcd_timestamp = FALSE;
-+#ifdef ENABLE_PPS
- com->pps.ppsparam.mode = 0;
-+#endif
- write_vuart_port(UART_CFCR, com->cfcr_image &= ~CFCR_SBREAK);
- {
- write_vuart_port(UART_IER, 0);
-@@ -1894,23 +1941,34 @@
- u_char recv_data;
- u_char int_ctl;
- u_char int_ctl_new;
-+#ifdef ENABLE_PPS
-+#if __FreeBSD_version < 500034
- struct timecounter *tc;
- u_int count;
++#if __FreeBSD_version > 502112
++ (*linesw[tp->t_line]->l_close)(tp, flag);
++#else
+ (*linesw[tp->t_line].l_close)(tp, flag);
++#endif
+ disc_optim(tp, &tp->t_termios, com);
+ comstop(tp, FREAD | FWRITE);
+ comhardclose(com);
++#if __FreeBSD_version > 502122
+ ttyclose(tp);
++#endif
+ siosettimeout();
+ splx(s);
+ if (com->gone) {
+@@ -1771,7 +1805,11 @@
+ }
+
+ static int
++#if __FreeBSD_version > 502115
++sioread(struct cdev *dev, struct uio *uio, int flag)
++#else
+ sioread(dev_t dev, struct uio *uio, int flag)
++#endif
+ {
+ int mynor;
+ struct com_s *com;
+@@ -1782,11 +1820,19 @@
+ com = com_addr(MINOR_TO_UNIT(mynor));
+ if (com == NULL || com->gone)
+ return (ENODEV);
++#if __FreeBSD_version > 502112
++ return ((*linesw[com->tp->t_line]->l_read)(com->tp, uio, flag));
++#else
+ return ((*linesw[com->tp->t_line].l_read)(com->tp, uio, flag));
+#endif
+ }
+
+ static int
++#if __FreeBSD_version > 502115
++siowrite(struct cdev *dev, struct uio *uio, int flag)
++#else
+ siowrite(dev_t dev, struct uio *uio, int flag)
+#endif
+ {
+ int mynor;
+ struct com_s *com;
+@@ -1801,7 +1847,11 @@
+ if (com == NULL || com->gone)
+ return (ENODEV);
- int_ctl = read_vuart_port(UART_IER);
- int_ctl_new = int_ctl;
++#if __FreeBSD_version > 502112
++ return ((*linesw[com->tp->t_line]->l_write)(com->tp, uio, flag));
++#else
+ return ((*linesw[com->tp->t_line].l_write)(com->tp, uio, flag));
++#endif
+ }
- while (!com->gone) {
-+#ifdef ENABLE_PPS
- if (com->pps.ppsparam.mode & PPS_CAPTUREBOTH) {
- modem_status = read_vuart_port(UART_MSR);
- if ((modem_status ^ com->last_modem_status) & MSR_DCD) {
-+#if __FreeBSD_version < 500034
- tc = timecounter;
- count = tc->tc_get_timecount(tc);
- pps_event(&com->pps, tc, count,
-+#else
-+ pps_capture(&com->pps);
-+ pps_event(&com->pps,
-+#endif
- (modem_status & MSR_DCD) ?
- PPS_CAPTUREASSERT : PPS_CAPTURECLEAR);
+ static void
+@@ -1907,7 +1957,11 @@
+ if (line_status & LSR_PE)
+ recv_data |= TTY_PE;
}
- }
++#if __FreeBSD_version > 502112
++ (*linesw[tp->t_line]->l_rint)(recv_data, tp);
++#else
+ (*linesw[tp->t_line].l_rint)(recv_data, tp);
+#endif
- line_status = read_vuart_port(UART_LSR);
+ lt_disable_intr();
+ } while (buf < com->iptr);
+ }
+@@ -2006,7 +2060,11 @@
+ recv_data = 0;
+ }
+ ++com->bytes_in;
++#if __FreeBSD_version > 502118
++ if (com->tp->t_hotchar != 0 && recv_data == com->tp->t_hotchar)
++#else
+ if (com->hotchar != 0 && recv_data == com->hotchar)
++#endif
+ setsofttty();
+ ioptr = com->iptr;
+ if (ioptr >= com->ibufend)
+@@ -2111,7 +2169,11 @@
+ }
- /* input event? (check first to help avoid overruns) */
-@@ -2195,7 +2253,9 @@
+ static int
++#if __FreeBSD_version > 502115
++sioioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct proc *p)
++#else
+ sioioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
++#endif
+ {
+ struct com_s *com;
+ int error;
+@@ -2192,7 +2254,11 @@
+ if (lt->c_ospeed != 0)
+ dt->c_ospeed = tp->t_ospeed;
+ }
++#if __FreeBSD_version > 502112
++ error = (*linesw[tp->t_line]->l_ioctl)(tp, cmd, data, flag, p);
++#else
+ error = (*linesw[tp->t_line].l_ioctl)(tp, cmd, data, flag, p);
++#endif
+ if (error != ENOIOCTL)
+ return (error);
+ s = splfunc();
+@@ -2247,10 +2313,12 @@
+ com->do_timestamp = TRUE;
+ *(struct timeval *)data = com->timestamp;
break;
++#if __FreeBSD_version < 502119
+ case TIOCDCDTIMESTAMP:
+ com->do_dcd_timestamp = TRUE;
+ *(struct timeval *)data = com->dcd_timestamp;
+ break;
++#endif
default:
splx(s);
-+#ifdef ENABLE_PPS
- error = pps_ioctl(cmd, data, &com->pps);
+ #ifdef ENABLE_PPS
+@@ -2317,8 +2385,13 @@
+ com->state &= ~CS_CHECKMSR;
+ lt_enable_intr();
+ if (delta_modem_status & MSR_DCD)
++#if __FreeBSD_version > 502112
++ (*linesw[tp->t_line]->l_modem)
++ (tp, com->prev_modem_status & MSR_DCD);
++#else
+ (*linesw[tp->t_line].l_modem)
+ (tp, com->prev_modem_status & MSR_DCD);
+#endif
- if (error == ENODEV)
- error = ENOTTY;
- return (error);
-@@ -2796,7 +2856,7 @@
- #endif
+ }
+ if (com->state & CS_ODONE) {
+ lt_disable_intr();
+@@ -2330,7 +2403,11 @@
+ sio_busycheck_handle = timeout(siobusycheck, com, hz / 100);
+ com->extra_state |= CSE_BUSYCHECK;
+ }
++#if __FreeBSD_version > 502112
++ (*linesw[tp->t_line]->l_start)(tp);
++#else
+ (*linesw[tp->t_line].l_start)(tp);
++#endif
+ }
+ if (com_events == 0)
+ break;
+@@ -2829,11 +2906,21 @@
+ && (!(t->c_iflag & PARMRK)
+ || (t->c_iflag & (IGNPAR | IGNBRK)) == (IGNPAR | IGNBRK))
+ && !(t->c_lflag & (ECHO | ICANON | IEXTEN | ISIG | PENDIN))
++#if __FreeBSD_version > 502112
++ && linesw[tp->t_line]->l_rint == ttyinput)
++#else
+ && linesw[tp->t_line].l_rint == ttyinput)
++#endif
+ tp->t_state |= TS_CAN_BYPASS_L_RINT;
+ else
+ tp->t_state &= ~TS_CAN_BYPASS_L_RINT;
++#if __FreeBSD_version > 502112
++#if __FreeBSD_version < 502119
++ com->hotchar = linesw[tp->t_line]->l_hotchar;
++#endif
++#else
+ com->hotchar = linesw[tp->t_line].l_hotchar;
++#endif
+ }
- DRIVER_MODULE(ltmdm, pci, ltmdm_pci_driver, ltmdm_devclass, ltmdm_event, 0);
--#if 0
-+#if 1
- #if __FreeBSD_version >= 500000
- DRIVER_MODULE(ltmdm, cardbus, ltmdm_pci_driver, ltmdm_devclass, ltmdm_event, 0);
- #endif
+ #ifdef KLD_MODULE