|
|
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: /* Copyright (c) 1992 NeXT Computer, Inc. All rights reserved.
25: *
26: * IODisplay.m - Abstract superclass for all IODisplay objects.
27: *
28: *
29: * HISTORY
30: * 01 Sep 92 Joe Pasqua
31: * Created.
32: */
33:
34: #define DRIVER_PRIVATE 1
35: #define KERNEL 1
36:
37: #import <driverkit/driverTypes.h>
38: #import <driverkit/driverTypesPrivate.h>
39: #import <driverkit/kernelDriver.h>
40: #import <driverkit/IODisplay.h>
41: #import <driverkit/IODisplayPrivate.h>
42:
43: @implementation IODisplay
44:
45: /* Allocate a console support info structure based on this display. This
46: * structure, and the functions in it, are used to display alert and
47: * console windows.
48: */
49: - (IOConsoleInfo *)allocateConsoleInfo;
50: {
51: return (IOConsoleInfo *)0;
52: }
53:
54: - (port_t)devicePort
55: {
56: return [[self deviceDescription] devicePort];
57: }
58:
59:
60: - hideCursor: (int)token;
61: {
62: return self;
63: }
64:
65: - moveCursor:(Point*)cursorLoc frame:(int)frame token:(int)t;
66: {
67: return self;
68: }
69:
70: - showCursor:(Point*)cursorLoc frame:(int)frame token:(int)t;
71: {
72: return self;
73: }
74:
75: - setBrightness:(int)level token:(int)t;
76: {
77: return self;
78: }
79:
80: /* Return a pointer to an IODisplayInfo describing the display.
81: */
82: - (IODisplayInfo *)displayInfo;
83: {
84: return &_display;
85: }
86:
87: /* Return the registration token for this display.
88: */
89: - (int)token;
90: {
91: return _token;
92: }
93:
94: /* Set the token for this display.
95: */
96: - (void)setToken:(int)token;
97: {
98: _token = token;
99: }
100:
101: - (IOReturn)getIntValues:(unsigned int *)parameterArray
102: forParameter:(IOParameterName)parameterName
103: count:(unsigned int *)count
104: {
105: unsigned maxCount;
106:
107: maxCount = *count;
108: if (strcmp(parameterName, IO_GET_DISPLAY_PORT) == 0
109: || strcmp(parameterName, "IO_Display_GetPort") == 0) {
110:
111: port_t kernPort, userPort;
112:
113: if (maxCount < IO_GET_DISPLAY_PORT_SIZE)
114: return IO_R_INVALID_ARG;
115: kernPort = [self devicePort];
116: userPort = IOConvertPort(kernPort, IO_KernelIOTask, IO_CurrentTask);
117: parameterArray[0] = (unsigned)userPort;
118: *count = 1;
119: return IO_R_SUCCESS;
120: } else {
121: return [super getIntValues:parameterArray
122: forParameter:parameterName
123: count:count];
124: }
125: }
126:
127: - (IOReturn)getCharValues:(unsigned char *)parameterArray
128: forParameter:(IOParameterName)parameterName
129: count:(unsigned int *)count
130: {
131: IOConfigTable *configTable;
132: const char *value;
133: unsigned int length;
134:
135: configTable = [[self deviceDescription] configTable];
136: if (configTable != nil) {
137: value = [configTable valueForStringKey:parameterName];
138: if (value != 0) {
139: length = strlen(value) + 1;
140: if (length <= *count) {
141: strcpy(parameterArray, value);
142: *count = length;
143: return IO_R_SUCCESS;
144: }
145: }
146: }
147: return [super getCharValues:parameterArray
148: forParameter:parameterName
149: count:count];
150: }
151: @end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.