Deleted Added
full compact
dcons.c (129944) dcons.c (130077)
1/*
2 * Copyright (C) 2003
3 * Hidetoshi Shimokawa. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 18 unchanged lines hidden (view full) ---

27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 *
34 * $Id: dcons.c,v 1.65 2003/10/24 03:24:55 simokawa Exp $
1/*
2 * Copyright (C) 2003
3 * Hidetoshi Shimokawa. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 18 unchanged lines hidden (view full) ---

27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 *
34 * $Id: dcons.c,v 1.65 2003/10/24 03:24:55 simokawa Exp $
35 * $FreeBSD: head/sys/dev/dcons/dcons.c 129944 2004-06-01 13:49:28Z phk $
35 * $FreeBSD: head/sys/dev/dcons/dcons.c 130077 2004-06-04 16:02:56Z phk $
36 */
37
38#include <sys/param.h>
39#include <sys/kernel.h>
40#include <sys/module.h>
41#include <sys/systm.h>
42#include <sys/types.h>
43#include <sys/conf.h>

--- 143 unchanged lines hidden (view full) ---

187 tp->t_ispeed = tp->t_ospeed = TTYDEF_SPEED;
188 ttsetwater(tp);
189 } else if ((tp->t_state & TS_XCLUDE) && suser(td)) {
190 splx(s);
191 return (EBUSY);
192 }
193 splx(s);
194
36 */
37
38#include <sys/param.h>
39#include <sys/kernel.h>
40#include <sys/module.h>
41#include <sys/systm.h>
42#include <sys/types.h>
43#include <sys/conf.h>

--- 143 unchanged lines hidden (view full) ---

187 tp->t_ispeed = tp->t_ospeed = TTYDEF_SPEED;
188 ttsetwater(tp);
189 } else if ((tp->t_state & TS_XCLUDE) && suser(td)) {
190 splx(s);
191 return (EBUSY);
192 }
193 splx(s);
194
195 error = (*linesw[tp->t_line].l_open)(dev, tp);
195 error = ttyld_open(tp, dev);
196
197 return (error);
198}
199
200static int
201dcons_close(dev_t dev, int flag, int mode, struct THREAD *td)
202{
203 int unit;
204 struct tty *tp;
205
206 unit = minor(dev);
207 if (unit != 0)
208 return (ENXIO);
209
210 tp = dev->si_tty;
211 if (tp->t_state & TS_ISOPEN) {
196
197 return (error);
198}
199
200static int
201dcons_close(dev_t dev, int flag, int mode, struct THREAD *td)
202{
203 int unit;
204 struct tty *tp;
205
206 unit = minor(dev);
207 if (unit != 0)
208 return (ENXIO);
209
210 tp = dev->si_tty;
211 if (tp->t_state & TS_ISOPEN) {
212 (*linesw[tp->t_line].l_close)(tp, flag);
212 ttyld_close(tp, flag);
213 ttyclose(tp);
214 }
215
216 return (0);
217}
218
219static int
220dcons_tty_param(struct tty *tp, struct termios *t)

--- 33 unchanged lines hidden (view full) ---

254 struct dcons_softc *dc;
255 int i, c, polltime;
256
257 for (i = 0; i < DCONS_NPORT; i ++) {
258 dc = &sc[i];
259 tp = dc->dev->si_tty;
260 while ((c = dcons_checkc(dc)) != -1)
261 if (tp->t_state & TS_ISOPEN)
213 ttyclose(tp);
214 }
215
216 return (0);
217}
218
219static int
220dcons_tty_param(struct tty *tp, struct termios *t)

--- 33 unchanged lines hidden (view full) ---

254 struct dcons_softc *dc;
255 int i, c, polltime;
256
257 for (i = 0; i < DCONS_NPORT; i ++) {
258 dc = &sc[i];
259 tp = dc->dev->si_tty;
260 while ((c = dcons_checkc(dc)) != -1)
261 if (tp->t_state & TS_ISOPEN)
262 (*linesw[tp->t_line].l_rint)(c, tp);
262 ttyld_rint(tp, c);
263 }
264 polltime = hz / poll_hz;
265 if (polltime < 1)
266 polltime = 1;
267 callout_reset(&dcons_callout, polltime, dcons_timeout, tp);
268}
269
270static void

--- 284 unchanged lines hidden (view full) ---

555 struct dcons_softc *dc;
556
557 dc = &sc[port];
558
559 tp = dc->dev->si_tty;
560
561 if (tp->t_state & TS_ISOPEN) {
562 printf("dcons: still opened\n");
263 }
264 polltime = hz / poll_hz;
265 if (polltime < 1)
266 polltime = 1;
267 callout_reset(&dcons_callout, polltime, dcons_timeout, tp);
268}
269
270static void

--- 284 unchanged lines hidden (view full) ---

555 struct dcons_softc *dc;
556
557 dc = &sc[port];
558
559 tp = dc->dev->si_tty;
560
561 if (tp->t_state & TS_ISOPEN) {
562 printf("dcons: still opened\n");
563 (*linesw[tp->t_line].l_close)(tp, 0);
563 ttyld_close(tp, 0);
564 ttyclose(tp);
565 }
566 /* XXX
567 * must wait until all device are closed.
568 */
569 tsleep((void *)dc, PWAIT, "dcodtc", hz/4);
570 destroy_dev(dc->dev);
571

--- 50 unchanged lines hidden ---
564 ttyclose(tp);
565 }
566 /* XXX
567 * must wait until all device are closed.
568 */
569 tsleep((void *)dc, PWAIT, "dcodtc", hz/4);
570 destroy_dev(dc->dev);
571

--- 50 unchanged lines hidden ---