|
|
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: * Mach Operating System ! 27: * Copyright (c) 1991,1990,1989 Carnegie Mellon University ! 28: * All Rights Reserved. ! 29: * ! 30: * Permission to use, copy, modify and distribute this software and its ! 31: * documentation is hereby granted, provided that both the copyright ! 32: * notice and this permission notice appear in all copies of the ! 33: * software, derivative works or modified versions, and any portions ! 34: * thereof, and that both notices appear in supporting documentation. ! 35: * ! 36: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" ! 37: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR ! 38: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ! 39: * ! 40: * Carnegie Mellon requests users of this software to return to ! 41: * ! 42: * Software Distribution Coordinator or [email protected] ! 43: * School of Computer Science ! 44: * Carnegie Mellon University ! 45: * Pittsburgh PA 15213-3890 ! 46: * ! 47: * any improvements or extensions that they make and grant Carnegie Mellon ! 48: * the rights to redistribute these changes. ! 49: */ ! 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: #include <mach/boolean.h> ! 65: ! 66: /* ! 67: * List of probe routines, scanned at cold-boot time ! 68: * to see which, if any, graphic display is available. ! 69: * This is done before autoconf, so that printing on ! 70: * the console works early on. The alloc routine is ! 71: * called only on the first device that answers. ! 72: * Ditto for the setup routine, called later on. ! 73: */ ! 74: struct screen_probe_vector { ! 75: int (*probe)(void); ! 76: unsigned int (*alloc)(void); ! 77: int (*setup)(int, user_info_t); ! 78: }; ! 79: ! 80: /* ! 81: * Low-level operations on the graphic device, used ! 82: * by the otherwise device-independent interface code ! 83: */ ! 84: ! 85: /* Forward declaration of screen_softc_t */ ! 86: typedef struct screen_softc *screen_softc_t; ! 87: ! 88: struct screen_switch { ! 89: int (*graphic_open)(void); /* when X11 opens */ ! 90: int (*graphic_close)(screen_softc_t); /* .. or closes */ ! 91: int (*set_status)(screen_softc_t, ! 92: dev_flavor_t, ! 93: dev_status_t, ! 94: natural_t); /* dev-specific ops */ ! 95: int (*get_status)(screen_softc_t, ! 96: dev_flavor_t, ! 97: dev_status_t, ! 98: natural_t*); /* dev-specific ops */ ! 99: int (*char_paint)(screen_softc_t, ! 100: int, ! 101: int, ! 102: int); /* blitc */ ! 103: int (*pos_cursor)(void*, ! 104: int, ! 105: int); /* cursor positioning*/ ! 106: int (*insert_line)(screen_softc_t, ! 107: short); /* ..and scroll down */ ! 108: int (*remove_line)(screen_softc_t, ! 109: short); /* ..and scroll up */ ! 110: int (*clear_bitmap)(screen_softc_t); /* blank screen */ ! 111: int (*video_on)(void*, ! 112: user_info_t*); /* screen saver */ ! 113: int (*video_off)(void*, ! 114: user_info_t*); ! 115: int (*intr_enable)(void*, ! 116: boolean_t); ! 117: int (*map_page)(screen_softc_t, ! 118: vm_offset_t, ! 119: int); /* user-space mapping*/ ! 120: }; ! 121: ! 122: /* ! 123: * Each graphic device needs page-aligned memory ! 124: * to be mapped in user space later (for events ! 125: * and such). Size and content of this memory ! 126: * is unfortunately device-dependent, even if ! 127: * it did not need to (puns). ! 128: */ ! 129: extern char *screen_data; ! 130: ! 131: extern struct screen_probe_vector screen_probe_vector[]; ! 132: ! 133: extern int screen_noop(void), screen_find(void); ! 134: ! 135: #endif /* SCREEN_SWITCH_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.