Commit | Line | Data |
---|---|---|
a09e091a JB |
1 | /* |
2 | * Copyright 1990, 1991 by Thomas Roell, Dinkelscherben, Germany | |
3 | * Copyright 1992 by David Dawes <dawes@XFree86.org> | |
4 | * Copyright 1992 by Jim Tsillas <jtsilla@damon.ccs.northeastern.edu> | |
5 | * Copyright 1992 by Rich Murphey <Rich@Rice.edu> | |
6 | * Copyright 1992 by Robert Baron <Robert.Baron@ernst.mach.cs.cmu.edu> | |
7 | * Copyright 1992 by Orest Zborowski <obz@eskimo.com> | |
8 | * Copyright 1993 by Vrije Universiteit, The Netherlands | |
9 | * Copyright 1993 by David Wexelblat <dwex@XFree86.org> | |
10 | * Copyright 1994, 1996 by Holger Veit <Holger.Veit@gmd.de> | |
11 | * Copyright 1994-2003 by The XFree86 Project, Inc | |
12 | * | |
13 | * Permission to use, copy, modify, distribute, and sell this software and its | |
14 | * documentation for any purpose is hereby granted without fee, provided that | |
15 | * the above copyright notice appear in all copies and that both that | |
16 | * copyright notice and this permission notice appear in supporting | |
17 | * documentation, and that the names of the above listed copyright holders | |
18 | * not be used in advertising or publicity pertaining to distribution of | |
19 | * the software without specific, written prior permission. The above listed | |
20 | * copyright holders make no representations about the suitability of this | |
21 | * software for any purpose. It is provided "as is" without express or | |
22 | * implied warranty. | |
23 | * | |
24 | * THE ABOVE LISTED COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD | |
25 | * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | |
26 | * AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDERS BE | |
27 | * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY | |
28 | * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER | |
29 | * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING | |
30 | * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
31 | * | |
32 | */ | |
33 | ||
34 | /* | |
35 | * The ARM32 code here carries the following copyright: | |
36 | * | |
37 | * Copyright 1997 | |
38 | * Digital Equipment Corporation. All rights reserved. | |
39 | * This software is furnished under license and may be used and copied only in | |
40 | * accordance with the following terms and conditions. Subject to these | |
41 | * conditions, you may download, copy, install, use, modify and distribute | |
42 | * this software in source and/or binary form. No title or ownership is | |
43 | * transferred hereby. | |
44 | * | |
45 | * 1) Any source code used, modified or distributed must reproduce and retain | |
46 | * this copyright notice and list of conditions as they appear in the | |
47 | * source file. | |
48 | * | |
49 | * 2) No right is granted to use any trade name, trademark, or logo of Digital | |
50 | * Equipment Corporation. Neither the "Digital Equipment Corporation" | |
51 | * name nor any trademark or logo of Digital Equipment Corporation may be | |
52 | * used to endorse or promote products derived from this software without | |
53 | * the prior written permission of Digital Equipment Corporation. | |
54 | * | |
55 | * 3) This software is provided "AS-IS" and any express or implied warranties, | |
56 | * including but not limited to, any implied warranties of merchantability, | |
57 | * fitness for a particular purpose, or non-infringement are disclaimed. | |
58 | * In no event shall DIGITAL be liable for any damages whatsoever, and in | |
59 | * particular, DIGITAL shall not be liable for special, indirect, | |
60 | * consequential, or incidental damages or damages for lost profits, loss | |
61 | * of revenue or loss of use, whether such damages arise in contract, | |
62 | * negligence, tort, under statute, in equity, at law or otherwise, even | |
63 | * if advised of the possibility of such damage. | |
64 | * | |
65 | */ | |
66 | ||
67 | #ifndef _XF86_OSPROC_H | |
68 | #define _XF86_OSPROC_H | |
69 | ||
70 | /* | |
71 | * The actual prototypes have been pulled into this seperate file so | |
72 | * that they can can be used without pulling in all of the OS specific | |
73 | * stuff like sys/stat.h, etc. This casues problem for loadable modules. | |
74 | */ | |
75 | ||
76 | /* | |
77 | * Flags for xf86MapVidMem(). Multiple flags can be or'd together. The | |
78 | * flags may be used as hints. For example it would be permissible to | |
79 | * enable write combining for memory marked only for framebuffer use. | |
80 | */ | |
81 | ||
82 | #define VIDMEM_FRAMEBUFFER 0x01 /* memory for framebuffer use */ | |
83 | #define VIDMEM_MMIO 0x02 /* memory for I/O use */ | |
84 | #define VIDMEM_MMIO_32BIT 0x04 /* memory accesses >= 32bit */ | |
85 | #define VIDMEM_READSIDEEFFECT 0x08 /* reads can have side-effects */ | |
86 | #define VIDMEM_SPARSE 0x10 /* sparse mapping required | |
87 | * assumed when VIDMEM_MMIO is | |
88 | * set. May be used with | |
89 | * VIDMEM_FRAMEBUFFER) */ | |
90 | #define VIDMEM_READONLY 0x20 /* read-only mapping | |
91 | * used when reading BIOS images | |
92 | * through xf86MapVidMem() */ | |
93 | ||
94 | /* | |
95 | * OS-independent modem state flags for xf86SetSerialModemState() and | |
96 | * xf86GetSerialModemState(). | |
97 | */ | |
98 | #define XF86_M_LE 0x001 /* line enable */ | |
99 | #define XF86_M_DTR 0x002 /* data terminal ready */ | |
100 | #define XF86_M_RTS 0x004 /* request to send */ | |
101 | #define XF86_M_ST 0x008 /* secondary transmit */ | |
102 | #define XF86_M_SR 0x010 /* secondary receive */ | |
103 | #define XF86_M_CTS 0x020 /* clear to send */ | |
104 | #define XF86_M_CAR 0x040 /* carrier detect */ | |
105 | #define XF86_M_RNG 0x080 /* ring */ | |
106 | #define XF86_M_DSR 0x100 /* data set ready */ | |
107 | ||
108 | #ifndef NO_OSLIB_PROTOTYPES | |
109 | /* | |
110 | * This is to prevent re-entrancy to FatalError() when aborting. | |
111 | * Anything that can be called as a result of AbortDDX() should use this | |
112 | * instead of FatalError(). | |
113 | */ | |
114 | ||
115 | #define xf86FatalError(a, b) \ | |
116 | if (dispatchException & DE_TERMINATE) { \ | |
117 | ErrorF(a, b); \ | |
118 | ErrorF("\n"); \ | |
119 | return; \ | |
120 | } else FatalError(a, b) | |
121 | ||
122 | /***************************************************************************/ | |
123 | /* Prototypes */ | |
124 | /***************************************************************************/ | |
125 | ||
126 | #include <X11/Xfuncproto.h> | |
127 | #include "opaque.h" | |
128 | #include "xf86Optionstr.h" | |
129 | ||
130 | _XFUNCPROTOBEGIN | |
131 | ||
132 | /* public functions */ | |
133 | extern _X_EXPORT Bool xf86LinearVidMem(void); | |
134 | extern _X_EXPORT _X_DEPRECATED Bool xf86CheckMTRR(int); | |
135 | extern _X_EXPORT _X_DEPRECATED pointer xf86MapVidMem(int, int, unsigned long, | |
136 | unsigned long); | |
137 | extern _X_EXPORT _X_DEPRECATED void xf86UnMapVidMem(int, pointer, | |
138 | unsigned long); | |
139 | extern _X_EXPORT int xf86ReadBIOS(unsigned long, unsigned long, unsigned char *, | |
140 | int); | |
141 | extern _X_EXPORT Bool xf86EnableIO(void); | |
142 | extern _X_EXPORT void xf86DisableIO(void); | |
143 | ||
144 | #ifdef __NetBSD__ | |
145 | extern _X_EXPORT void xf86SetTVOut(int); | |
146 | extern _X_EXPORT void xf86SetRGBOut(void); | |
147 | #endif | |
148 | extern _X_EXPORT void xf86OSRingBell(int, int, int); | |
149 | extern _X_EXPORT void xf86SetReallySlowBcopy(void); | |
150 | extern _X_EXPORT void xf86SlowBcopy(unsigned char *, unsigned char *, int); | |
151 | extern _X_EXPORT int xf86OpenSerial(XF86OptionPtr options); | |
152 | extern _X_EXPORT int xf86SetSerial(int fd, XF86OptionPtr options); | |
153 | extern _X_EXPORT int xf86SetSerialSpeed(int fd, int speed); | |
154 | extern _X_EXPORT int xf86ReadSerial(int fd, void *buf, int count); | |
155 | extern _X_EXPORT int xf86WriteSerial(int fd, const void *buf, int count); | |
156 | extern _X_EXPORT int xf86CloseSerial(int fd); | |
157 | extern _X_EXPORT int xf86FlushInput(int fd); | |
158 | extern _X_EXPORT int xf86WaitForInput(int fd, int timeout); | |
159 | extern _X_EXPORT int xf86SerialSendBreak(int fd, int duration); | |
160 | extern _X_EXPORT int xf86SetSerialModemState(int fd, int state); | |
161 | extern _X_EXPORT int xf86GetSerialModemState(int fd); | |
162 | extern _X_EXPORT int xf86SerialModemSetBits(int fd, int bits); | |
163 | extern _X_EXPORT int xf86SerialModemClearBits(int fd, int bits); | |
164 | extern _X_EXPORT int xf86LoadKernelModule(const char *pathname); | |
165 | ||
166 | /* AGP GART interface */ | |
167 | ||
168 | typedef struct _AgpInfo { | |
169 | CARD32 bridgeId; | |
170 | CARD32 agpMode; | |
171 | unsigned long base; | |
172 | unsigned long size; | |
173 | unsigned long totalPages; | |
174 | unsigned long systemPages; | |
175 | unsigned long usedPages; | |
176 | } AgpInfo, *AgpInfoPtr; | |
177 | ||
178 | extern _X_EXPORT Bool xf86AgpGARTSupported(void); | |
179 | extern _X_EXPORT AgpInfoPtr xf86GetAGPInfo(int screenNum); | |
180 | extern _X_EXPORT Bool xf86AcquireGART(int screenNum); | |
181 | extern _X_EXPORT Bool xf86ReleaseGART(int screenNum); | |
182 | extern _X_EXPORT int xf86AllocateGARTMemory(int screenNum, unsigned long size, | |
183 | int type, unsigned long *physical); | |
184 | extern _X_EXPORT Bool xf86DeallocateGARTMemory(int screenNum, int key); | |
185 | extern _X_EXPORT Bool xf86BindGARTMemory(int screenNum, int key, | |
186 | unsigned long offset); | |
187 | extern _X_EXPORT Bool xf86UnbindGARTMemory(int screenNum, int key); | |
188 | extern _X_EXPORT Bool xf86EnableAGP(int screenNum, CARD32 mode); | |
189 | extern _X_EXPORT Bool xf86GARTCloseScreen(int screenNum); | |
190 | ||
191 | /* These routines are in shared/sigio.c and are not loaded as part of the | |
192 | module. These routines are small, and the code if very POSIX-signal (or | |
193 | OS-signal) specific, so it seemed better to provide more complex | |
194 | wrappers than to wrap each individual function called. */ | |
195 | extern _X_EXPORT int xf86InstallSIGIOHandler(int fd, void (*f) (int, void *), | |
196 | void *); | |
197 | extern _X_EXPORT int xf86RemoveSIGIOHandler(int fd); | |
198 | extern _X_EXPORT int xf86BlockSIGIO(void); | |
199 | extern _X_EXPORT void xf86UnblockSIGIO(int); | |
200 | extern _X_EXPORT void xf86AssertBlockedSIGIO(char *); | |
201 | extern _X_EXPORT Bool xf86SIGIOSupported(void); | |
202 | ||
203 | #ifdef XF86_OS_PRIVS | |
204 | typedef void (*PMClose) (void); | |
205 | extern _X_EXPORT void xf86OpenConsole(void); | |
206 | extern _X_EXPORT void xf86CloseConsole(void); | |
207 | extern _X_HIDDEN Bool xf86VTActivate(int vtno); | |
208 | extern _X_EXPORT Bool xf86VTSwitchPending(void); | |
209 | extern _X_EXPORT Bool xf86VTSwitchAway(void); | |
210 | extern _X_EXPORT Bool xf86VTSwitchTo(void); | |
211 | extern _X_EXPORT void xf86VTRequest(int sig); | |
212 | extern _X_EXPORT int xf86ProcessArgument(int, char **, int); | |
213 | extern _X_EXPORT void xf86UseMsg(void); | |
214 | extern _X_EXPORT PMClose xf86OSPMOpen(void); | |
215 | ||
216 | extern _X_EXPORT void xf86InitVidMem(void); | |
217 | ||
218 | #endif /* XF86_OS_PRIVS */ | |
219 | ||
220 | #ifdef XSERVER_PLATFORM_BUS | |
221 | #include "hotplug.h" | |
222 | void | |
223 | xf86PlatformDeviceProbe(struct OdevAttributes *attribs); | |
224 | ||
225 | void | |
226 | xf86PlatformReprobeDevice(int index, struct OdevAttributes *attribs); | |
227 | #endif | |
228 | ||
229 | _XFUNCPROTOEND | |
230 | #endif /* NO_OSLIB_PROTOTYPES */ | |
231 | #endif /* _XF86_OSPROC_H */ |