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 Software.Distribution@CS.CMU.EDU
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 * HISTORY
28 * $Log: screen_switch.h,v $
29 * Revision 2.6 91/06/19 11:54:28 rvb
30 * File moved here from mips/PMAX since it tries to be generic;
31 * it is used on the PMAX and the Vax3100.
32 * [91/06/04 rvb]
33 *
34 * Revision 2.5 91/05/14 17:27:50 mrt
35 * Correcting copyright
36 *
37 * Revision 2.4 91/02/05 17:44:30 mrt
38 * Added author notices
39 * [91/02/04 11:17:53 mrt]
40 *
41 * Changed to use new Mach copyright
42 * [91/02/02 12:16:32 mrt]
43 *
44 * Revision 2.3 90/12/05 23:34:34 af
45 *
46 *
47 * Revision 2.1.1.1 90/11/01 03:41:45 af
48 * Re-created from pm_switch.h for new consistent naming scheme.
49 * [90/10/04 af]
50 *
51 */
52 /*
53 * File: screen_switch.h
54 * Author: Alessandro Forin, Carnegie Mellon University
55 * Date: 10/90
56 *
57 * Definitions of things that must be tailored to
58 * specific hardware boards for the Generic Screen Driver.
59 */
60
61 #ifndef SCREEN_SWITCH_H
62 #define SCREEN_SWITCH_H 1
63
64 /*
65 * List of probe routines, scanned at cold-boot time
66 * to see which, if any, graphic display is available.
67 * This is done before autoconf, so that printing on
68 * the console works early on. The alloc routine is
69 * called only on the first device that answers.
70 * Ditto for the setup routine, called later on.
71 */
72 struct screen_probe_vector {
73 int (*probe)();
74 unsigned int (*alloc)();
75 int (*setup)();
76 };
77
78 /*
79 * Low-level operations on the graphic device, used
80 * by the otherwise device-independent interface code
81 */
82 struct screen_switch {
83 int (*graphic_open)(); /* when X11 opens */
84 int (*graphic_close)(); /* .. or closes */
85 int (*set_status)(); /* dev-specific ops */
86 int (*get_status)(); /* dev-specific ops */
87 int (*char_paint)(); /* blitc */
88 int (*pos_cursor)(); /* cursor positioning */
89 int (*insert_line)(); /* ..and scroll down */
90 int (*remove_line)(); /* ..and scroll up */
91 int (*clear_bitmap)(); /* blank screen */
92 int (*video_on)(); /* screen saver */
93 int (*video_off)();
94 int (*intr_enable)();
95 int (*map_page)(); /* user-space mapping */
96 };
97
98 /*
99 * Each graphic device needs page-aligned memory
100 * to be mapped in user space later (for events
101 * and such). Size and content of this memory
102 * is unfortunately device-dependent, even if
103 * it did not need to (puns).
104 */
105 extern char *screen_data;
106
107 extern struct screen_probe_vector screen_probe_vector[];
108
109 extern int screen_noop(), screen_find();
110
111 #endif SCREEN_SWITCH_H
Cache object: 4fdaedbc0dadc837aa20258931ca9d56
|