|
|
1.1 root 1: /*
2: * Mach Operating System
3: * Copyright (c) 1991,1990,1989 Carnegie Mellon University
4: * All Rights Reserved.
5: *
6: * Permission to use, copy, modify and distribute this software and its
7: * documentation is hereby granted, provided that both the copyright
8: * notice and this permission notice appear in all copies of the
9: * software, derivative works or modified versions, and any portions
10: * thereof, and that both notices appear in supporting documentation.
11: *
12: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
13: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
14: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
15: *
16: * Carnegie Mellon requests users of this software to return to
17: *
18: * Software Distribution Coordinator or [email protected]
19: * School of Computer Science
20: * Carnegie Mellon University
21: * Pittsburgh PA 15213-3890
22: *
23: * any improvements or extensions that they make and grant Carnegie Mellon
24: * the rights to redistribute these changes.
25: */
26: /*
27: * File: screen_switch.h
28: * Author: Alessandro Forin, Carnegie Mellon University
29: * Date: 10/90
30: *
31: * Definitions of things that must be tailored to
32: * specific hardware boards for the Generic Screen Driver.
33: */
34:
35: #ifndef SCREEN_SWITCH_H
36: #define SCREEN_SWITCH_H 1
37:
38: /*
39: * List of probe routines, scanned at cold-boot time
40: * to see which, if any, graphic display is available.
41: * This is done before autoconf, so that printing on
42: * the console works early on. The alloc routine is
43: * called only on the first device that answers.
44: * Ditto for the setup routine, called later on.
45: */
46: struct screen_probe_vector {
47: int (*probe)();
48: unsigned int (*alloc)();
49: int (*setup)();
50: };
51:
52: /*
53: * Low-level operations on the graphic device, used
54: * by the otherwise device-independent interface code
55: */
56: struct screen_switch {
57: int (*graphic_open)(); /* when X11 opens */
58: int (*graphic_close)(); /* .. or closes */
59: int (*set_status)(); /* dev-specific ops */
60: int (*get_status)(); /* dev-specific ops */
61: int (*char_paint)(); /* blitc */
62: int (*pos_cursor)(); /* cursor positioning */
63: int (*insert_line)(); /* ..and scroll down */
64: int (*remove_line)(); /* ..and scroll up */
65: int (*clear_bitmap)(); /* blank screen */
66: int (*video_on)(); /* screen saver */
67: int (*video_off)();
68: int (*intr_enable)();
69: int (*map_page)(); /* user-space mapping */
70: };
71:
72: /*
73: * Each graphic device needs page-aligned memory
74: * to be mapped in user space later (for events
75: * and such). Size and content of this memory
76: * is unfortunately device-dependent, even if
77: * it did not need to (puns).
78: */
79: extern char *screen_data;
80:
81: extern struct screen_probe_vector screen_probe_vector[];
82:
83: extern int screen_noop(), screen_find();
84:
85: #endif SCREEN_SWITCH_H
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.