|
|
1.1 root 1: #include "ds_oskit.h"
2:
3: #include <oskit/dev/dev.h>
4: #include <oskit/dev/linux.h>
5: #include <oskit/dev/osenv_irq.h>
6: #include <oskit/dev/osenv_intr.h>
7: #include <oskit/dev/osenv_sleep.h>
8: #include <oskit/c/stdlib.h>
9:
10: #include <oskit/c/termios.h>
11: #include <oskit/tty.h>
12:
13: oskit_osenv_t *mach_osenv;
14:
15: extern int serial_console; /* base_console_init.c */
16:
17: oskit_stream_t *ds_console_stream;
18:
19: extern int console_irq; /* kludge in osenv_irq.c */
20:
21:
22: void
23: ds_osenv_init (void)
24: {
25: oskit_error_t rc;
26:
27: mach_osenv = oskit_osenv_create_default ();
28:
29: kmsg_init ();
30:
31: oskit_dev_init (mach_osenv);
32:
33: if (getenv ("BOGUS_CONSOLE"))
34: {
35: extern oskit_stream_t *console;
36: ds_console_stream = console;
37: printf("using bogus console!\n");
38: rc = 0;
39: }
40: else if (serial_console)
41: {
42: oskit_osenv_intr_t *intr = oskit_create_osenv_intr ();
43: char *p = getenv ("COM_CONS");
44: int port = p ? atoi(p) : 1;
45: struct termios param = base_cooked_termios;
46: param.c_lflag &= ~ECHO;
47: param.c_iflag &= ~ICRNL;
48: param.c_oflag &= ~OPOST;
49: console_irq = -1;
50: rc = cq_com_console_init (port, ¶m,
51: oskit_create_osenv_irq (),
52: intr,
53: oskit_create_osenv_sleep (intr),
54: &ds_console_stream);
55: }
56: else
57: {
58: oskit_osenv_intr_t *intr = oskit_create_osenv_intr ();
59: console_irq = -1;
60: rc = cq_direct_console_init (oskit_create_osenv_irq (),
61: intr,
62: oskit_create_osenv_sleep (intr),
63: &ds_console_stream);
64: }
65: if (rc)
66: panic ("cannot create interrupt-driven console stream: %x\n", rc);
67:
68: oskit_linux_init_osenv (mach_osenv);
69: oskit_linux_init_devs ();
70:
71: #ifdef HAVE_I8042
72: oskit_dev_init_i8042 ();
73: #endif
74: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.