Date: Fri, 29 May 2009 06:41:23 +0000 (UTC) From: Ed Schouten <ed@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r193018 - in head/sys: dev/cfe dev/dcons dev/nmdm dev/ofw dev/rp dev/si dev/syscons dev/uart dev/usb/serial dev/xen/console ia64/ia64 kern sun4v/sun4v sys Message-ID: <200905290641.n4T6fOnb062243@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ed Date: Fri May 29 06:41:23 2009 New Revision: 193018 URL: http://svn.freebsd.org/changeset/base/193018 Log: Last minute TTY API change: remove mutex argument from tty_alloc(). I don't want people to override the mutex when allocating a TTY. It has to be there, to keep drivers like syscons happy. So I'm creating a tty_alloc_mutex() which can be used in those cases. tty_alloc_mutex() should eventually be removed. The advantage of this approach, is that we can just remove a function, without breaking the regular API in the future. Modified: head/sys/dev/cfe/cfe_console.c head/sys/dev/dcons/dcons_os.c head/sys/dev/nmdm/nmdm.c head/sys/dev/ofw/ofw_console.c head/sys/dev/rp/rp.c head/sys/dev/si/si.c head/sys/dev/syscons/syscons.c head/sys/dev/syscons/sysmouse.c head/sys/dev/uart/uart_tty.c head/sys/dev/usb/serial/usb_serial.c head/sys/dev/xen/console/console.c head/sys/ia64/ia64/ssc.c head/sys/kern/tty.c head/sys/kern/tty_pts.c head/sys/sun4v/sun4v/hvcons.c head/sys/sys/tty.h Modified: head/sys/dev/cfe/cfe_console.c ============================================================================== --- head/sys/dev/cfe/cfe_console.c Fri May 29 06:27:30 2009 (r193017) +++ head/sys/dev/cfe/cfe_console.c Fri May 29 06:41:23 2009 (r193018) @@ -89,7 +89,7 @@ cn_drvinit(void *unused) if (cfe_consdev.cn_pri != CN_DEAD && cfe_consdev.cn_name[0] != '\0') { - tp = tty_alloc(&cfe_ttydevsw, NULL, NULL); + tp = tty_alloc(&cfe_ttydevsw, NULL); tty_makedev(tp, NULL, "%s", output); tty_makealias(tp, "cfecons"); } Modified: head/sys/dev/dcons/dcons_os.c ============================================================================== --- head/sys/dev/dcons/dcons_os.c Fri May 29 06:27:30 2009 (r193017) +++ head/sys/dev/dcons/dcons_os.c Fri May 29 06:41:23 2009 (r193018) @@ -357,7 +357,7 @@ dcons_attach_port(int port, char *name, struct tty *tp; dc = &sc[port]; - tp = tty_alloc(&dcons_ttydevsw, dc, NULL); + tp = tty_alloc(&dcons_ttydevsw, dc); dc->flags = flags; dc->tty = tp; tty_init_console(tp, 0); Modified: head/sys/dev/nmdm/nmdm.c ============================================================================== --- head/sys/dev/nmdm/nmdm.c Fri May 29 06:27:30 2009 (r193017) +++ head/sys/dev/nmdm/nmdm.c Fri May 29 06:41:23 2009 (r193018) @@ -117,11 +117,11 @@ nmdm_alloc(unsigned long unit) callout_init(&ns->ns_part2.np_callout, CALLOUT_MPSAFE); /* Create device nodes. */ - tp = ns->ns_part1.np_tty = tty_alloc(&nmdm_class, &ns->ns_part1, + tp = ns->ns_part1.np_tty = tty_alloc_mutex(&nmdm_class, &ns->ns_part1, &ns->ns_mtx); tty_makedev(tp, NULL, "nmdm%luA", unit); - tp = ns->ns_part2.np_tty = tty_alloc(&nmdm_class, &ns->ns_part2, + tp = ns->ns_part2.np_tty = tty_alloc_mutex(&nmdm_class, &ns->ns_part2, &ns->ns_mtx); tty_makedev(tp, NULL, "nmdm%luB", unit); Modified: head/sys/dev/ofw/ofw_console.c ============================================================================== --- head/sys/dev/ofw/ofw_console.c Fri May 29 06:27:30 2009 (r193017) +++ head/sys/dev/ofw/ofw_console.c Fri May 29 06:41:23 2009 (r193018) @@ -95,7 +95,7 @@ cn_drvinit(void *unused) * XXX: This is a hack and it may result in two /dev/ttya * XXX: devices on platforms where the sab driver works. */ - tp = tty_alloc(&ofw_ttydevsw, NULL, NULL); + tp = tty_alloc(&ofw_ttydevsw, NULL); tty_makedev(tp, NULL, "%s", output); tty_makealias(tp, "ofwcons"); } Modified: head/sys/dev/rp/rp.c ============================================================================== --- head/sys/dev/rp/rp.c Fri May 29 06:27:30 2009 (r193017) +++ head/sys/dev/rp/rp.c Fri May 29 06:41:23 2009 (r193018) @@ -774,7 +774,7 @@ rp_attachcommon(CONTROLLER_T *ctlp, int for(aiop=0; aiop < num_aiops; aiop++) { num_chan = sGetAiopNumChan(ctlp, aiop); for(chan=0; chan < num_chan; chan++, port++, rp++) { - rp->rp_tty = tp = tty_alloc(&rp_tty_class, rp, NULL); + rp->rp_tty = tp = tty_alloc(&rp_tty_class, rp); rp->rp_port = port; rp->rp_ctlp = ctlp; rp->rp_unit = unit; Modified: head/sys/dev/si/si.c ============================================================================== --- head/sys/dev/si/si.c Fri May 29 06:27:30 2009 (r193017) +++ head/sys/dev/si/si.c Fri May 29 06:41:23 2009 (r193018) @@ -584,7 +584,7 @@ try_next: sprintf(pp->sp_name, "si%r%r", unit, (int)(pp - sc->sc_ports)); #endif - tp = pp->sp_tty = tty_alloc(&si_tty_class, pp, &Giant); + tp = pp->sp_tty = tty_alloc_mutex(&si_tty_class, pp, &Giant); tty_makedev(tp, NULL, "A%r%r", unit, (int)(pp - sc->sc_ports)); } try_next2: Modified: head/sys/dev/syscons/syscons.c ============================================================================== --- head/sys/dev/syscons/syscons.c Fri May 29 06:27:30 2009 (r193017) +++ head/sys/dev/syscons/syscons.c Fri May 29 06:41:23 2009 (r193018) @@ -334,7 +334,7 @@ sc_alloc_tty(int index, int devnum) stc = malloc(sizeof(struct sc_ttysoftc), M_DEVBUF, M_WAITOK); stc->st_index = index; stc->st_stat = NULL; - tp = tty_alloc(&sc_ttydevsw, stc, &Giant); + tp = tty_alloc_mutex(&sc_ttydevsw, stc, &Giant); /* Create device node. */ tty_makedev(tp, NULL, "v%r", devnum); Modified: head/sys/dev/syscons/sysmouse.c ============================================================================== --- head/sys/dev/syscons/sysmouse.c Fri May 29 06:27:30 2009 (r193017) +++ head/sys/dev/syscons/sysmouse.c Fri May 29 06:41:23 2009 (r193018) @@ -164,7 +164,7 @@ static struct ttydevsw smdev_ttydevsw = static void sm_attach_mouse(void *unused) { - sysmouse_tty = tty_alloc(&smdev_ttydevsw, NULL, NULL); + sysmouse_tty = tty_alloc(&smdev_ttydevsw, NULL); tty_makedev(sysmouse_tty, NULL, "sysmouse"); } Modified: head/sys/dev/uart/uart_tty.c ============================================================================== --- head/sys/dev/uart/uart_tty.c Fri May 29 06:27:30 2009 (r193017) +++ head/sys/dev/uart/uart_tty.c Fri May 29 06:41:23 2009 (r193018) @@ -356,7 +356,7 @@ uart_tty_attach(struct uart_softc *sc) struct tty *tp; int unit; - sc->sc_u.u_tty.tp = tp = tty_alloc(&uart_tty_class, sc, NULL); + sc->sc_u.u_tty.tp = tp = tty_alloc(&uart_tty_class, sc); unit = device_get_unit(sc->sc_dev); Modified: head/sys/dev/usb/serial/usb_serial.c ============================================================================== --- head/sys/dev/usb/serial/usb_serial.c Fri May 29 06:27:30 2009 (r193017) +++ head/sys/dev/usb/serial/usb_serial.c Fri May 29 06:41:23 2009 (r193018) @@ -293,7 +293,7 @@ usb2_com_attach_tty(struct ucom_softc *s int error = 0; char buf[32]; /* temporary TTY device name buffer */ - tp = tty_alloc(&usb2_com_class, sc, sc->sc_mtx); + tp = tty_alloc_mutex(&usb2_com_class, sc, sc->sc_mtx); if (tp == NULL) { error = ENOMEM; goto done; Modified: head/sys/dev/xen/console/console.c ============================================================================== --- head/sys/dev/xen/console/console.c Fri May 29 06:27:30 2009 (r193017) +++ head/sys/dev/xen/console/console.c Fri May 29 06:41:23 2009 (r193018) @@ -230,7 +230,7 @@ xc_attach(device_t dev) xc_consdev.cn_putc = xccnputc_dom0; } - xccons = tty_alloc(&xc_ttydevsw, NULL, NULL); + xccons = tty_alloc(&xc_ttydevsw, NULL); tty_makedev(xccons, NULL, "xc%r", 0); callout_init(&xc_callout, 0); Modified: head/sys/ia64/ia64/ssc.c ============================================================================== --- head/sys/ia64/ia64/ssc.c Fri May 29 06:27:30 2009 (r193017) +++ head/sys/ia64/ia64/ssc.c Fri May 29 06:41:23 2009 (r193018) @@ -106,7 +106,7 @@ ssc_cnattach(void *arg) { struct tty *tp; - tp = tty_alloc(&ssc_class, NULL, NULL); + tp = tty_alloc(&ssc_class, NULL); tty_makedev(tp, NULL, "ssccons"); } Modified: head/sys/kern/tty.c ============================================================================== --- head/sys/kern/tty.c Fri May 29 06:27:30 2009 (r193017) +++ head/sys/kern/tty.c Fri May 29 06:41:23 2009 (r193018) @@ -885,7 +885,14 @@ ttydevsw_deffree(void *softc) */ struct tty * -tty_alloc(struct ttydevsw *tsw, void *sc, struct mtx *mutex) +tty_alloc(struct ttydevsw *tsw, void *sc) +{ + + return (tty_alloc_mutex(tsw, sc, NULL)); +} + +struct tty * +tty_alloc_mutex(struct ttydevsw *tsw, void *sc, struct mtx *mutex) { struct tty *tp; Modified: head/sys/kern/tty_pts.c ============================================================================== --- head/sys/kern/tty_pts.c Fri May 29 06:27:30 2009 (r193017) +++ head/sys/kern/tty_pts.c Fri May 29 06:41:23 2009 (r193018) @@ -741,7 +741,7 @@ pts_alloc(int fflags, struct thread *td, psc->pts_uidinfo = uid; uihold(uid); - tp = tty_alloc(&pts_class, psc, NULL); + tp = tty_alloc(&pts_class, psc); knlist_init(&psc->pts_inpoll.si_note, tp->t_mtx, NULL, NULL, NULL); knlist_init(&psc->pts_outpoll.si_note, tp->t_mtx, NULL, NULL, NULL); @@ -781,7 +781,7 @@ pts_alloc_external(int fflags, struct th psc->pts_uidinfo = uid; uihold(uid); - tp = tty_alloc(&pts_class, psc, NULL); + tp = tty_alloc(&pts_class, psc); knlist_init(&psc->pts_inpoll.si_note, tp->t_mtx, NULL, NULL, NULL); knlist_init(&psc->pts_outpoll.si_note, tp->t_mtx, NULL, NULL, NULL); Modified: head/sys/sun4v/sun4v/hvcons.c ============================================================================== --- head/sys/sun4v/sun4v/hvcons.c Fri May 29 06:27:30 2009 (r193017) +++ head/sys/sun4v/sun4v/hvcons.c Fri May 29 06:41:23 2009 (r193018) @@ -327,7 +327,7 @@ hvcn_dev_attach(device_t dev) hvcn_consdev.cn_name[0] == '\0') return (ENXIO); - tp = tty_alloc(&hvcn_class, NULL, NULL); + tp = tty_alloc(&hvcn_class, NULL); tty_makedev(tp, NULL, "v%r", 1); tty_makealias(tp, "hvcn"); Modified: head/sys/sys/tty.h ============================================================================== --- head/sys/sys/tty.h Fri May 29 06:27:30 2009 (r193017) +++ head/sys/sys/tty.h Fri May 29 06:41:23 2009 (r193018) @@ -152,7 +152,8 @@ struct xtty { #ifdef _KERNEL /* Allocation and deallocation. */ -struct tty *tty_alloc(struct ttydevsw *tsw, void *softc, struct mtx *mtx); +struct tty *tty_alloc(struct ttydevsw *tsw, void *softc); +struct tty *tty_alloc_mutex(struct ttydevsw *tsw, void *softc, struct mtx *mtx); void tty_rel_pgrp(struct tty *tp, struct pgrp *pgrp); void tty_rel_sess(struct tty *tp, struct session *sess); void tty_rel_gone(struct tty *tp);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905290641.n4T6fOnb062243>