1 /* Copyright (C) 2001-2019 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,
8    modified or distributed except as expressly authorized under the terms
9    of the license contained in the file LICENSE in this distribution.
10 
11    Refer to licensing information at http://www.artifex.com or contact
12    Artifex Software, Inc.,  1305 Grant Avenue - Suite 200, Novato,
13    CA 94945, U.S.A., +1(415)492-9861, for further information.
14 */
15 
16 
17 /* jconfig.h file for Independent JPEG Group code */
18 
19 #ifndef gsjconf_INCLUDED
20 #  define gsjconf_INCLUDED
21 
22 /*
23  * We should have the following here:
24 
25 #include "stdpre.h"
26 
27  * But because of the directory structure used to build the IJG library, we
28  * actually concatenate stdpre.h on the front of this file instead to
29  * construct the jconfig.h file used for the compilation.
30  */
31 
32 #include "arch.h"
33 
34 #ifdef GS_HIDE_INTERNAL_JPEG
35 /* The first list is culled from NEED_SHORT_EXTERNAL_NAMES */
36 #define jpeg_std_error                gpeg_std_error
37 #define jpeg_CreateCompress           gpeg_CreateCompress
38 #define jpeg_CreateDecompress         gpeg_CreateDecompress
39 #define jpeg_destroy_compress         gpeg_destroy_compress
40 #define jpeg_destroy_decompress       gpeg_destroy_decompress
41 #define jpeg_stdio_dest               gpeg_stdio_dest
42 #define jpeg_stdio_src                gpeg_stdio_src
43 #define jpeg_mem_dest                 gpeg_mem_dest
44 #define jpeg_mem_src                  gpeg_mem_src
45 #define jpeg_set_defaults             gpeg_set_defaults
46 #define jpeg_set_colorspace           gpeg_set_colorspace
47 #define jpeg_default_colorspace       gpeg_default_colorspace
48 #define jpeg_set_quality              gpeg_set_quality
49 #define jpeg_set_linear_quality       gpeg_set_linear_quality
50 #define jpeg_default_qtables          gpeg_default_qtables
51 #define jpeg_add_quant_table          gpeg_add_quant_table
52 #define jpeg_quality_scaling          gpeg_quality_scaling
53 #define jpeg_simple_progression       gpeg_simple_progression
54 #define jpeg_suppress_tables          gpeg_suppress_tables
55 #define jpeg_alloc_quant_table        gpeg_alloc_quant_table
56 #define jpeg_alloc_huff_table         gpeg_alloc_huff_table
57 #define jpeg_start_compress           gpeg_start_compress
58 #define jpeg_write_scanlines          gpeg_write_scanlines
59 #define jpeg_finish_compress          gpeg_finish_compress
60 #define jpeg_calc_jpeg_dimensions     gpeg_calc_jpeg_dimensions
61 #define jpeg_write_raw_data           gpeg_write_raw_data
62 #define jpeg_write_marker             gpeg_write_marker
63 #define jpeg_write_m_header           gpeg_write_m_header
64 #define jpeg_write_m_byte             gpeg_write_m_byte
65 #define jpeg_write_tables             gpeg_write_tables
66 #define jpeg_read_header              gpeg_read_header
67 #define jpeg_start_decompress         gpeg_start_decompress
68 #define jpeg_read_scanlines           gpeg_read_scanlines
69 #define jpeg_finish_decompress        gpeg_finish_decompress
70 #define jpeg_read_raw_data            gpeg_read_raw_data
71 #define jpeg_has_multiple_scans       gpeg_has_multiple_scans
72 #define jpeg_start_output             gpeg_start_output
73 #define jpeg_finish_output            gpeg_finish_output
74 #define jpeg_input_complete           gpeg_input_complete
75 #define jpeg_new_colormap             gpeg_new_colormap
76 #define jpeg_consume_input            gpeg_consume_input
77 #define jpeg_core_output_dimensions   gpeg_core_output_dimensions
78 #define jpeg_calc_output_dimensions   gpeg_calc_output_dimensions
79 #define jpeg_save_markers             gpeg_save_markers
80 #define jpeg_set_marker_processor     gpeg_set_marker_processor
81 #define jpeg_read_coefficients        gpeg_read_coefficients
82 #define jpeg_write_coefficients       gpeg_write_coefficients
83 #define jpeg_copy_critical_parameters gpeg_copy_critical_parameters
84 #define jpeg_abort_compress           gpeg_abort_compress
85 #define jpeg_abort_decompress         gpeg_abort_decompress
86 #define jpeg_abort                    gpeg_abort
87 #define jpeg_destroy                  gpeg_destroy
88 #define jpeg_resync_to_restart        gpeg_resync_to_restart
89 
90 /* This second list comes from examination of symbols in the lib */
91 #define jpeg_free_small               gpeg_free_small
92 #define jpeg_get_small                gpeg_get_small
93 #define jpeg_get_large                gpeg_get_large
94 #define jpeg_free_large               gpeg_free_large
95 #define jpeg_mem_available            gpeg_mem_available
96 #define jpeg_open_backing_store       gpeg_open_backing_store
97 #define jpeg_mem_init                 gpeg_mem_init
98 #define jpeg_mem_term                 gpeg_mem_term
99 #define jpeg_natural_order            gpeg_natural_order
100 #define jpeg_natural_order2           gpeg_natural_order2
101 #define jpeg_natural_order3           gpeg_natural_order3
102 #define jpeg_natural_order4           gpeg_natural_order4
103 #define jpeg_natural_order5           gpeg_natural_order5
104 #define jpeg_natural_order6           gpeg_natural_order6
105 #define jpeg_natural_order7           gpeg_natural_order7
106 #define jpeg_fdct_10x10               gpeg_fdct_10x10
107 #define jpeg_fdct_10x5                gpeg_fdct_10x5
108 #define jpeg_fdct_11x11               gpeg_fdct_11x11
109 #define jpeg_fdct_12x12               gpeg_fdct_12x12
110 #define jpeg_fdct_12x6                gpeg_fdct_12x6
111 #define jpeg_fdct_13x13               gpeg_fdct_13x13
112 #define jpeg_fdct_14x14               gpeg_fdct_14x14
113 #define jpeg_fdct_14x7                gpeg_fdct_14x7
114 #define jpeg_fdct_15x15               gpeg_fdct_15x15
115 #define jpeg_fdct_16x16               gpeg_fdct_16x16
116 #define jpeg_fdct_16x8                gpeg_fdct_16x8
117 #define jpeg_fdct_1x1                 gpeg_fdct_1x1
118 #define jpeg_fdct_1x2                 gpeg_fdct_1x2
119 #define jpeg_fdct_2x1                 gpeg_fdct_2x1
120 #define jpeg_fdct_2x2                 gpeg_fdct_2x2
121 #define jpeg_fdct_2x4                 gpeg_fdct_2x4
122 #define jpeg_fdct_3x3                 gpeg_fdct_3x3
123 #define jpeg_fdct_3x6                 gpeg_fdct_3x6
124 #define jpeg_fdct_4x2                 gpeg_fdct_4x2
125 #define jpeg_fdct_4x4                 gpeg_fdct_4x4
126 #define jpeg_fdct_4x8                 gpeg_fdct_4x8
127 #define jpeg_fdct_5x10                gpeg_fdct_5x10
128 #define jpeg_fdct_5x5                 gpeg_fdct_5x5
129 #define jpeg_fdct_6x12                gpeg_fdct_6x12
130 #define jpeg_fdct_6x3                 gpeg_fdct_6x3
131 #define jpeg_fdct_6x6                 gpeg_fdct_6x6
132 #define jpeg_fdct_7x14                gpeg_fdct_7x14
133 #define jpeg_fdct_7x7                 gpeg_fdct_7x7
134 #define jpeg_fdct_8x16                gpeg_fdct_8x16
135 #define jpeg_fdct_8x4                 gpeg_fdct_8x4
136 #define jpeg_fdct_9x9                 gpeg_fdct_9x9
137 #define jpeg_cust_mem_init            gpeg_cust_mem_init
138 #define jpeg_cust_mem_set_private     gpeg_cust_mem_set_private
139 #define jpeg_fill_bit_buffer          gpeg_fill_bit_buffer
140 #define jpeg_huff_decode              gpeg_huff_decode
141 #define jpeg_make_c_derived_tbl       gpeg_make_c_derived_tbl
142 #define jpeg_make_d_derived_tbl       gpeg_make_d_derived_tbl
143 #define jpeg_zigzag_order             gpeg_zigzag_order
144 #define jpeg_zigzag_order2            gpeg_zigzag_order2
145 #define jpeg_zigzag_order3            gpeg_zigzag_order3
146 #define jpeg_zigzag_order4            gpeg_zigzag_order4
147 #define jpeg_zigzag_order5            gpeg_zigzag_order5
148 #define jpeg_zigzag_order6            gpeg_zigzag_order6
149 #define jpeg_zigzag_order7            gpeg_zigzag_order7
150 #define jpeg_std_message_table        gpeg_std_message_table
151 #define jpeg_aritab                   gpeg_aritab
152 #define jpeg_idct_islow               gpeg_idct_islow
153 #define jpeg_fdct_islow               gpeg_fdct_islow
154 #define jpeg_aritab                   gpeg_aritab
155 #define jpeg_gen_optimal_table        gpeg_gen_optimal_table
156 #define jinit_marker_reader           ginit_marker_reader
157 #define jdiv_round_up                 gdiv_round_up
158 #define jround_up                     ground_up
159 #define jcopy_block_row               gcopy_block_row
160 #define jcopy_sample_rows             gcopy_sample_rows
161 #define jinit_input_controller        ginit_input_controller
162 #define jinit_memory_mgr              ginit_memory_mgr
163 #define jinit_master_decompress       ginit_master_decompress
164 #define jinit_huff_decoder            ginit_huff_decoder
165 #define jinit_d_coef_controller       ginit_d_coef_controller
166 #define jinit_color_deconverter       ginit_color_deconverter
167 #define jinit_inverse_dct             ginit_inverse_dct
168 #define jinit_d_main_controller       ginit_d_main_controller
169 #define jinit_arith_decoder           ginit_arith_decoder
170 #define jinit_color_deconverter       ginit_color_deconverter
171 #define jinit_d_coef_controller       ginit_d_coef_controller
172 #define jinit_d_main_controller       ginit_d_main_controller
173 #define jinit_d_post_controller       ginit_d_post_controller
174 #define jinit_huff_decoder            ginit_huff_decoder
175 #define jinit_master_decompress       ginit_master_decompress
176 #define jinit_upsampler               ginit_upsampler
177 #define jinit_d_post_controller       ginit_d_post_controller
178 #define jinit_downsampler             ginit_downsampler
179 #define jinit_arith_decoder           ginit_arith_decoder
180 #define jinit_marker_writer           ginit_marker_writer
181 #define jinit_marker_mgr              ginit_marker_mgr
182 #define jinit_compress_master         ginit_compress_master
183 #define jinit_c_coef_controller       ginit_c_coef_controller
184 #define jinit_color_converter         ginit_color_converter
185 #define jinit_forward_dct             ginit_forward_dct
186 #define jinit_arith_encoder           ginit_arith_encoder
187 #define jinit_huff_encoder            ginit_huff_encoder
188 #define jinit_c_main_controller       ginit_c_main_controller
189 #define jinit_marker_writer           ginit_marker_writer
190 #define jinit_c_master_control        ginit_c_master_control
191 #define jinit_c_prep_controller       ginit_c_prep_controller
192 #endif
193 
194 /* See IJG's jconfig.doc for the contents of this file. */
195 
196 #ifdef __PROTOTYPES__
197 #  define HAVE_PROTOTYPES
198 #endif
199 
200 #define HAVE_UNSIGNED_CHAR
201 #define HAVE_UNSIGNED_SHORT
202 #undef CHAR_IS_UNSIGNED
203 
204 #ifdef __STDC__			/* is this right? */
205 # ifndef HAVE_STDDEF_H
206 #  define HAVE_STDDEF_H
207 # endif
208 # ifndef HAVE_STDLIB_H
209 #  define HAVE_STDLIB_H
210 # endif
211 #endif
212 
213 #undef NEED_BSD_STRINGS		/* WRONG */
214 #undef NEED_SYS_TYPES_H		/* WRONG */
215 #undef NEED_FAR_POINTERS
216 #undef NEED_SHORT_EXTERNAL_NAMES
217 
218 #undef INCOMPLETE_TYPES_BROKEN
219 
220 /* The following is documented in jmemsys.h, not jconfig.doc. */
221 #if ARCH_LOG2_SIZEOF_INT <= 1
222 #  undef MAX_ALLOC_CHUNK
223 #  define MAX_ALLOC_CHUNK 0xfff0
224 #endif
225 
226 #ifdef JPEG_INTERNALS
227 
228 #if ARCH_ARITH_RSHIFT == 0
229 #  define RIGHT_SHIFT_IS_UNSIGNED
230 #else
231 #  undef RIGHT_SHIFT_IS_UNSIGNED
232 #endif
233 
234 #endif /* JPEG_INTERNALS */
235 
236 #endif /* gsjconf_INCLUDED */
237