Annotation of kernel/bsd/dev/ppc/kmDevice.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
                      3:  *
                      4:  * @APPLE_LICENSE_HEADER_START@
                      5:  * 
                      6:  * Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
                      7:  * Reserved.  This file contains Original Code and/or Modifications of
                      8:  * Original Code as defined in and that are subject to the Apple Public
                      9:  * Source License Version 1.1 (the "License").  You may not use this file
                     10:  * except in compliance with the License.  Please obtain a copy of the
                     11:  * License at http://www.apple.com/publicsource and read it before using
                     12:  * this file.
                     13:  * 
                     14:  * The Original Code and all software distributed under the License are
                     15:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
                     16:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
                     17:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
                     18:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
                     19:  * License for the specific language governing rights and limitations
                     20:  * under the License.
                     21:  * 
                     22:  * @APPLE_LICENSE_HEADER_END@
                     23:  */
                     24: 
                     25: /*     Copyright (c) 1992 NeXT Computer, Inc.  All rights reserved. 
                     26:  *
                     27:  * kmDevice.h - private #defines and class definition for kernel
                     28:  *             keyboard/monitor module.
                     29:  *
                     30:  * HISTORY
                     31:  * 16-Jan-92    Doug Mitchell at NeXT 
                     32:  *      Created. 
                     33:  */
                     34:  
                     35: #ifdef DRIVER_PRIVATE
                     36: 
                     37: #import <driverkit/IODevice.h>
                     38: #import "PCKeyboardDefs.h"
                     39: #import "ConsoleSupport.h"
                     40: 
                     41: #define NUM_KM_DEVS    1
                     42: #define FB_DEV_NORMAL  0               // frameBuffer for normal I/O
                     43: #define FB_DEV_ALERT   1               // frameBuffer for alert panels
                     44: #define NUM_FB_DEVS    2
                     45: 
                     46: #define INBUF_SIZE     16              // size of circular buffer for 
                     47:                                        //   blocking getc
                     48: 
                     49: /*
                     50:  * This class's interface is private to km.m and kmPrivate.m. The 
                     51:  * kmDevice is the glue between the bsd device interface (kmopen, kmputc, 
                     52:  * etc.) and the two classes which do the actual I/O - adbKeyboard and 
                     53:  * frameBuffer.
                     54:  */
                     55: @interface kmDevice : IODevice <PCKeyboardImported>
                     56: {
                     57:        /*
                     58:         * kmOpenLock (an NXLock) protects all operations which create and
                     59:         * destroy frameBuffer instances.
                     60:         */
                     61:        id              kmOpenLock;
                     62: 
                     63:        /*
                     64:         * frame buffer state.
                     65:         */
                     66:        IOConsoleInfo   *fbp[NUM_FB_DEVS];      // output devices
                     67:        ScreenMode      fbMode;                 // current screen mode
                     68:        ScreenMode      savedFbMode;            // screen mode before entering
                     69:                                                //   FBM_ALERT
                     70:        int             alertRefCount;
                     71:        
                     72:        /*
                     73:         * Keyboard info.
                     74:         */
                     75:        id              kbId;                   // input device (adbKeyboard)
                     76:        unsigned        blockIn:1;              // indicates "blocking getc()
                     77:                                                //   mode"
                     78:        
                     79:        
                     80:        /*
                     81:         * Circular buffer for blocking getc(). A thread waiting for
                     82:         * synchronous input locks inBufLock and sleeps on inBuf.
                     83:         */
                     84:        int             inBuf[INBUF_SIZE];
                     85:        int             inDex;                  // in pointer
                     86:        int             outDex;                 // out pointer
                     87:        simple_lock_data_t inBufLock;
                     88:        
                     89:        BOOL            hasRegistered;          // have called registerDevice
                     90:        BOOL            probed;                 // have been probed
                     91: }
                     92: 
                     93: /*
                     94:  * Standard direct device probe.
                     95:  */
                     96: + (BOOL)probe : deviceDescription;
                     97: + (IODeviceStyle)deviceStyle;
                     98: 
                     99: - init                                         : (BOOL)initKb
                    100:                                          fb_mode : (ScreenMode)fb_mode;
                    101: 
                    102: /*
                    103:  * Keyboard-specific initialization.
                    104:  */
                    105: - initKb;
                    106: 
                    107: /*
                    108:  * Interface to bsd code.
                    109:  */
                    110: - (int)kmOpen                          : (int)flag;
                    111: - (int)kmPutc                          : (int)c;       // paint one character
                    112: - (int)kmGetc;                                         // blocking read
                    113: 
                    114: /*
                    115:  * ioctl equivalents.
                    116:  */
                    117: - (int)restore;
                    118: - (int)drawRect                                : (const struct km_drawrect *)kmRect;
                    119: - (int)eraseRect                       : (const struct km_drawrect *)kmRect;
                    120: - (int)disableCons;
                    121: 
                    122: - (int)animationCtl                    : (km_anim_ctl_t)ctl;
                    123: - (int)getStatus                       : (unsigned *)statusp;
                    124: - (int)getScreenSize                   : (struct ConsoleSize *)size;
                    125: 
                    126: /*
                    127:  * Kernel internal alert panel support.
                    128:  */
                    129: - (void)doAlert                                : (const char *)windowTitle
                    130:                                          msg : (const char *)msg;
                    131: 
                    132: - (void)registerDisplay:newDisplay;
                    133: - (void)unregisterDisplay:oldDisplay;
                    134: 
                    135: @end
                    136: 
                    137: @interface kmDevice (KmGraphics)
                    138: 
                    139: - (void)graphicPanelString:(char *)string;
                    140: - (void)drawGraphicPanel:(GraphicPanelType)panelType;
                    141: 
                    142: @end
                    143: 
                    144: /*
                    145:  * 'Global' variables, shared only by km.m and kmDevice.m.
                    146:  */
                    147: 
                    148: extern kmDevice *kmId;                         // the kmDevice
                    149: extern IOConsoleInfo *basicConsole;
                    150: extern ScreenMode basicConsoleMode;                    
                    151: extern const char *mach_title;
                    152: 
                    153: #endif /* DRIVER_PRIVATE */
                    154: 
                    155: /* end of kmDevice.h */
                    156: 
                    157: 

unix.superglobalmegacorp.com

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