Merge branch 'devel/x11' into tizen
[platform/upstream/fontsproto.git] / FSproto.h
1 /*
2  
3 Copyright 1990, 1991, 1998  The Open Group
4
5 Permission to use, copy, modify, distribute, and sell this software and its
6 documentation for any purpose is hereby granted without fee, provided that
7 the above copyright notice appear in all copies and that both that
8 copyright notice and this permission notice appear in supporting
9 documentation.
10
11 The above copyright notice and this permission notice shall be included in
12 all copies or substantial portions of the Software.
13
14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
17 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
21 Except as contained in this notice, the name of The Open Group shall not be
22 used in advertising or otherwise to promote the sale, use or other dealings
23 in 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
128 typedef CARD32  fsTimestamp;
129
130 #ifdef NOTDEF /* in fsmasks.h */
131 typedef CARD32  fsBitmapFormat;
132 typedef CARD32  fsBitmapFormatMask;
133 #endif
134  
135 #define sz_fsBitmapFormat       4
136
137 typedef struct {
138     INT16       left B16,
139                 right B16;
140     INT16       width B16;
141     INT16       ascent B16,
142                 descent B16;
143     CARD16      attributes B16;
144 }           fsXCharInfo;
145
146 typedef struct {
147     CARD8       high;
148     CARD8       low;
149 }           fsChar2b;
150
151 typedef struct {
152     CARD8       low;
153     CARD8       high;
154 }           fsChar2b_version1;
155
156 typedef struct {
157     CARD8       min_char_high;
158     CARD8       min_char_low;
159     CARD8       max_char_high;
160     CARD8       max_char_low;
161 }           fsRange;
162
163 typedef struct  {
164     CARD32      position B32;
165     CARD32      length B32;
166 }           fsOffset32;
167
168 typedef struct {
169     fsOffset32  name;
170     fsOffset32  value;
171     CARD8       type;
172     BYTE        pad0;
173     CARD16      pad1 B16;
174 }           fsPropOffset;
175
176 typedef struct {
177     CARD32      num_offsets B32;
178     CARD32      data_len B32;
179     /* offsets */
180     /* data */
181 }           fsPropInfo;
182
183 typedef struct {
184     CARD16      x_resolution B16;
185     CARD16      y_resolution B16;
186     CARD16      point_size B16;
187 }           fsResolution;
188
189   
190 typedef struct {
191     CARD32      flags B32;
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 B16;
202     INT16       min_bounds_right B16;
203
204     INT16       min_bounds_width B16;
205     INT16       min_bounds_ascent B16;
206     INT16       min_bounds_descent B16;
207     CARD16      min_bounds_attributes B16;
208
209     INT16       max_bounds_left B16;
210     INT16       max_bounds_right B16;
211     INT16       max_bounds_width B16;
212     INT16       max_bounds_ascent B16;
213
214     INT16       max_bounds_descent B16;
215     CARD16      max_bounds_attributes B16;
216     INT16       font_ascent B16;
217     INT16       font_descent B16;
218     /* propinfo */
219 }           fsXFontInfoHeader;
220
221
222 /* requests */
223
224 typedef struct {
225     BYTE        byteOrder;
226     CARD8       num_auths;
227     CARD16      major_version B16;
228     CARD16      minor_version B16;
229     CARD16      auth_len B16;
230     /* auth data */
231 }           fsConnClientPrefix;
232
233 typedef struct {
234     CARD16      status B16;
235     CARD16      major_version B16;
236     CARD16      minor_version B16;
237     CARD8       num_alternates;
238     CARD8       auth_index;
239     CARD16      alternate_len B16;
240     CARD16      auth_len B16;
241     /* alternates */
242     /* auth data */
243 }           fsConnSetup;
244
245 typedef struct {
246     CARD32      length B32;
247     CARD16      status B16;
248     CARD16      pad B16;
249     /* more auth data */
250 }           fsConnSetupExtra;
251
252 typedef struct {
253     CARD32      length B32;
254     CARD16      max_request_len B16;
255     CARD16      vendor_len B16;
256     CARD32      release_number B32;
257     /* vendor string */
258 }           fsConnSetupAccept;
259
260 typedef struct {
261     CARD8       reqType;
262     CARD8       data;
263     CARD16      length B16;
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  */
273 typedef struct {
274     CARD8       reqType;
275     CARD8       data;
276     CARD16      length B16;
277     CARD32      pad B32;        /* to fill out to multiple of 64 bits */
278 }           fsFakeReq;
279
280 typedef struct {
281     CARD8       reqType;
282     BYTE        pad;
283     CARD16      length B16;
284     Font        id B32;
285 }           fsResourceReq;
286
287 typedef fsReq   fsNoopReq;
288 typedef fsReq   fsListExtensionsReq;
289
290 typedef struct {
291     CARD8       reqType;
292     BYTE        nbytes;
293     CARD16      length B16;
294     /* name */
295 }           fsQueryExtensionReq;
296
297 typedef struct {
298     CARD8       reqType;
299     CARD8       data;
300     CARD16      length B16;
301     CARD32      maxNames B32;
302     CARD16      nbytes B16;
303     CARD16      pad2 B16;
304     /* pattern */
305 }           fsListCataloguesReq;
306
307 typedef struct {
308     CARD8       reqType;
309     BYTE        num_catalogues;
310     CARD16      length B16;
311     /* catalogues */
312 }           fsSetCataloguesReq;
313
314 typedef fsReq   fsGetCataloguesReq;
315
316 typedef struct {
317     CARD8       reqType;
318     CARD8       ext_opcode;
319     CARD16      length B16;
320     Mask        event_mask;
321 }           fsSetEventMaskReq;
322
323 typedef struct {
324     CARD8       reqType;
325     CARD8       ext_opcode;
326     CARD16      length B16;
327 }           fsGetEventMaskReq;
328
329 typedef struct {
330     CARD8       reqType;
331     BYTE        num_auths;
332     CARD16      length B16;
333     AccContext  acid B32;
334     /* auth protocols */
335 }           fsCreateACReq;
336
337 typedef fsResourceReq   fsFreeACReq;
338 typedef fsResourceReq   fsSetAuthorizationReq;
339
340 typedef struct {
341     CARD8       reqType;
342     BYTE        num_resolutions;
343     CARD16      length B16;
344     /* resolutions */
345 }           fsSetResolutionReq;
346
347 typedef fsReq   fsGetResolutionReq;
348
349 typedef struct {
350     CARD8       reqType;
351     BYTE        pad;
352     CARD16      length B16;
353     CARD32      maxNames B32;
354     CARD16      nbytes B16;
355     CARD16      pad2 B16;
356     /* pattern */
357 }           fsListFontsReq;
358
359 typedef fsListFontsReq fsListFontsWithXInfoReq;
360
361 typedef struct {
362     CARD8       reqType;
363     BYTE        pad;
364     CARD16      length B16;
365     Font        fid B32;
366     fsBitmapFormatMask format_mask B32;
367     fsBitmapFormat format_hint B32;
368     /* pattern */
369 }           fsOpenBitmapFontReq;
370
371 typedef fsResourceReq fsQueryXInfoReq;
372
373 typedef struct {
374     CARD8       reqType;
375     BOOL        range;
376     CARD16      length B16;
377     Font        fid B32;
378     CARD32      num_ranges B32;
379     /* list of chars */
380 }           fsQueryXExtents8Req;
381
382 typedef fsQueryXExtents8Req     fsQueryXExtents16Req;
383
384 typedef struct {
385     CARD8       reqType;
386     BOOL        range;
387     CARD16      length B16;
388     Font        fid B32;
389     fsBitmapFormat format B32;
390     CARD32      num_ranges B32;
391     /* list of chars */
392 }           fsQueryXBitmaps8Req;
393
394 typedef fsQueryXBitmaps8Req     fsQueryXBitmaps16Req;
395
396 typedef fsResourceReq fsCloseReq;
397
398
399 /* replies */
400 typedef struct {
401     BYTE        type;
402     BYTE        data1;
403     CARD16      sequenceNumber B16;
404     CARD32      length B32;
405 }           fsGenericReply;
406
407 typedef struct {
408     BYTE        type;
409     CARD8       nExtensions;
410     CARD16      sequenceNumber B16;
411     CARD32      length B32;
412     /* extension names */
413 }           fsListExtensionsReply;
414
415 typedef struct {
416     BYTE        type;
417     CARD8       present;
418     CARD16      sequenceNumber B16;
419     CARD32      length B32;
420     CARD16      major_version B16;
421     CARD16      minor_version B16;
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 B16;
429 }           fsQueryExtensionReply;
430
431 typedef struct {
432     BYTE        type;
433     BYTE        pad;
434     CARD16      sequenceNumber B16;
435     CARD32      length B32;
436     CARD32      num_replies B32;
437     CARD32      num_catalogues B32;
438     /* catalog names */
439 }           fsListCataloguesReply;
440
441 typedef struct {
442     BYTE        type;
443     CARD8       num_catalogues;
444     CARD16      sequenceNumber B16;
445     CARD32      length B32;
446     /* catalogue names */
447 }           fsGetCataloguesReply;
448
449 typedef struct {
450     BYTE        type;
451     BYTE        pad1;
452     CARD16      sequenceNumber B16;
453     CARD32      length B32;
454     CARD32      event_mask B32;
455 }           fsGetEventMaskReply;
456
457 typedef struct {
458     BYTE        type;
459     CARD8       auth_index;
460     CARD16      sequenceNumber B16;
461     CARD32      length B32;
462     CARD16      status B16;
463     CARD16      pad B16;
464     /* auth data */
465 }           fsCreateACReply;
466
467 typedef struct {
468     CARD32      length B32;
469     CARD16      status B16;
470     CARD16      pad B16;
471     /* auth data */
472 }           fsCreateACExtraReply;
473
474 typedef struct {
475     BYTE        type;
476     CARD8       num_resolutions;
477     CARD16      sequenceNumber B16;
478     CARD32      length B32;
479     /* resolutions */
480 }           fsGetResolutionReply;
481
482 typedef struct {
483     BYTE        type;
484     BYTE        pad1;
485     CARD16      sequenceNumber B16;
486     CARD32      length B32;
487     CARD32      following B32;
488     CARD32      nFonts B32;
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
499 typedef struct {
500     BYTE        type;
501     CARD8       nameLength;     /* 0 is end-of-reply */
502     CARD16      sequenceNumber B16;
503     CARD32      length B32;
504     CARD32      nReplies B32;
505     CARD32      font_header_flags B32;
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 B16;
515     INT16       font_header_min_bounds_right B16;
516     INT16       font_header_min_bounds_width B16;
517     INT16       font_header_min_bounds_ascent B16;
518     INT16       font_header_min_bounds_descent B16;
519     CARD16      font_header_min_bounds_attributes B16;
520     INT16       font_header_max_bounds_left B16;
521     INT16       font_header_max_bounds_right B16;
522     INT16       font_header_max_bounds_width B16;
523     INT16       font_header_max_bounds_ascent B16;
524     INT16       font_header_max_bounds_descent B16;
525     CARD16      font_header_max_bounds_attributes B16;
526     INT16       font_header_font_ascent B16;
527     INT16       font_header_font_descent B16;
528     /* propinfo */
529     /* name */
530 }           fsListFontsWithXInfoReply;
531     
532 typedef struct {
533     BYTE        type;
534     CARD8       otherid_valid;
535     CARD16      sequenceNumber B16;
536     CARD32      length B32;
537     CARD32      otherid B32;
538     BYTE        cachable;
539     BYTE        pad1;
540     CARD16      pad2 B16;
541 }           fsOpenBitmapFontReply;
542
543 typedef struct {
544     BYTE        type;
545     CARD8       pad0;
546     CARD16      sequenceNumber B16;
547     CARD32      length B32;
548     CARD32      font_header_flags B32;
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 B16;
558     INT16       font_header_min_bounds_right B16;
559     INT16       font_header_min_bounds_width B16;
560     INT16       font_header_min_bounds_ascent B16;
561     INT16       font_header_min_bounds_descent B16;
562     CARD16      font_header_min_bounds_attributes B16;
563     INT16       font_header_max_bounds_left B16;
564     INT16       font_header_max_bounds_right B16;
565     INT16       font_header_max_bounds_width B16;
566     INT16       font_header_max_bounds_ascent B16;
567     INT16       font_header_max_bounds_descent B16;
568     CARD16      font_header_max_bounds_attributes B16;
569     INT16       font_header_font_ascent B16;
570     INT16       font_header_font_descent B16;
571     /* propinfo */
572 }           fsQueryXInfoReply;
573
574 typedef struct {
575     BYTE        type;
576     CARD8       pad0;
577     CARD16      sequenceNumber B16;
578     CARD32      length B32;
579     CARD32      num_extents B32;
580     /* extents */
581 }           fsQueryXExtents8Reply;
582
583 typedef fsQueryXExtents8Reply   fsQueryXExtents16Reply;
584
585 typedef struct {
586     BYTE        type;
587     CARD8       pad0;
588     CARD16      sequenceNumber B16;
589     CARD32      length B32;
590     CARD32      replies_hint B32;
591     CARD32      num_chars B32;
592     CARD32      nbytes B32;
593     /* offsets */
594     /* glyphs */
595 }           fsQueryXBitmaps8Reply;
596
597 typedef fsQueryXBitmaps8Reply   fsQueryXBitmaps16Reply;
598
599 typedef union {
600     fsGenericReply generic;
601     fsListExtensionsReply extensions;
602     fsGetResolutionReply getres;
603 }           fsReply;
604
605 /* errors */
606 typedef struct {
607     BYTE        type;
608     BYTE        request;
609     CARD16      sequenceNumber B16;
610     CARD32      length B32;
611     fsTimestamp timestamp;
612     CARD8       major_opcode;
613     CARD8       minor_opcode;
614     CARD16      pad B16;
615 }           fsError;
616
617 typedef struct {
618     BYTE        type;
619     BYTE        request;
620     CARD16      sequenceNumber B16;
621     CARD32      length B32;
622     fsTimestamp timestamp;
623     CARD8       major_opcode;
624     CARD8       minor_opcode;
625     CARD16      pad B16;
626 }           fsRequestError;
627
628 typedef struct {
629     BYTE        type;
630     BYTE        request;
631     CARD16      sequenceNumber B16;
632     CARD32      length B32;
633     fsTimestamp timestamp;
634     CARD8       major_opcode;
635     CARD8       minor_opcode;
636     CARD16      pad B16;
637     fsBitmapFormat      format B32;
638 }           fsFormatError;
639
640 typedef struct {
641     BYTE        type;
642     BYTE        request;
643     CARD16      sequenceNumber B16;
644     CARD32      length B32;
645     fsTimestamp timestamp;
646     CARD8       major_opcode;
647     CARD8       minor_opcode;
648     CARD16      pad B16;
649     Font        fontid;
650 }           fsFontError;
651
652 typedef struct {
653     BYTE        type;
654     BYTE        request;
655     CARD16      sequenceNumber B16;
656     CARD32      length B32;
657     fsTimestamp timestamp;
658     CARD8       major_opcode;
659     CARD8       minor_opcode;
660     CARD16      pad B16;
661     fsRange     range;
662 }           fsRangeError;
663
664 typedef struct {
665     BYTE        type;
666     BYTE        request;
667     CARD16      sequenceNumber B16;
668     CARD32      length B32;
669     fsTimestamp timestamp;
670     CARD8       major_opcode;
671     CARD8       minor_opcode;
672     CARD16      pad B16;
673     Mask        event_mask;
674 }           fsEventMaskError;
675
676 typedef struct {
677     BYTE        type;
678     BYTE        request;
679     CARD16      sequenceNumber B16;
680     CARD32      length B32;
681     fsTimestamp timestamp;
682     CARD8       major_opcode;
683     CARD8       minor_opcode;
684     CARD16      pad B16;
685     AccContext  acid;
686 }           fsAccessContextError;
687
688 typedef struct {
689     BYTE        type;
690     BYTE        request;
691     CARD16      sequenceNumber B16;
692     CARD32      length B32;
693     fsTimestamp timestamp;
694     CARD8       major_opcode;
695     CARD8       minor_opcode;
696     CARD16      pad B16;
697     Font        fontid;
698 }           fsIDChoiceError;
699
700 typedef struct {
701     BYTE        type;
702     BYTE        request;
703     CARD16      sequenceNumber B16;
704     CARD32      length B32;
705     fsTimestamp timestamp;
706     CARD8       major_opcode;
707     CARD8       minor_opcode;
708     CARD16      pad B16;
709 }           fsNameError;
710
711 typedef struct {
712     BYTE        type;
713     BYTE        request;
714     CARD16      sequenceNumber B16;
715     CARD32      length B32;
716     fsTimestamp timestamp;
717     CARD8       major_opcode;
718     CARD8       minor_opcode;
719     fsResolution resolution;
720 }           fsResolutionError;
721
722 typedef struct {
723     BYTE        type;
724     BYTE        request;
725     CARD16      sequenceNumber B16;
726     CARD32      length B32;
727     fsTimestamp timestamp;
728     CARD8       major_opcode;
729     CARD8       minor_opcode;
730     CARD16      pad B16;
731 }           fsAllocError;
732
733 typedef struct {
734     BYTE        type;
735     BYTE        request;
736     CARD16      sequenceNumber B16;
737     CARD32      length B32;
738     fsTimestamp timestamp;
739     CARD8       major_opcode;
740     CARD8       minor_opcode;
741     CARD16      pad B16;
742     CARD32      bad_length B32;
743 }           fsLengthError;
744
745 typedef struct {
746     BYTE        type;
747     BYTE        request;
748     CARD16      sequenceNumber B16;
749     CARD32      length B32;
750     fsTimestamp timestamp;
751     CARD8       major_opcode;
752     CARD8       minor_opcode;
753     CARD16      pad B16;
754 }           fsImplementationError;
755
756 /* events */
757 typedef struct {
758     BYTE        type;
759     BYTE        event_code;
760     CARD16      sequenceNumber B16;
761     CARD32      length B32;
762     fsTimestamp timestamp;
763 }           fsKeepAliveEvent;
764
765 typedef struct {
766     BYTE        type;
767     BYTE        event_code;
768     CARD16      sequenceNumber B16;
769     CARD32      length B32;
770     fsTimestamp timestamp;
771     BOOL        added;
772     BOOL        deleted;
773     CARD16      pad B16;
774 }           fsCatalogueChangeNotifyEvent;
775
776 typedef fsCatalogueChangeNotifyEvent    fsFontChangeNotifyEvent;
777
778 typedef 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_ */