Annotation of XNU/osfmk/ppc/screen_switch.h, revision 1.1.1.1

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 */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.