github.com/rajveermalviya/gamen@v0.1.2-0.20220930195403-9be15877c1aa/internal/xkbcommon/include/X11/fonts/FSproto.h (about)

     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,
   139  		right;
   140      INT16	width;
   141      INT16	ascent,
   142  		descent;
   143      CARD16	attributes;
   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;
   165      CARD32	length;
   166  }	    fsOffset32;
   167  
   168  typedef struct {
   169      fsOffset32	name;
   170      fsOffset32	value;
   171      CARD8 	type;
   172      BYTE        pad0;
   173      CARD16	pad1;
   174  }           fsPropOffset;
   175  
   176  typedef struct {
   177      CARD32	num_offsets;
   178      CARD32	data_len;
   179      /* offsets */
   180      /* data */
   181  }	    fsPropInfo;
   182  
   183  typedef struct {
   184      CARD16	x_resolution;
   185      CARD16	y_resolution;
   186      CARD16	point_size;
   187  }	    fsResolution;
   188  
   189  
   190  typedef 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  
   224  typedef 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  
   233  typedef 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  
   245  typedef struct {
   246      CARD32	length;
   247      CARD16	status;
   248      CARD16	pad;
   249      /* more auth data */
   250  }           fsConnSetupExtra;
   251  
   252  typedef struct {
   253      CARD32	length;
   254      CARD16	max_request_len;
   255      CARD16	vendor_len;
   256      CARD32	release_number;
   257      /* vendor string */
   258  }	    fsConnSetupAccept;
   259  
   260  typedef 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   */
   273  typedef struct {
   274      CARD8       reqType;
   275      CARD8       data;
   276      CARD16      length;
   277      CARD32      pad;		/* to fill out to multiple of 64 bits */
   278  }           fsFakeReq;
   279  
   280  typedef struct {
   281      CARD8       reqType;
   282      BYTE        pad;
   283      CARD16      length;
   284      Font        id;
   285  }           fsResourceReq;
   286  
   287  typedef fsReq	fsNoopReq;
   288  typedef fsReq	fsListExtensionsReq;
   289  
   290  typedef struct {
   291      CARD8       reqType;
   292      BYTE        nbytes;
   293      CARD16      length;
   294      /* name */
   295  }           fsQueryExtensionReq;
   296  
   297  typedef struct {
   298      CARD8       reqType;
   299      CARD8       data;
   300      CARD16      length;
   301      CARD32      maxNames;
   302      CARD16      nbytes;
   303      CARD16      pad2;
   304      /* pattern */
   305  }	    fsListCataloguesReq;
   306  
   307  typedef struct {
   308      CARD8       reqType;
   309      BYTE        num_catalogues;
   310      CARD16      length;
   311      /* catalogues */
   312  }           fsSetCataloguesReq;
   313  
   314  typedef fsReq	fsGetCataloguesReq;
   315  
   316  typedef struct {
   317      CARD8       reqType;
   318      CARD8       ext_opcode;
   319      CARD16      length;
   320      Mask	event_mask;
   321  }           fsSetEventMaskReq;
   322  
   323  typedef struct {
   324      CARD8       reqType;
   325      CARD8       ext_opcode;
   326      CARD16      length;
   327  }           fsGetEventMaskReq;
   328  
   329  typedef struct {
   330      CARD8       reqType;
   331      BYTE        num_auths;
   332      CARD16      length;
   333      AccContext  acid;
   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;
   344      /* resolutions */
   345  }	    fsSetResolutionReq;
   346  
   347  typedef fsReq	fsGetResolutionReq;
   348  
   349  typedef struct {
   350      CARD8       reqType;
   351      BYTE        pad;
   352      CARD16      length;
   353      CARD32      maxNames;
   354      CARD16      nbytes;
   355      CARD16      pad2;
   356      /* pattern */
   357  }           fsListFontsReq;
   358  
   359  typedef fsListFontsReq fsListFontsWithXInfoReq;
   360  
   361  typedef 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  
   371  typedef fsResourceReq fsQueryXInfoReq;
   372  
   373  typedef struct {
   374      CARD8       reqType;
   375      BOOL        range;
   376      CARD16      length;
   377      Font        fid;
   378      CARD32      num_ranges;
   379      /* list of chars */
   380  }           fsQueryXExtents8Req;
   381  
   382  typedef fsQueryXExtents8Req	fsQueryXExtents16Req;
   383  
   384  typedef 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  
   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;
   404      CARD32      length;
   405  }           fsGenericReply;
   406  
   407  typedef struct {
   408      BYTE        type;
   409      CARD8       nExtensions;
   410      CARD16      sequenceNumber;
   411      CARD32      length;
   412      /* extension names */
   413  }           fsListExtensionsReply;
   414  
   415  typedef 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  
   431  typedef 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  
   441  typedef struct {
   442      BYTE        type;
   443      CARD8       num_catalogues;
   444      CARD16      sequenceNumber;
   445      CARD32      length;
   446      /* catalogue names */
   447  }           fsGetCataloguesReply;
   448  
   449  typedef struct {
   450      BYTE        type;
   451      BYTE        pad1;
   452      CARD16      sequenceNumber;
   453      CARD32      length;
   454      CARD32      event_mask;
   455  }	    fsGetEventMaskReply;
   456  
   457  typedef 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  
   467  typedef struct {
   468      CARD32	length;
   469      CARD16	status;
   470      CARD16	pad;
   471      /* auth data */
   472  }	    fsCreateACExtraReply;
   473  
   474  typedef struct {
   475      BYTE	type;
   476      CARD8	num_resolutions;
   477      CARD16	sequenceNumber;
   478      CARD32	length;
   479      /* resolutions */
   480  }	    fsGetResolutionReply;
   481  
   482  typedef 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  
   499  typedef 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  
   532  typedef 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  
   543  typedef 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  
   574  typedef struct {
   575      BYTE        type;
   576      CARD8       pad0;
   577      CARD16      sequenceNumber;
   578      CARD32      length;
   579      CARD32      num_extents;
   580      /* extents */
   581  }           fsQueryXExtents8Reply;
   582  
   583  typedef fsQueryXExtents8Reply	fsQueryXExtents16Reply;
   584  
   585  typedef 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  
   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;
   610      CARD32 	length;
   611      fsTimestamp	timestamp;
   612      CARD8	major_opcode;
   613      CARD8	minor_opcode;
   614      CARD16	pad;
   615  }	    fsError;
   616  
   617  typedef 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  
   628  typedef 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  
   640  typedef 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  
   652  typedef 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  
   664  typedef 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  
   676  typedef 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  
   688  typedef 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  
   700  typedef 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  
   711  typedef 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  
   722  typedef 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  
   733  typedef 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  
   745  typedef 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 */
   757  typedef struct {
   758      BYTE        type;
   759      BYTE        event_code;
   760      CARD16 	sequenceNumber;
   761      CARD32 	length;
   762      fsTimestamp	timestamp;
   763  }	    fsKeepAliveEvent;
   764  
   765  typedef 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  
   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_ */