1 /* Copyright (C) 2001-2006 Artifex Software, Inc.
2    All Rights Reserved.
3 
4    This software is provided AS-IS with no warranty, either express or
5    implied.
6 
7    This software is distributed under license and may not be copied, modified
8    or distributed except as expressly authorized under the terms of that
9    license.  Refer to licensing information at http://www.artifex.com/
10    or contact Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134,
11    San Rafael, CA  94903, U.S.A., +1(415)492-9861, for further information.
12 */
13 
14 /*$Id: gscdefs.h 8479 2008-01-07 20:58:40Z giles $ */
15 /* Prototypes for configuration definitions in gconfig.c. */
16 
17 #ifndef gscdefs_INCLUDED
18 #  define gscdefs_INCLUDED
19 
20 /*
21  * This file may be #included in places that don't even have stdpre.h,
22  * so it mustn't use any Ghostscript definitions in any code that is
23  * actually processed here (as opposed to being part of a macro
24  * definition).
25  */
26 
27 /* Miscellaneous system constants (read-only systemparams). */
28 
29 extern const long gs_buildtime;
30 extern const char *const gs_copyright;
31 extern const char *const gs_product;
32 extern const char *const gs_productfamily;
33 extern const long gs_revision;
34 extern const long gs_revisiondate;
35 extern const long gs_serialnumber;
36 
37 /* Installation directories and files */
38 extern const char *const gs_doc_directory;
39 extern const char *const gs_lib_default_path;
40 extern const char *const gs_init_file;
41 extern const char *const gs_dev_defaults;
42 
43 /* Resource tables.  In order to avoid importing a large number of types, */
44 /* we only provide macros for some externs, not the externs themselves. */
45 
46 #define extern_gx_device_halftone_list()\
47   typedef DEVICE_HALFTONE_RESOURCE_PROC((*gx_dht_proc));\
48   extern const gx_dht_proc gx_device_halftone_list[]
49 
50 #define extern_gx_image_class_table()\
51   extern const gx_image_class_t gx_image_class_table[]
52 extern const unsigned gx_image_class_table_count;
53 
54 #define extern_gx_image_type_table()\
55   extern const gx_image_type_t * const gx_image_type_table[]
56 extern const unsigned gx_image_type_table_count;
57 
58 /* We need the extra typedef so that the const will apply to the table. */
59 #define extern_gx_init_table()\
60   typedef init_proc((*gx_init_proc));\
61   extern const gx_init_proc gx_init_table[]
62 
63 #define extern_gx_io_device_table()\
64   extern const gx_io_device * const gx_io_device_table[]
65 extern const unsigned gx_io_device_table_count;
66 
67 /* Return the list of device prototypes, a NULL list of their structure */
68 /* descriptors (no longer used), and (as the value) the length of the lists. */
69 #define extern_gs_lib_device_list()\
70   int gs_lib_device_list(const gx_device * const **plist,\
71 			 gs_memory_struct_type_t **pst)
72 
73 /* find a compositor by name */
74 #define extern_gs_find_compositor() \
75   const gs_composite_type_t * gs_find_compositor(int comp_id)
76 
77 #endif /* gscdefs_INCLUDED */
78