1/*
2
3Copyright 1990, 1991, 1998  The Open Group
4
5Permission to use, copy, modify, distribute, and sell this software and its
6documentation for any purpose is hereby granted without fee, provided that
7the above copyright notice appear in all copies and that both that
8copyright notice and this permission notice appear in supporting
9documentation.
10
11The above copyright notice and this permission notice shall be included in
12all copies or substantial portions of the Software.
13
14THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
17OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
21Except as contained in this notice, the name of The Open Group shall not be
22used in advertising or otherwise to promote the sale, use or other dealings
23in this Software without prior written authorization from The Open Group.
24
25 * Copyright 1990, 1991 Network Computing Devices;
26 * Portions Copyright 1987 by Digital Equipment Corporation
27 *
28 * Permission to use, copy, modify, distribute, and sell this software and
29 * its documentation for any purpose is hereby granted without fee, provided
30 * that the above copyright notice appear in all copies and that both that
31 * copyright notice and this permission notice appear in supporting
32 * documentation, and that the names of Network Computing Devices, or Digital
33 * not be used in advertising or publicity pertaining to distribution
34 * of the software without specific, written prior permission.
35 *
36 * NETWORK COMPUTING DEVICES, AND DIGITAL DISCLAIM ALL WARRANTIES WITH
37 * REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
38 * MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES,
39 * OR DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
40 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
41 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
42 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
43 * THIS SOFTWARE.
44 */
45
46#ifndef _FS_PROTO_H_
47#define _FS_PROTO_H_
48
49#include <X11/fonts/FS.h>
50
51#define sz_fsPropOffset 20
52#define sz_fsPropInfo 8
53#define sz_fsResolution 6
54
55#define sz_fsChar2b 2
56#define sz_fsChar2b_version1 2
57#define sz_fsOffset32 8
58#define sz_fsRange		4
59
60#define	sz_fsXCharInfo		12
61#define	sz_fsXFontInfoHeader		40
62
63#define	sz_fsConnClientPrefix	8
64#define	sz_fsConnSetup		12
65#define	sz_fsConnSetupExtra	8
66#define	sz_fsConnSetupAccept	12
67
68/* request sizes */
69#define	sz_fsReq		4
70#define	sz_fsListExtensionsReq	4
71#define	sz_fsResourceReq	8
72
73#define	sz_fsNoopReq			4
74#define	sz_fsListExtensionReq		4
75#define	sz_fsQueryExtensionReq		4
76#define	sz_fsListCataloguesReq		12
77#define	sz_fsSetCataloguesReq		4
78#define	sz_fsGetCataloguesReq		4
79#define	sz_fsSetEventMaskReq		8
80#define	sz_fsGetEventMaskReq		4
81#define	sz_fsCreateACReq		8
82#define	sz_fsFreeACReq			8
83#define	sz_fsSetAuthorizationReq	8
84#define	sz_fsSetResolutionReq		4
85#define	sz_fsGetResolutionReq		4
86#define	sz_fsListFontsReq		12
87#define	sz_fsListFontsWithXInfoReq	12
88#define	sz_fsOpenBitmapFontReq		16
89#define	sz_fsQueryXInfoReq		8
90#define	sz_fsQueryXExtents8Req		12
91#define	sz_fsQueryXExtents16Req		12
92#define	sz_fsQueryXBitmaps8Req		16
93#define	sz_fsQueryXBitmaps16Req		16
94#define	sz_fsCloseReq			8
95
96/* reply sizes */
97#define	sz_fsReply			8
98#define	sz_fsGenericReply		8
99
100#define	sz_fsListExtensionsReply	8
101#define	sz_fsQueryExtensionReply	20
102#define	sz_fsListCataloguesReply	16
103#define	sz_fsGetCataloguesReply		8
104#define	sz_fsGetEventMaskReply		12
105#define	sz_fsCreateACReply		12
106#define	sz_fsGetResolutionReply		8
107#define	sz_fsListFontsReply		16
108#define	sz_fsListFontsWithXInfoReply	(12 + sz_fsXFontInfoHeader)
109#define	sz_fsOpenBitmapFontReply	16
110#define	sz_fsQueryXInfoReply		(8 + sz_fsXFontInfoHeader)
111#define	sz_fsQueryXExtents8Reply	12
112#define	sz_fsQueryXExtents16Reply	12
113#define	sz_fsQueryXBitmaps8Reply	20
114#define	sz_fsQueryXBitmaps16Reply	20
115
116#define	sz_fsError		16
117#define	sz_fsEvent		12
118#define sz_fsKeepAliveEvent 	12
119
120#define	fsTrue	1
121#define	fsFalse	0
122
123/* temp decls */
124#define	Mask		CARD32
125#define	Font		CARD32
126#define	AccContext	CARD32
127
128typedef CARD32	fsTimestamp;
129
130#ifdef NOTDEF /* in fsmasks.h */
131typedef CARD32	fsBitmapFormat;
132typedef CARD32	fsBitmapFormatMask;
133#endif
134
135#define sz_fsBitmapFormat	4
136
137typedef struct {
138    INT16	left,
139		right;
140    INT16	width;
141    INT16	ascent,
142		descent;
143    CARD16	attributes;
144}           fsXCharInfo;
145
146typedef struct {
147    CARD8       high;
148    CARD8       low;
149}           fsChar2b;
150
151typedef struct {
152    CARD8       low;
153    CARD8       high;
154}           fsChar2b_version1;
155
156typedef struct {
157    CARD8	min_char_high;
158    CARD8	min_char_low;
159    CARD8	max_char_high;
160    CARD8	max_char_low;
161}           fsRange;
162
163typedef struct	{
164    CARD32	position;
165    CARD32	length;
166}	    fsOffset32;
167
168typedef struct {
169    fsOffset32	name;
170    fsOffset32	value;
171    CARD8 	type;
172    BYTE        pad0;
173    CARD16	pad1;
174}           fsPropOffset;
175
176typedef struct {
177    CARD32	num_offsets;
178    CARD32	data_len;
179    /* offsets */
180    /* data */
181}	    fsPropInfo;
182
183typedef struct {
184    CARD16	x_resolution;
185    CARD16	y_resolution;
186    CARD16	point_size;
187}	    fsResolution;
188
189
190typedef struct {
191    CARD32	flags;
192    CARD8	char_range_min_char_high;
193    CARD8	char_range_min_char_low;
194    CARD8	char_range_max_char_high;
195    CARD8	char_range_max_char_low;
196
197    CARD8	draw_direction;
198    CARD8	pad;
199    CARD8	default_char_high;
200    CARD8	default_char_low;
201    INT16	min_bounds_left;
202    INT16	min_bounds_right;
203
204    INT16	min_bounds_width;
205    INT16	min_bounds_ascent;
206    INT16	min_bounds_descent;
207    CARD16	min_bounds_attributes;
208
209    INT16	max_bounds_left;
210    INT16	max_bounds_right;
211    INT16	max_bounds_width;
212    INT16	max_bounds_ascent;
213
214    INT16	max_bounds_descent;
215    CARD16	max_bounds_attributes;
216    INT16	font_ascent;
217    INT16	font_descent;
218    /* propinfo */
219}           fsXFontInfoHeader;
220
221
222/* requests */
223
224typedef struct {
225    BYTE        byteOrder;
226    CARD8       num_auths;
227    CARD16      major_version;
228    CARD16      minor_version;
229    CARD16      auth_len;
230    /* auth data */
231}           fsConnClientPrefix;
232
233typedef struct {
234    CARD16	status;
235    CARD16 	major_version;
236    CARD16 	minor_version;
237    CARD8	num_alternates;
238    CARD8	auth_index;
239    CARD16	alternate_len;
240    CARD16	auth_len;
241    /* alternates */
242    /* auth data */
243}           fsConnSetup;
244
245typedef struct {
246    CARD32	length;
247    CARD16	status;
248    CARD16	pad;
249    /* more auth data */
250}           fsConnSetupExtra;
251
252typedef struct {
253    CARD32	length;
254    CARD16	max_request_len;
255    CARD16	vendor_len;
256    CARD32	release_number;
257    /* vendor string */
258}	    fsConnSetupAccept;
259
260typedef struct {
261    CARD8       reqType;
262    CARD8       data;
263    CARD16      length;
264}           fsReq;
265
266/*
267 * The fsFakeReq structure is never used in the protocol; it is prepended
268 * to incoming packets when setting up a connection so we can index
269 * through InitialVector.  To avoid alignment problems, it is padded
270 * to the size of a word on the largest machine this code runs on.
271 * Hence no sz_fsFakeReq constant is necessary.
272 */
273typedef struct {
274    CARD8       reqType;
275    CARD8       data;
276    CARD16      length;
277    CARD32      pad;		/* to fill out to multiple of 64 bits */
278}           fsFakeReq;
279
280typedef struct {
281    CARD8       reqType;
282    BYTE        pad;
283    CARD16      length;
284    Font        id;
285}           fsResourceReq;
286
287typedef fsReq	fsNoopReq;
288typedef fsReq	fsListExtensionsReq;
289
290typedef struct {
291    CARD8       reqType;
292    BYTE        nbytes;
293    CARD16      length;
294    /* name */
295}           fsQueryExtensionReq;
296
297typedef struct {
298    CARD8       reqType;
299    CARD8       data;
300    CARD16      length;
301    CARD32      maxNames;
302    CARD16      nbytes;
303    CARD16      pad2;
304    /* pattern */
305}	    fsListCataloguesReq;
306
307typedef struct {
308    CARD8       reqType;
309    BYTE        num_catalogues;
310    CARD16      length;
311    /* catalogues */
312}           fsSetCataloguesReq;
313
314typedef fsReq	fsGetCataloguesReq;
315
316typedef struct {
317    CARD8       reqType;
318    CARD8       ext_opcode;
319    CARD16      length;
320    Mask	event_mask;
321}           fsSetEventMaskReq;
322
323typedef struct {
324    CARD8       reqType;
325    CARD8       ext_opcode;
326    CARD16      length;
327}           fsGetEventMaskReq;
328
329typedef struct {
330    CARD8       reqType;
331    BYTE        num_auths;
332    CARD16      length;
333    AccContext  acid;
334    /* auth protocols */
335}           fsCreateACReq;
336
337typedef fsResourceReq	fsFreeACReq;
338typedef fsResourceReq	fsSetAuthorizationReq;
339
340typedef struct {
341    CARD8	reqType;
342    BYTE	num_resolutions;
343    CARD16	length;
344    /* resolutions */
345}	    fsSetResolutionReq;
346
347typedef fsReq	fsGetResolutionReq;
348
349typedef struct {
350    CARD8       reqType;
351    BYTE        pad;
352    CARD16      length;
353    CARD32      maxNames;
354    CARD16      nbytes;
355    CARD16      pad2;
356    /* pattern */
357}           fsListFontsReq;
358
359typedef fsListFontsReq fsListFontsWithXInfoReq;
360
361typedef struct {
362    CARD8       reqType;
363    BYTE        pad;
364    CARD16      length;
365    Font        fid;
366    fsBitmapFormatMask format_mask;
367    fsBitmapFormat format_hint;
368    /* pattern */
369}           fsOpenBitmapFontReq;
370
371typedef fsResourceReq fsQueryXInfoReq;
372
373typedef struct {
374    CARD8       reqType;
375    BOOL        range;
376    CARD16      length;
377    Font        fid;
378    CARD32      num_ranges;
379    /* list of chars */
380}           fsQueryXExtents8Req;
381
382typedef fsQueryXExtents8Req	fsQueryXExtents16Req;
383
384typedef struct {
385    CARD8       reqType;
386    BOOL	range;
387    CARD16      length;
388    Font        fid;
389    fsBitmapFormat format;
390    CARD32      num_ranges;
391    /* list of chars */
392}           fsQueryXBitmaps8Req;
393
394typedef fsQueryXBitmaps8Req	fsQueryXBitmaps16Req;
395
396typedef fsResourceReq fsCloseReq;
397
398
399/* replies */
400typedef struct {
401    BYTE        type;
402    BYTE        data1;
403    CARD16      sequenceNumber;
404    CARD32      length;
405}           fsGenericReply;
406
407typedef struct {
408    BYTE        type;
409    CARD8       nExtensions;
410    CARD16      sequenceNumber;
411    CARD32      length;
412    /* extension names */
413}           fsListExtensionsReply;
414
415typedef struct {
416    BYTE        type;
417    CARD8       present;
418    CARD16      sequenceNumber;
419    CARD32      length;
420    CARD16      major_version;
421    CARD16      minor_version;
422    CARD8       major_opcode;
423    CARD8       first_event;
424    CARD8       num_events;
425    CARD8       first_error;
426    CARD8       num_errors;
427    CARD8	pad1;
428    CARD16	pad2;
429}           fsQueryExtensionReply;
430
431typedef struct {
432    BYTE        type;
433    BYTE        pad;
434    CARD16      sequenceNumber;
435    CARD32      length;
436    CARD32      num_replies;
437    CARD32      num_catalogues;
438    /* catalog names */
439}	    fsListCataloguesReply;
440
441typedef struct {
442    BYTE        type;
443    CARD8       num_catalogues;
444    CARD16      sequenceNumber;
445    CARD32      length;
446    /* catalogue names */
447}           fsGetCataloguesReply;
448
449typedef struct {
450    BYTE        type;
451    BYTE        pad1;
452    CARD16      sequenceNumber;
453    CARD32      length;
454    CARD32      event_mask;
455}	    fsGetEventMaskReply;
456
457typedef struct {
458    BYTE	type;
459    CARD8	auth_index;
460    CARD16	sequenceNumber;
461    CARD32	length;
462    CARD16	status;
463    CARD16	pad;
464    /* auth data */
465}	    fsCreateACReply;
466
467typedef struct {
468    CARD32	length;
469    CARD16	status;
470    CARD16	pad;
471    /* auth data */
472}	    fsCreateACExtraReply;
473
474typedef struct {
475    BYTE	type;
476    CARD8	num_resolutions;
477    CARD16	sequenceNumber;
478    CARD32	length;
479    /* resolutions */
480}	    fsGetResolutionReply;
481
482typedef struct {
483    BYTE        type;
484    BYTE        pad1;
485    CARD16      sequenceNumber;
486    CARD32      length;
487    CARD32      following;
488    CARD32      nFonts;
489    /* font names */
490}           fsListFontsReply;
491
492/*
493 * this one is messy.  the reply itself is variable length (unknown
494 * number of replies) and the contents of each is variable (unknown
495 * number of properties)
496 *
497 */
498
499typedef struct {
500    BYTE        type;
501    CARD8       nameLength;	/* 0 is end-of-reply */
502    CARD16 	sequenceNumber;
503    CARD32 	length;
504    CARD32 	nReplies;
505    CARD32	font_header_flags;
506    CARD8	font_hdr_char_range_min_char_high;
507    CARD8	font_hdr_char_range_min_char_low;
508    CARD8	font_hdr_char_range_max_char_high;
509    CARD8	font_hdr_char_range_max_char_low;
510    CARD8	font_header_draw_direction;
511    CARD8	font_header_pad;
512    CARD8	font_header_default_char_high;
513    CARD8	font_header_default_char_low;
514    INT16	font_header_min_bounds_left;
515    INT16	font_header_min_bounds_right;
516    INT16	font_header_min_bounds_width;
517    INT16	font_header_min_bounds_ascent;
518    INT16	font_header_min_bounds_descent;
519    CARD16	font_header_min_bounds_attributes;
520    INT16	font_header_max_bounds_left;
521    INT16	font_header_max_bounds_right;
522    INT16	font_header_max_bounds_width;
523    INT16	font_header_max_bounds_ascent;
524    INT16	font_header_max_bounds_descent;
525    CARD16	font_header_max_bounds_attributes;
526    INT16	font_header_font_ascent;
527    INT16	font_header_font_descent;
528    /* propinfo */
529    /* name */
530}           fsListFontsWithXInfoReply;
531
532typedef struct {
533    BYTE        type;
534    CARD8       otherid_valid;
535    CARD16 	sequenceNumber;
536    CARD32 	length;
537    CARD32	otherid;
538    BYTE	cachable;
539    BYTE	pad1;
540    CARD16	pad2;
541}           fsOpenBitmapFontReply;
542
543typedef struct {
544    BYTE        type;
545    CARD8       pad0;
546    CARD16 	sequenceNumber;
547    CARD32 	length;
548    CARD32	font_header_flags;
549    CARD8	font_hdr_char_range_min_char_high;
550    CARD8	font_hdr_char_range_min_char_low;
551    CARD8	font_hdr_char_range_max_char_high;
552    CARD8	font_hdr_char_range_max_char_low;
553    CARD8	font_header_draw_direction;
554    CARD8	font_header_pad;
555    CARD8	font_header_default_char_high;
556    CARD8	font_header_default_char_low;
557    INT16	font_header_min_bounds_left;
558    INT16	font_header_min_bounds_right;
559    INT16	font_header_min_bounds_width;
560    INT16	font_header_min_bounds_ascent;
561    INT16	font_header_min_bounds_descent;
562    CARD16	font_header_min_bounds_attributes;
563    INT16	font_header_max_bounds_left;
564    INT16	font_header_max_bounds_right;
565    INT16	font_header_max_bounds_width;
566    INT16	font_header_max_bounds_ascent;
567    INT16	font_header_max_bounds_descent;
568    CARD16	font_header_max_bounds_attributes;
569    INT16	font_header_font_ascent;
570    INT16	font_header_font_descent;
571    /* propinfo */
572}           fsQueryXInfoReply;
573
574typedef struct {
575    BYTE        type;
576    CARD8       pad0;
577    CARD16      sequenceNumber;
578    CARD32      length;
579    CARD32      num_extents;
580    /* extents */
581}           fsQueryXExtents8Reply;
582
583typedef fsQueryXExtents8Reply	fsQueryXExtents16Reply;
584
585typedef struct {
586    BYTE        type;
587    CARD8       pad0;
588    CARD16      sequenceNumber;
589    CARD32      length;
590    CARD32      replies_hint;
591    CARD32      num_chars;
592    CARD32      nbytes;
593    /* offsets */
594    /* glyphs */
595}           fsQueryXBitmaps8Reply;
596
597typedef fsQueryXBitmaps8Reply	fsQueryXBitmaps16Reply;
598
599typedef union {
600    fsGenericReply generic;
601    fsListExtensionsReply extensions;
602    fsGetResolutionReply getres;
603}           fsReply;
604
605/* errors */
606typedef struct {
607    BYTE        type;
608    BYTE        request;
609    CARD16 	sequenceNumber;
610    CARD32 	length;
611    fsTimestamp	timestamp;
612    CARD8	major_opcode;
613    CARD8	minor_opcode;
614    CARD16	pad;
615}	    fsError;
616
617typedef struct {
618    BYTE        type;
619    BYTE        request;
620    CARD16 	sequenceNumber;
621    CARD32 	length;
622    fsTimestamp	timestamp;
623    CARD8	major_opcode;
624    CARD8	minor_opcode;
625    CARD16	pad;
626}	    fsRequestError;
627
628typedef struct {
629    BYTE        type;
630    BYTE        request;
631    CARD16 	sequenceNumber;
632    CARD32 	length;
633    fsTimestamp	timestamp;
634    CARD8	major_opcode;
635    CARD8	minor_opcode;
636    CARD16	pad;
637    fsBitmapFormat	format;
638}	    fsFormatError;
639
640typedef struct {
641    BYTE        type;
642    BYTE        request;
643    CARD16 	sequenceNumber;
644    CARD32 	length;
645    fsTimestamp	timestamp;
646    CARD8	major_opcode;
647    CARD8	minor_opcode;
648    CARD16	pad;
649    Font	fontid;
650}	    fsFontError;
651
652typedef struct {
653    BYTE        type;
654    BYTE        request;
655    CARD16 	sequenceNumber;
656    CARD32 	length;
657    fsTimestamp	timestamp;
658    CARD8	major_opcode;
659    CARD8	minor_opcode;
660    CARD16	pad;
661    fsRange	range;
662}	    fsRangeError;
663
664typedef struct {
665    BYTE        type;
666    BYTE        request;
667    CARD16 	sequenceNumber;
668    CARD32 	length;
669    fsTimestamp	timestamp;
670    CARD8	major_opcode;
671    CARD8	minor_opcode;
672    CARD16	pad;
673    Mask	event_mask;
674}	    fsEventMaskError;
675
676typedef struct {
677    BYTE        type;
678    BYTE        request;
679    CARD16 	sequenceNumber;
680    CARD32 	length;
681    fsTimestamp	timestamp;
682    CARD8	major_opcode;
683    CARD8	minor_opcode;
684    CARD16	pad;
685    AccContext	acid;
686}	    fsAccessContextError;
687
688typedef struct {
689    BYTE        type;
690    BYTE        request;
691    CARD16 	sequenceNumber;
692    CARD32 	length;
693    fsTimestamp	timestamp;
694    CARD8	major_opcode;
695    CARD8	minor_opcode;
696    CARD16	pad;
697    Font	fontid;
698}	    fsIDChoiceError;
699
700typedef struct {
701    BYTE        type;
702    BYTE        request;
703    CARD16 	sequenceNumber;
704    CARD32 	length;
705    fsTimestamp	timestamp;
706    CARD8	major_opcode;
707    CARD8	minor_opcode;
708    CARD16	pad;
709}	    fsNameError;
710
711typedef struct {
712    BYTE        type;
713    BYTE        request;
714    CARD16 	sequenceNumber;
715    CARD32 	length;
716    fsTimestamp	timestamp;
717    CARD8	major_opcode;
718    CARD8	minor_opcode;
719    fsResolution resolution;
720}	    fsResolutionError;
721
722typedef struct {
723    BYTE        type;
724    BYTE        request;
725    CARD16 	sequenceNumber;
726    CARD32 	length;
727    fsTimestamp	timestamp;
728    CARD8	major_opcode;
729    CARD8	minor_opcode;
730    CARD16	pad;
731}	    fsAllocError;
732
733typedef struct {
734    BYTE        type;
735    BYTE        request;
736    CARD16 	sequenceNumber;
737    CARD32 	length;
738    fsTimestamp	timestamp;
739    CARD8	major_opcode;
740    CARD8	minor_opcode;
741    CARD16	pad;
742    CARD32	bad_length;
743}	    fsLengthError;
744
745typedef struct {
746    BYTE        type;
747    BYTE        request;
748    CARD16 	sequenceNumber;
749    CARD32 	length;
750    fsTimestamp	timestamp;
751    CARD8	major_opcode;
752    CARD8	minor_opcode;
753    CARD16	pad;
754}	    fsImplementationError;
755
756/* events */
757typedef struct {
758    BYTE        type;
759    BYTE        event_code;
760    CARD16 	sequenceNumber;
761    CARD32 	length;
762    fsTimestamp	timestamp;
763}	    fsKeepAliveEvent;
764
765typedef struct {
766    BYTE        type;
767    BYTE        event_code;
768    CARD16 	sequenceNumber;
769    CARD32 	length;
770    fsTimestamp	timestamp;
771    BOOL	added;
772    BOOL	deleted;
773    CARD16	pad;
774}	    fsCatalogueChangeNotifyEvent;
775
776typedef fsCatalogueChangeNotifyEvent	fsFontChangeNotifyEvent;
777
778typedef fsCatalogueChangeNotifyEvent	fsEvent;
779
780/* reply codes */
781#define	FS_Reply		0	/* normal reply */
782#define	FS_Error		1	/* error */
783#define	FS_Event		2
784
785/* request codes */
786#define		FS_Noop			0
787#define		FS_ListExtensions	1
788#define		FS_QueryExtension	2
789#define		FS_ListCatalogues	3
790#define		FS_SetCatalogues	4
791#define		FS_GetCatalogues	5
792#define		FS_SetEventMask		6
793#define		FS_GetEventMask		7
794#define		FS_CreateAC		8
795#define		FS_FreeAC		9
796#define		FS_SetAuthorization	10
797#define		FS_SetResolution	11
798#define		FS_GetResolution	12
799#define		FS_ListFonts		13
800#define		FS_ListFontsWithXInfo	14
801#define		FS_OpenBitmapFont	15
802#define		FS_QueryXInfo		16
803#define		FS_QueryXExtents8	17
804#define		FS_QueryXExtents16	18
805#define		FS_QueryXBitmaps8	19
806#define		FS_QueryXBitmaps16	20
807#define		FS_CloseFont		21
808
809/* restore decls */
810#undef	Mask
811#undef	Font
812#undef  AccContext
813
814#endif				/* _FS_PROTO_H_ */
815