]>
git.saurik.com Git - apple/xnu.git/blob - bsd/dev/i386/cons.c
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
4 * @APPLE_LICENSE_HEADER_START@
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
20 * @APPLE_LICENSE_HEADER_END@
23 * Copyright (c) 1987, 1988 NeXT, Inc.
26 * 7-Jan-93 Mac Gillon (mgillon) at NeXT
27 * Integrated POSIX support
29 * 12-Aug-87 John Seamons (jks) at NeXT
34 * Indirect driver for console.
36 #include <sys/param.h>
37 #include <sys/systm.h>
39 #include <sys/ioctl.h>
45 struct tty
*constty
; /* current console device */
49 cnopen(dev
, flag
, devtype
, pp
)
57 device
= constty
->t_dev
;
60 return ((*cdevsw
[major(device
)].d_open
)(device
, flag
, devtype
, pp
));
65 cnclose(dev
, flag
, mode
, pp
)
73 device
= constty
->t_dev
;
76 return ((*cdevsw
[major(device
)].d_close
)(device
, flag
, mode
, pp
));
81 cnread(dev
, uio
, ioflag
)
89 device
= constty
->t_dev
;
92 return ((*cdevsw
[major(device
)].d_read
)(device
, uio
, ioflag
));
97 cnwrite(dev
, uio
, ioflag
)
105 device
= constty
->t_dev
;
108 return ((*cdevsw
[major(device
)].d_write
)(device
, uio
, ioflag
));
113 cnioctl(dev
, cmd
, addr
, flag
, p
)
123 device
= constty
->t_dev
;
127 * Superuser can always use this to wrest control of console
128 * output from the "virtual" console.
130 if (cmd
== TIOCCONS
&& constty
) {
131 int error
= suser(p
->p_ucred
, (u_short
*) NULL
);
137 return ((*cdevsw
[major(device
)].d_ioctl
)(device
, cmd
, addr
, flag
, p
));
142 cnselect(dev
, flag
, p
)
150 device
= constty
->t_dev
;
153 return ((*cdevsw
[major(device
)].d_select
)(device
, flag
, p
));
156 #if 0 /* FIXME - using OSFMK console driver for the moment */
163 device
= constty
->t_dev
;
166 return ((*cdevsw
[major(device
)].d_getc
)(device
));
177 device
= constty
->t_dev
;
180 return ((*cdevsw
[major(device
)].d_putc
)(device
, c
));
187 /* FIXME: what to do here? */
193 kprintf( const char *format
, ...)
195 /* on PPC this outputs to the serial line */
196 /* nop on intel ... umeshv@apple.com */
202 * Write message to console; create an alert panel if no text-type window
203 * currently exists. Caller must call alert_done() when finished.
204 * The height and width arguments are not used; they are provided for
205 * compatibility with the 68k version of alert().
224 sprintf(smsg
, msg
, p1
, p2
, p3
, p4
, p5
, p6
, p7
, p8
);
226 /* DoAlert(title, smsg); */