kern_cons.c (70239) | kern_cons.c (72521) |
---|---|
1/* 2 * Copyright (c) 1988 University of Utah. 3 * Copyright (c) 1991 The Regents of the University of California. 4 * All rights reserved. 5 * 6 * This code is derived from software contributed to Berkeley by 7 * the Systems Programming Group of the University of Utah Computer 8 * Science Department. --- 22 unchanged lines hidden (view full) --- 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * 38 * from: @(#)cons.c 7.2 (Berkeley) 5/9/91 | 1/* 2 * Copyright (c) 1988 University of Utah. 3 * Copyright (c) 1991 The Regents of the University of California. 4 * All rights reserved. 5 * 6 * This code is derived from software contributed to Berkeley by 7 * the Systems Programming Group of the University of Utah Computer 8 * Science Department. --- 22 unchanged lines hidden (view full) --- 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * 38 * from: @(#)cons.c 7.2 (Berkeley) 5/9/91 |
39 * $FreeBSD: head/sys/kern/tty_cons.c 70239 2000-12-20 21:50:37Z phk $ | 39 * $FreeBSD: head/sys/kern/tty_cons.c 72521 2001-02-15 16:34:11Z jlemon $ |
40 */ 41 42#include <sys/param.h> 43#include <sys/systm.h> 44#include <sys/conf.h> 45#include <sys/cons.h> 46#include <sys/kernel.h> 47#include <sys/proc.h> --- 5 unchanged lines hidden (view full) --- 53#include <machine/cpu.h> 54 55static d_open_t cnopen; 56static d_close_t cnclose; 57static d_read_t cnread; 58static d_write_t cnwrite; 59static d_ioctl_t cnioctl; 60static d_poll_t cnpoll; | 40 */ 41 42#include <sys/param.h> 43#include <sys/systm.h> 44#include <sys/conf.h> 45#include <sys/cons.h> 46#include <sys/kernel.h> 47#include <sys/proc.h> --- 5 unchanged lines hidden (view full) --- 53#include <machine/cpu.h> 54 55static d_open_t cnopen; 56static d_close_t cnclose; 57static d_read_t cnread; 58static d_write_t cnwrite; 59static d_ioctl_t cnioctl; 60static d_poll_t cnpoll; |
61static d_kqfilter_t cnkqfilter; |
|
61 62#define CDEV_MAJOR 0 63static struct cdevsw cn_cdevsw = { 64 /* open */ cnopen, 65 /* close */ cnclose, 66 /* read */ cnread, 67 /* write */ cnwrite, 68 /* ioctl */ cnioctl, 69 /* poll */ cnpoll, 70 /* mmap */ nommap, 71 /* strategy */ nostrategy, 72 /* name */ "console", 73 /* maj */ CDEV_MAJOR, 74 /* dump */ nodump, 75 /* psize */ nopsize, | 62 63#define CDEV_MAJOR 0 64static struct cdevsw cn_cdevsw = { 65 /* open */ cnopen, 66 /* close */ cnclose, 67 /* read */ cnread, 68 /* write */ cnwrite, 69 /* ioctl */ cnioctl, 70 /* poll */ cnpoll, 71 /* mmap */ nommap, 72 /* strategy */ nostrategy, 73 /* name */ "console", 74 /* maj */ CDEV_MAJOR, 75 /* dump */ nodump, 76 /* psize */ nopsize, |
76 /* flags */ D_TTY, 77 /* bmaj */ -1 | 77 /* flags */ D_TTY | D_KQFILTER, 78 /* bmaj */ -1, 79 /* kqfilter */ cnkqfilter, |
78}; 79 80static dev_t cn_dev_t; /* seems to be never really used */ 81static udev_t cn_udev_t; 82SYSCTL_OPAQUE(_machdep, CPU_CONSDEV, consdev, CTLFLAG_RD, 83 &cn_udev_t, sizeof cn_udev_t, "T,dev_t", ""); 84 85static int cn_mute; --- 307 unchanged lines hidden (view full) --- 393 if ((cn_tab == NULL) || cn_mute) 394 return (1); 395 396 dev = cn_tab->cn_dev; 397 398 return ((*devsw(dev)->d_poll)(dev, events, p)); 399} 400 | 80}; 81 82static dev_t cn_dev_t; /* seems to be never really used */ 83static udev_t cn_udev_t; 84SYSCTL_OPAQUE(_machdep, CPU_CONSDEV, consdev, CTLFLAG_RD, 85 &cn_udev_t, sizeof cn_udev_t, "T,dev_t", ""); 86 87static int cn_mute; --- 307 unchanged lines hidden (view full) --- 395 if ((cn_tab == NULL) || cn_mute) 396 return (1); 397 398 dev = cn_tab->cn_dev; 399 400 return ((*devsw(dev)->d_poll)(dev, events, p)); 401} 402 |
403static int 404cnkqfilter(dev, kn) 405 dev_t dev; 406 struct knote *kn; 407{ 408 if ((cn_tab == NULL) || cn_mute) 409 return (1); 410 411 dev = cn_tab->cn_dev; 412 if (devsw(dev)->d_flags & D_KQFILTER) 413 return ((*devsw(dev)->d_kqfilter)(dev, kn)); 414 return (1); 415} 416 |
|
401int 402cngetc() 403{ 404 int c; 405 if ((cn_tab == NULL) || cn_mute) 406 return (-1); 407 c = (*cn_tab->cn_getc)(cn_tab->cn_dev); 408 if (c == '\r') c = '\n'; /* console input is always ICRNL */ --- 49 unchanged lines hidden --- | 417int 418cngetc() 419{ 420 int c; 421 if ((cn_tab == NULL) || cn_mute) 422 return (-1); 423 c = (*cn_tab->cn_getc)(cn_tab->cn_dev); 424 if (c == '\r') c = '\n'; /* console input is always ICRNL */ --- 49 unchanged lines hidden --- |