|
|
1.1 root 1: /*
2: * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
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.
11: *
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
18: * under the License.
19: *
20: * @APPLE_LICENSE_HEADER_END@
21: */
22: /*
23: * @OSF_COPYRIGHT@
24: */
25: /*
26: * @APPLE_FREE_COPYRIGHT@
27: */
28:
29:
30: #include <device/device_types.h>
31: #include <mach_kdp.h>
32:
33: /*
34: * Console is on the Printer Port (chip channel 0)
35: * Debugger is on the Modem Port (chip channel 1)
36: */
37:
38: #define CONSOLE_PORT 1
39:
40: struct scc_tty {
41: char * t_addr; /* device pointer */
42: int t_dev; /* device number */
43: int t_ispeed; /* input speed */
44: int t_ospeed; /* output speed */
45: char t_breakc; /* character to deliver when 'break'
46: condition received */
47: int t_flags; /* mode flags */
48: int t_state; /* current state */
49: int t_line; /* fake line discipline number,
50: for old drivers - always 0 */
51: int t_outofband; /* current out-of-band events */
52: int t_outofbandarg; /* arg to first out-of-band event */
53: int t_nquoted; /* number of quoted chars in inq */
54: int t_hiwater; /* baud-rate limited high water mark */
55: int t_lowater; /* baud-rate limited low water mark */
56: };
57: typedef struct scc_tty *scc_tty_t;
58:
59: /*
60: * function declarations for performing serial i/o
61: * other functions below are declared in kern/misc_protos.h
62: * cnputc, cngetc, cnmaygetc
63: */
64:
65: void initialize_serial(caddr_t scc_phys_base);
66:
67: extern int scc_probe(void);
68:
69: #if 0
70: extern int scc_open(
71: dev_t dev,
72: dev_mode_t flag,
73: io_req_t ior);
74:
75: extern void scc_close(
76: dev_t dev);
77:
78: extern int scc_read(
79: dev_t dev,
80: io_req_t ior);
81:
82: extern io_return_t scc_write(
83: dev_t dev,
84: io_req_t ior);
85:
86: extern io_return_t scc_get_status(
87: dev_t dev,
88: dev_flavor_t flavor,
89: dev_status_t data,
90: mach_msg_type_number_t *status_count);
91:
92: extern io_return_t scc_set_status(
93: dev_t dev,
94: dev_flavor_t flavor,
95: dev_status_t data,
96: mach_msg_type_number_t status_count);
97:
98: extern boolean_t scc_portdeath(
99: dev_t dev,
100: ipc_port_t port);
101:
102: #endif /* 0 */
103:
104: extern int scc_putc(
105: int unit,
106: int line,
107: int c);
108:
109: extern int scc_getc(
110: int unit,
111: int line,
112: boolean_t wait,
113: boolean_t raw);
114:
115: /* Functions in serial_console.c for switching between serial and video
116: consoles. */
117: extern boolean_t console_is_serial(void);
118: extern int switch_to_serial_console(
119: void);
120:
121: extern int switch_to_video_console(
122: void);
123:
124: extern void switch_to_old_console(
125: int old_console);
126:
127:
128: /*
129: * JMM - We are not really going to support this driver in SMP (barely
130: * support it now - so just pick up the stubbed out versions.
131: */
132: #define DECL_FUNNEL(class,f)
133: #define DECL_FUNNEL_VARS
134: #define FUNNEL_INIT(f,p)
135: #define FUNNEL_ENTER(f)
136: #define FUNNEL_EXIT(f)
137: #define FUNNEL_ESCAPE(f) (1)
138: #define FUNNEL_REENTER(f,count)
139: #define FUNNEL_IN_USE(f) (TRUE)
140:
141: /*
142: * Flags
143: */
144: #define TF_ODDP 0x00000002 /* get/send odd parity */
145: #define TF_EVENP 0x00000004 /* get/send even parity */
146: #define TF_ANYP (TF_ODDP|TF_EVENP)
147: /* get any parity/send none */
148: #define TF_LITOUT 0x00000008 /* output all 8 bits
149: otherwise, characters >= 0x80
150: are time delays XXX */
151: #define TF_ECHO 0x00000080 /* device wants user to echo input */
152: #define TS_MIN 0x00004000 /* buffer input chars, if possible */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.