The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/osfmk/ppc/screen_switch.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
    3  *
    4  * @APPLE_LICENSE_HEADER_START@
    5  * 
    6  * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
    7  * 
    8  * This file contains Original Code and/or Modifications of Original Code
    9  * as defined in and that are subject to the Apple Public Source License
   10  * Version 2.0 (the 'License'). You may not use this file except in
   11  * compliance with the License. Please obtain a copy of the License at
   12  * http://www.opensource.apple.com/apsl/ and read it before using this
   13  * file.
   14  * 
   15  * The Original Code and all software distributed under the License are
   16  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
   17  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
   18  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
   19  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
   20  * Please see the License for the specific language governing rights and
   21  * limitations under the License.
   22  * 
   23  * @APPLE_LICENSE_HEADER_END@
   24  */
   25 /*
   26  * @OSF_COPYRIGHT@
   27  */
   28 /* 
   29  * Mach Operating System
   30  * Copyright (c) 1991,1990,1989 Carnegie Mellon University
   31  * All Rights Reserved.
   32  * 
   33  * Permission to use, copy, modify and distribute this software and its
   34  * documentation is hereby granted, provided that both the copyright
   35  * notice and this permission notice appear in all copies of the
   36  * software, derivative works or modified versions, and any portions
   37  * thereof, and that both notices appear in supporting documentation.
   38  * 
   39  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
   40  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
   41  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
   42  * 
   43  * Carnegie Mellon requests users of this software to return to
   44  * 
   45  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
   46  *  School of Computer Science
   47  *  Carnegie Mellon University
   48  *  Pittsburgh PA 15213-3890
   49  * 
   50  * any improvements or extensions that they make and grant Carnegie Mellon
   51  * the rights to redistribute these changes.
   52  */
   53 /*
   54  */
   55 /*
   56  *      File: screen_switch.h
   57  *      Author: Alessandro Forin, Carnegie Mellon University
   58  *      Date:   10/90
   59  *
   60  *      Definitions of things that must be tailored to
   61  *      specific hardware boards for the Generic Screen Driver.
   62  */
   63 
   64 #ifndef SCREEN_SWITCH_H
   65 #define SCREEN_SWITCH_H 1
   66 
   67 #include <mach/boolean.h>
   68 
   69 /*
   70  *      List of probe routines, scanned at cold-boot time
   71  *      to see which, if any, graphic display is available.
   72  *      This is done before autoconf, so that printing on
   73  *      the console works early on.  The alloc routine is
   74  *      called only on the first device that answers.
   75  *      Ditto for the setup routine, called later on.
   76  */
   77 struct screen_probe_vector {
   78         int             (*probe)(void);
   79         unsigned int    (*alloc)(void);
   80         int             (*setup)(int, user_info_t);
   81 };
   82 
   83 /*
   84  *      Low-level operations on the graphic device, used
   85  *      by the otherwise device-independent interface code
   86  */
   87 
   88 /* Forward declaration of screen_softc_t */
   89 typedef struct screen_softc *screen_softc_t;
   90 
   91 struct screen_switch {
   92         int     (*graphic_open)(void);                  /* when X11 opens */
   93         int     (*graphic_close)(screen_softc_t);       /* .. or closes */
   94         int     (*set_status)(screen_softc_t,
   95                               dev_flavor_t,
   96                               dev_status_t,
   97                               natural_t);               /* dev-specific ops */
   98         int     (*get_status)(screen_softc_t,
   99                               dev_flavor_t,
  100                               dev_status_t,
  101                               natural_t*);              /* dev-specific ops */
  102         int     (*char_paint)(screen_softc_t,
  103                               int,
  104                               int,
  105                               int);                     /* blitc */
  106         int     (*pos_cursor)(void*,
  107                               int,
  108                               int);                     /* cursor positioning*/
  109         int     (*insert_line)(screen_softc_t,
  110                                short);                  /* ..and scroll down */
  111         int     (*remove_line)(screen_softc_t,
  112                                short);                  /* ..and scroll up */
  113         int     (*clear_bitmap)(screen_softc_t);        /* blank screen */
  114         int     (*video_on)(void*,
  115                             user_info_t*);              /* screen saver */
  116         int     (*video_off)(void*,
  117                              user_info_t*);
  118         int     (*intr_enable)(void*,
  119                                boolean_t);
  120         int     (*map_page)(screen_softc_t,
  121                             vm_offset_t,
  122                             int);                       /* user-space mapping*/
  123 };
  124 
  125 /*
  126  *      Each graphic device needs page-aligned memory
  127  *      to be mapped in user space later (for events
  128  *      and such).  Size and content of this memory
  129  *      is unfortunately device-dependent, even if
  130  *      it did not need to (puns).
  131  */
  132 extern char  *screen_data;
  133 
  134 extern struct screen_probe_vector screen_probe_vector[];
  135 
  136 extern int screen_noop(void), screen_find(void);
  137 
  138 #endif  /* SCREEN_SWITCH_H */

Cache object: fd51820cb4971c18ad877f3248428c5d


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.