comparison packages/services/gfx/mw/current/src/nanox/serv.h @ 208:e0c0827131d1 ecos

Merge from eCos master repository on 2002-05-20-20:11:54-BST
author jlarmour
date Mon, 20 May 2002 22:19:26 +0000
parents
children
comparison
equal deleted inserted replaced
207:74c807ddde34 208:e0c0827131d1
1 #ifndef _SERV_H
2 #define _SERV_H
3 /*
4 * Copyright (c) 2000 Greg Haerr <greg@censoft.com>
5 * Copyright (c) 2000 Alex Holden <alex@linuxhacker.org>
6 * Copyright (c) 1991 David I. Bell
7 * Permission is granted to use, distribute, or modify this source,
8 * provided that this copyright notice remains intact.
9 *
10 * Private definitions for the graphics server.
11 * These definitions are not to be used by clients.
12 */
13
14 #if defined(__ECOS) && !defined(_NO_SVR_MAPPING)
15 //
16 // Since eCos is a single task, multi-threaded environment, the
17 // server and the client code share the same namespace. This means
18 // that server functions which are represented by dispatchers in
19 // the client code need to have unique names, thus this remapping.
20 //
21 #define GrArcAngle SVR_GrArcAngle
22 #define GrArc SVR_GrArc
23 #define GrArea SVR_GrArea
24 #define GrBell SVR_GrBell
25 #define GrBitmap SVR_GrBitmap
26 #define GrCheckNextEvent SVR_GrCheckNextEvent
27 #define GrClearWindow SVR_GrClearWindow
28 #define GrClose SVR_GrClose
29 #define GrCloseWindow SVR_GrCloseWindow
30 #define GrCopyArea SVR_GrCopyArea
31 #define GrCopyGC SVR_GrCopyGC
32 #define GrCreateFont SVR_GrCreateFont
33 #define GrDestroyFont SVR_GrDestroyFont
34 #define GrDestroyGC SVR_GrDestroyGC
35 #define GrDestroyRegion SVR_GrDestroyRegion
36 #define GrDestroyWindow SVR_GrDestroyWindow
37 #define GrDrawImageBits SVR_GrDrawImageBits
38 #define GrDrawImageFromFile SVR_GrDrawImageFromFile
39 #define GrDrawImageToFit SVR_GrDrawImageToFit
40 #define GrEllipse SVR_GrEllipse
41 #define GrEmptyRegion SVR_GrEmptyRegion
42 #define GrEqualRegion SVR_GrEqualRegion
43 #define GrFillEllipse SVR_GrFillEllipse
44 #define GrFillPoly SVR_GrFillPoly
45 #define GrFillRect SVR_GrFillRect
46 #define GrFindColor SVR_GrFindColor
47 #define GrFreeImage SVR_GrFreeImage
48 #define GrGetFocus SVR_GrGetFocus
49 #define GrGetFontInfo SVR_GrGetFontInfo
50 #define GrGetGCInfo SVR_GrGetGCInfo
51 #define GrGetGCTextSize SVR_GrGetGCTextSize
52 #define GrGetImageInfo SVR_GrGetImageInfo
53 #define GrGetRegionBox SVR_GrGetRegionBox
54 #define GrGetScreenInfo SVR_GrGetScreenInfo
55 #define GrGetSelectionOwner SVR_GrGetSelectionOwner
56 #define GrGetSysColor SVR_GrGetSysColor
57 #define GrGetSystemPalette SVR_GrGetSystemPalette
58 #define GrGetWindowInfo SVR_GrGetWindowInfo
59 #define GrGetWMProperties SVR_GrGetWMProperties
60 #define GrInjectKeyboardEvent SVR_GrInjectKeyboardEvent
61 #define GrInjectPointerEvent SVR_GrInjectPointerEvent
62 #define GrIntersectRegion SVR_GrIntersectRegion
63 #define GrKillWindow SVR_GrKillWindow
64 #define GrLine SVR_GrLine
65 #define GrLoadImageFromFile SVR_GrLoadImageFromFile
66 #define GrLowerWindow SVR_GrLowerWindow
67 #define GrMapWindow SVR_GrMapWindow
68 #define GrMoveCursor SVR_GrMoveCursor
69 #define GrMoveWindow SVR_GrMoveWindow
70 #define GrNewGC SVR_GrNewGC
71 #define GrNewInputWindow SVR_GrNewInputWindow
72 #define GrNewPixmap SVR_GrNewPixmap
73 #define GrNewPolygonRegion SVR_GrNewPolygonRegion
74 #define GrNewRegion SVR_GrNewRegion
75 #define GrNewWindow SVR_GrNewWindow
76 #define GrOffsetRegion SVR_GrOffsetRegion
77 #define GrOpen SVR_GrOpen
78 #define GrPeekEvent SVR_GrPeekEvent
79 #define GrPointInRegion SVR_GrPointInRegion
80 #define GrPoints SVR_GrPoints
81 #define GrPoint SVR_GrPoint
82 #define GrPoly SVR_GrPoly
83 #define GrRaiseWindow SVR_GrRaiseWindow
84 #define GrReadArea SVR_GrReadArea
85 #define GrRectInRegion SVR_GrRectInRegion
86 #define GrRect SVR_GrRect
87 #define GrReparentWindow SVR_GrReparentWindow
88 #define GrRequestClientData SVR_GrRequestClientData
89 #define GrResizeWindow SVR_GrResizeWindow
90 #define GrSelectEvents SVR_GrSelectEvents
91 #define GrSendClientData SVR_GrSendClientData
92 #define GrSetBackgroundPixmap SVR_GrSetBackgroundPixmap
93 #define GrSetBorderColor SVR_GrSetBorderColor
94 #define GrSetCursor SVR_GrSetCursor
95 #define GrSetFocus SVR_GrSetFocus
96 #define GrSetFontAttr SVR_GrSetFontAttr
97 #define GrSetFontRotation SVR_GrSetFontRotation
98 #define GrSetFontSize SVR_GrSetFontSize
99 #define GrSetGCBackground SVR_GrSetGCBackground
100 #define GrSetGCFont SVR_GrSetGCFont
101 #define GrSetGCForeground SVR_GrSetGCForeground
102 #define GrSetGCMode SVR_GrSetGCMode
103 #define GrSetGCRegion SVR_GrSetGCRegion
104 #define GrSetGCUseBackground SVR_GrSetGCUseBackground
105 #define GrSetScreenSaverTimeout SVR_GrSetScreenSaverTimeout
106 #define GrSetSelectionOwner SVR_GrSetSelectionOwner
107 #define GrSetSystemPalette SVR_GrSetSystemPalette
108 #define GrSetWMProperties SVR_GrSetWMProperties
109 #define GrSubtractRegion SVR_GrSubtractRegion
110 #define GrText SVR_GrText
111 #define GrUnionRectWithRegion SVR_GrUnionRectWithRegion
112 #define GrUnionRegion SVR_GrUnionRegion
113 #define GrUnmapWindow SVR_GrUnmapWindow
114 #define GrXorRegion SVR_GrXorRegion
115 #define GrDelay SVR_GrDelay
116 #define GrSetGCClipOrigin SVR_GrSetGCClipOrigin
117 #define GrClearArea SVR_GrClearArea
118 #define GrNewCursor SVR_GrNewCursor
119 #define GrDestroyCursor SVR_GrDestroyCursor
120 #define GrSetWindowCursor SVR_GrSetWindowCursor
121 #define GrDrawImageFromBuffer SVR_GrDrawImageFromBuffer
122 #define GrLoadImageFromBuffer SVR_GrLoadImageFromBuffer
123 #define GrGetFontList SVR_GrGetFontList
124 #define GrFreeFontList SVR_GrFreeFontList
125 #define GrQueryTree SVR_GrQueryTree
126 #define GrCreateTimer SVR_GrCreateTimer
127 #define GrDestroyTimer SVR_GrDestroyTimer
128 #define GrSetPortraitMode SVR_GrSetPortraitMode
129 #endif
130
131 #include "nano-X.h"
132 #include "device.h"
133
134 /*
135 * Drawing types.
136 */
137 typedef int GR_DRAW_TYPE;
138
139 #define GR_DRAW_TYPE_NONE 0 /* none or error */
140 #define GR_DRAW_TYPE_WINDOW 1 /* windows */
141 #define GR_DRAW_TYPE_PIXMAP 2 /* pixmaps */
142
143 #define GR_MAX_MODE MWMODE_MAX
144 /*
145 * List of elements for events.
146 */
147 typedef struct gr_event_list GR_EVENT_LIST;
148 struct gr_event_list {
149 GR_EVENT_LIST *next; /* next element in list */
150 GR_EVENT event; /* event */
151 };
152
153 /*
154 * Data structure to keep track of state of clients.
155 */
156 typedef struct gr_client GR_CLIENT;
157 struct gr_client {
158 int id; /* client id and socket descriptor */
159 GR_EVENT_LIST *eventhead; /* head of event chain (or NULL) */
160 GR_EVENT_LIST *eventtail; /* tail of event chain (or NULL) */
161 GR_CLIENT *next; /* the next client in the list */
162 GR_CLIENT *prev; /* the previous client in the list */
163 int waiting_for_event; /* used to implement GrGetNextEvent*/
164 char *shm_cmds;
165 int shm_cmds_size;
166 int shm_cmds_shmid;
167 unsigned long processid; /* client process id*/
168 };
169
170 /*
171 * Structure to remember clients associated with events.
172 */
173 typedef struct gr_event_client GR_EVENT_CLIENT;
174 struct gr_event_client {
175 GR_EVENT_CLIENT *next; /* next interested client or NULL */
176 GR_EVENT_MASK eventmask; /* events client wants to see */
177 GR_CLIENT *client; /* client who is interested */
178 };
179
180 /*
181 * Structure to remember graphics contexts.
182 */
183 typedef struct gr_gc GR_GC;
184 struct gr_gc {
185 GR_GC_ID id; /* graphics context id */
186 int mode; /* drawing mode */
187 GR_REGION_ID regionid; /* current clipping region */
188 int xoff; /* X offset for the clip region */
189 int yoff; /* Y offset for the clip region */
190 GR_FONT_ID fontid; /* current font id*/
191 GR_COLOR foreground; /* foreground color */
192 GR_COLOR background; /* background color */
193 GR_BOOL usebackground; /* actually display the background */
194 GR_BOOL changed; /* graphics context has been changed */
195 GR_CLIENT *owner; /* client that created it */
196 GR_GC *next; /* next graphics context */
197 };
198
199 /*
200 * Structure to remember regions.
201 */
202 typedef struct gr_region GR_REGION;
203 struct gr_region {
204 MWCLIPREGION * rgn;
205 GR_REGION_ID id;
206 GR_CLIENT * owner; /* client that created it */
207 GR_REGION * next;
208 };
209
210 /*
211 * Structure to remember fonts.
212 */
213 typedef struct gr_font GR_FONT;
214 struct gr_font {
215 PMWFONT pfont; /* font*/
216 int fontsize; /* font size*/
217 GR_FONT_ID id; /* font id*/
218 GR_CLIENT * owner; /* client that created it */
219 GR_FONT * next; /* next font*/
220 };
221
222 /*
223 * Structure to remember images.
224 */
225 typedef struct gr_image GR_IMAGE;
226 struct gr_image {
227 GR_IMAGE_ID id;
228 GR_CLIENT * owner; /* client that created it */
229 GR_IMAGE * next;
230 };
231
232 /*
233 * Cursor structure.
234 */
235 typedef struct gr_cursor GR_CURSOR;
236 struct gr_cursor {
237 GR_CURSOR_ID id; /* cursor id*/
238 GR_CLIENT *owner; /* client that created it*/
239 GR_CURSOR *next;
240 MWCURSOR cursor; /* mwin engine cursor structure*/
241 };
242
243 /*
244 * Structure to remember selection owner and mime types it can produce.
245 */
246 typedef struct {
247 GR_WINDOW_ID wid;
248 GR_CHAR *typelist;
249 } GR_SELECTIONOWNER;
250
251
252 /*
253 * Structure to remember timers.
254 */
255 typedef struct gr_timer GR_TIMER;
256 struct gr_timer
257 {
258 GR_TIMER_ID id; /* This instances ID */
259 GR_CLIENT *owner; /* client that created it */
260 GR_WINDOW_ID wid;
261 MWTIMER *timer; /* Device independent layer timer */
262 GR_TIMER *next;
263 };
264
265 /*
266 * Drawable structure. This structure must be the first
267 * elements in a GR_WINDOW or GR_PIXMAP, as GrPrepareWindow
268 * returns a GR_DRAWABLE. This structure includes
269 * only those items that routines that use GrPrepareWindow
270 * might dereference, and must be included in windows or pixmaps.
271 */
272 typedef struct gr_drawable {
273 GR_COORD x; /* x position (0)*/
274 GR_COORD y; /* y position (0)*/
275 GR_SIZE width; /* width */
276 GR_SIZE height; /* height */
277 struct _mwscreendevice *psd; /* associated screen device */
278 GR_WINDOW_ID id; /* window/pixmap id */
279 } GR_DRAWABLE;
280
281 /*
282 * Window structure
283 * Note: first elements must match GR_DRAWABLE
284 */
285 typedef struct gr_pixmap GR_PIXMAP;
286 typedef struct gr_window GR_WINDOW;
287 struct gr_window {
288 GR_COORD x; /* absolute x position */
289 GR_COORD y; /* absolute y position */
290 GR_SIZE width; /* width */
291 GR_SIZE height; /* height */
292 struct _mwscreendevice *psd; /* associated screen device */
293 GR_WINDOW_ID id; /* window id */
294 /* end of GR_DRAWABLE common members*/
295
296 GR_WINDOW *next; /* next window in complete list */
297 GR_CLIENT *owner; /* client that created it */
298 GR_WINDOW *parent; /* parent window */
299 GR_WINDOW *children; /* first child window */
300 GR_WINDOW *siblings; /* next sibling window */
301 GR_SIZE bordersize; /* size of border */
302 GR_COLOR bordercolor; /* color of border */
303 GR_COLOR background; /* background color */
304 GR_PIXMAP *bgpixmap; /* background pixmap */
305 int bgpixmapflags; /* center, tile etc. */
306 GR_EVENT_MASK nopropmask; /* events not to be propagated */
307 GR_EVENT_CLIENT *eventclients; /* clients interested in events */
308 GR_CURSOR_ID cursorid; /* cursor for this window */
309 GR_BOOL mapped; /* TRUE if explicitly mapped */
310 GR_COUNT unmapcount; /* count of reasons not really mapped */
311 GR_BOOL output; /* TRUE if window can do output */
312 GR_WM_PROPS props; /* window properties*/
313 GR_CHAR *title; /* window title*/
314 };
315
316 /*
317 * Pixmap structure
318 * Note: first elements must match GR_DRAWABLE
319 */
320 struct gr_pixmap {
321 GR_COORD x; /* x position (0)*/
322 GR_COORD y; /* y position (0)*/
323 GR_SIZE width; /* width */
324 GR_SIZE height; /* height */
325 struct _mwscreendevice *psd; /* associated screen device */
326 GR_WINDOW_ID id; /* pixmap id */
327 /* end of GR_DRAWABLE common members*/
328
329 GR_PIXMAP *next; /* next pixmap in list */
330 GR_CLIENT *owner; /* client that created it */
331 };
332
333 /*
334 * Macros to obtain the client number from a resource id, and to
335 * produce the first resource id to be used for a client number.
336 * Client numbers must not be zero. This allows for 255 clients.
337 #define GR_ID_CLIENT(n) (((GR_ID) (n)) >> 24)
338 #define GR_ID_BASE(n) (((GR_ID) (n)) << 24)
339 */
340
341 /*
342 * Graphics server routines.
343 */
344 int GsInitialize(void);
345 void GsClose(int fd);
346 void GsSelect(GR_TIMEOUT timeout);
347 void GsTerminate(void);
348 GR_TIMEOUT GsGetTickCount(void);
349 void GsRedrawScreen(void);
350 void GsError(GR_ERROR code, GR_ID id);
351 GR_BOOL GsCheckMouseEvent(void);
352 GR_BOOL GsCheckKeyboardEvent(void);
353 int GsReadKeyboard(GR_CHAR *buf, int *modifiers);
354 int GsOpenKeyboard(void);
355 void GsGetButtonInfo(int *buttons);
356 void GsGetModifierInfo(int *modifiers);
357 void GsCloseKeyboard(void);
358 void GsExposeArea(GR_WINDOW *wp, GR_COORD rootx, GR_COORD rooty,
359 GR_SIZE width, GR_SIZE height, GR_WINDOW *stopwp);
360 void GsCheckCursor(void);
361 void GsWpSetFocus(GR_WINDOW *wp);
362 void GsWpDrawBackgroundPixmap(GR_WINDOW *wp, GR_PIXMAP *pm,
363 GR_COORD x, GR_COORD y, GR_SIZE width, GR_SIZE height);
364 void GsWpTileBackgroundPixmap(GR_WINDOW *wp, GR_PIXMAP *pm,
365 GR_COORD x, GR_COORD y, GR_SIZE width, GR_SIZE height);
366 void GsWpClearWindow(GR_WINDOW *wp, GR_COORD x, GR_COORD y,
367 GR_SIZE width, GR_SIZE height, GR_BOOL exposeflag);
368 void GsWpUnmapWindow(GR_WINDOW *wp, GR_BOOL temp_unmap);
369 void GsWpMapWindow(GR_WINDOW *wp, GR_BOOL temp);
370 void GsWpDestroyWindow(GR_WINDOW *wp);
371 void GsSetPortraitMode(int mode);
372 void GsSetPortraitModeFromXY(GR_COORD rootx, GR_COORD rooty);
373 void GsSetClipWindow(GR_WINDOW *wp, MWCLIPREGION *userregion,
374 int flags);
375 void GsHandleMouseStatus(GR_COORD newx, GR_COORD newy,
376 int newbuttons);
377 void GsFreePositionEvent(GR_CLIENT *client, GR_WINDOW_ID wid,
378 GR_WINDOW_ID subwid);
379 void GsDeliverButtonEvent(GR_EVENT_TYPE type, int buttons,
380 int changebuttons, int modifiers);
381 void GsDeliverMotionEvent(GR_EVENT_TYPE type, int buttons,
382 MWKEYMOD modifiers);
383 void GsDeliverKeyboardEvent(GR_WINDOW_ID wid, GR_EVENT_TYPE type,
384 GR_KEY keyvalue, GR_KEYMOD modifiers,
385 GR_SCANCODE scancode);
386 void GsDeliverExposureEvent(GR_WINDOW *wp, GR_COORD x, GR_COORD y,
387 GR_SIZE width, GR_SIZE height);
388 void GsFreeExposureEvent(GR_CLIENT *client, GR_WINDOW_ID wid,
389 GR_COORD x, GR_COORD y, GR_SIZE width, GR_SIZE height);
390 void GsDeliverUpdateEvent(GR_WINDOW *wp, GR_UPDATE_TYPE utype,
391 GR_COORD x, GR_COORD y, GR_SIZE width, GR_SIZE height);
392 void GsDeliverGeneralEvent(GR_WINDOW *wp, GR_EVENT_TYPE type,
393 GR_WINDOW *other);
394 void GsDeliverPortraitChangedEvent(void);
395 void GsDeliverScreenSaverEvent(GR_BOOL activate);
396 void GsDeliverClientDataReqEvent(GR_WINDOW_ID wid, GR_WINDOW_ID rid,
397 GR_SERIALNO serial, GR_MIMETYPE mimetype);
398 void GsDeliverClientDataEvent(GR_WINDOW_ID wid, GR_WINDOW_ID rid,
399 GR_SERIALNO serial, GR_LENGTH len, GR_LENGTH thislen,
400 void *data);
401 void GsDeliverSelectionChangedEvent(GR_WINDOW_ID old_owner,
402 GR_WINDOW_ID new_owner);
403 void GsDeliverTimerEvent(GR_CLIENT *client, GR_WINDOW_ID wid,
404 GR_TIMER_ID tid);
405 void GsCheckMouseWindow(void);
406 void GsCheckFocusWindow(void);
407 GR_DRAW_TYPE GsPrepareDrawing(GR_DRAW_ID id, GR_GC_ID gcid,
408 GR_DRAWABLE **retdp);
409 GR_BOOL GsCheckOverlap(GR_WINDOW *topwp, GR_WINDOW *botwp);
410 GR_EVENT *GsAllocEvent(GR_CLIENT *client);
411 GR_WINDOW *GsFindWindow(GR_WINDOW_ID id);
412 GR_PIXMAP *GsFindPixmap(GR_WINDOW_ID id);
413 GR_GC *GsFindGC(GR_GC_ID gcid);
414 GR_REGION *GsFindRegion(GR_REGION_ID regionid);
415 GR_FONT *GsFindFont(GR_FONT_ID fontid);
416 GR_TIMER *GsFindTimer(GR_TIMER_ID timer_id);
417 GR_CURSOR *GsFindCursor(GR_CURSOR_ID cursorid);
418 GR_WINDOW *GsPrepareWindow(GR_WINDOW_ID wid);
419 GR_WINDOW *GsFindVisibleWindow(GR_COORD x, GR_COORD y);
420 void GsDrawBorder(GR_WINDOW *wp);
421 int GsCurrentVt(void);
422 void GsRedrawVt(int t);
423 int GsOpenSocket(void);
424 void GsCloseSocket(void);
425 void GsAcceptClient(void);
426 void GsAcceptClientFd(int i);
427 int GsPutCh(int fd, unsigned char c);
428 GR_CLIENT *GsFindClient(int fd);
429 void GsDestroyClientResources(GR_CLIENT * client);
430 void GsDropClient(int fd);
431 int GsRead(int fd, void *buf, int c);
432 int GsWrite(int fd, void *buf, int c);
433 void GsHandleClient(int fd);
434 void GsResetScreenSaver(void);
435 void GsActivateScreenSaver(void *arg);
436 void GrGetNextEventWrapperFinish(int);
437 void GsTimerCB(void *arg);
438
439 /*
440 * External data definitions.
441 */
442 extern char * curfunc; /* current function name */
443 extern GR_WINDOW_ID cachewindowid; /* cached window id */
444 extern GR_WINDOW_ID cachepixmapid;
445 extern GR_GC_ID cachegcid; /* cached graphics context id */
446 extern GR_GC *cachegcp; /* cached graphics context */
447 extern GR_GC *listgcp; /* list of all gc */
448 extern GR_REGION *listregionp; /* list of all regions */
449 extern GR_FONT *listfontp; /* list of all fonts */
450 extern GR_IMAGE *listimagep; /* list of all images */
451 extern GR_CURSOR *listcursorp; /* list of all cursors */
452 extern GR_CURSOR *stdcursor; /* root window cursor */
453 extern GR_GC *curgcp; /* current graphics context */
454 extern GR_WINDOW *cachewp; /* cached window pointer */
455 extern GR_PIXMAP *cachepp; /* cached pixmap pointer */
456 extern GR_WINDOW *listwp; /* list of all windows */
457 extern GR_PIXMAP *listpp; /* list of all pixmaps */
458 extern GR_WINDOW *rootwp; /* root window pointer */
459 extern GR_WINDOW *clipwp; /* window clipping is set for */
460 extern GR_WINDOW *focuswp; /* focus window for keyboard */
461 extern GR_WINDOW *mousewp; /* window mouse is currently in */
462 extern GR_WINDOW *grabbuttonwp; /* window grabbed by button */
463 extern GR_CURSOR *curcursor; /* currently enabled cursor */
464 extern GR_COORD cursorx; /* x position of cursor */
465 extern GR_COORD cursory; /* y position of cursor */
466 extern int curbuttons; /* current state of buttons */
467 extern GR_CLIENT *curclient; /* current client */
468 extern char *current_shm_cmds;
469 extern int current_shm_cmds_size;
470 extern GR_EVENT_LIST *eventfree; /* list of free events */
471 extern GR_BOOL focusfixed; /* TRUE if focus is fixed */
472 extern GR_SCREEN_INFO sinfo; /* screen information */
473 extern PMWFONT stdfont; /* default font*/
474 extern int escape_quits; /* terminate when pressing ESC*/
475 extern int connectcount; /* # of connections to server */
476 extern GR_TIMEOUT screensaver_delay; /* time before screensaver */
477 /* activates */
478 extern GR_TIMER_ID cache_timer_id; /* cached timer ID */
479 extern GR_TIMER *cache_timer; /* cached timer */
480 extern GR_TIMER *list_timer; /* list of all timers */
481
482 extern GR_BOOL screensaver_active; /* screensaver is active */
483 extern GR_SELECTIONOWNER selection_owner; /* the selection owner */
484 extern int autoportrait; /* auto portrait mode switching*/
485
486 /*
487 * The filename to use for the named socket. If we ever support multiple
488 * servers on one machine, the last digit will be that of the FB used for it.
489 */
490 #define GR_NAMED_SOCKET "/tmp/.nano-X"
491 #define GR_NUMB_SOCKET 79
492
493 #if VTSWITCH
494 /* temp framebuffer vt switch stuff at upper level
495 * this should be handled at the lower level, just like vgalib does.
496 */
497 void MwInitVt(void);
498 int MwCurrentVt(void);
499 int MwCheckVtChange(void);
500 void MwRedrawVt(int t);
501 void MwExitVt(void);
502 extern int mwvterm;
503 #endif /* VTSWITCH*/
504
505 #endif /* _SERV_H*/