jconfig0.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546
  1. /* Copyright (C) 1993, 1994, 1996, 1997, 1998, 1999, 2001 Aladdin Enterprises. All rights reserved.
  2. This file is part of AFPL Ghostscript.
  3. AFPL Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author or
  4. distributor accepts any responsibility for the consequences of using it, or
  5. for whether it serves any particular purpose or works at all, unless he or
  6. she says so in writing. Refer to the Aladdin Free Public License (the
  7. "License") for full details.
  8. Every copy of AFPL Ghostscript must include a copy of the License, normally
  9. in a plain ASCII text file named PUBLIC. The License grants you the right
  10. to copy, modify and redistribute AFPL Ghostscript, but only under certain
  11. conditions described in the License. Among other things, the License
  12. requires that the copyright notice and this notice be preserved on all
  13. copies.
  14. */
  15. /*$Id: stdpre.h,v 1.4 2001/06/17 05:09:07 lpd Exp $ */
  16. /* Standard definitions for Aladdin Enterprises code not needing arch.h */
  17. #ifndef stdpre_INCLUDED
  18. # define stdpre_INCLUDED
  19. /*
  20. * Here we deal with the vagaries of various C compilers. We assume that:
  21. * ANSI-standard Unix compilers define __STDC__.
  22. * gcc defines __GNUC__.
  23. * Borland Turbo C and Turbo C++ define __MSDOS__ and __TURBOC__.
  24. * Borland C++ defines __BORLANDC__, __MSDOS__, and __TURBOC__.
  25. * Microsoft C/C++ defines _MSC_VER and _MSDOS.
  26. * Watcom C defines __WATCOMC__ and MSDOS.
  27. * MetroWerks C defines __MWERKS__.
  28. *
  29. * We arrange to define __MSDOS__ on all the MS-DOS platforms.
  30. */
  31. #if (defined(MSDOS) || defined(_MSDOS)) && !defined(__MSDOS__)
  32. # define __MSDOS__
  33. #endif
  34. /*
  35. * Also, not used much here, but used in other header files, we assume:
  36. * Unix System V environments define SYSV.
  37. * The SCO ODT compiler defines M_SYSV and M_SYS3.
  38. * VMS systems define VMS.
  39. * OSF/1 compilers define __osf__ or __OSF__.
  40. * (The VMS and OSF/1 C compilers handle prototypes and const,
  41. * but do not define __STDC__.)
  42. * bsd 4.2 or 4.3 systems define BSD4_2.
  43. * POSIX-compliant environments define _POSIX_SOURCE.
  44. * Motorola 88K BCS/OCS systems defined m88k.
  45. *
  46. * We make fairly heroic efforts to confine all uses of these flags to
  47. * header files, and never to use them in code.
  48. */
  49. #if defined(__osf__) && !defined(__OSF__)
  50. # define __OSF__ /* */
  51. #endif
  52. #if defined(M_SYSV) && !defined(SYSV)
  53. # define SYSV /* */
  54. #endif
  55. #if defined(M_SYS3) && !defined(__SVR3)
  56. # define __SVR3 /* */
  57. #endif
  58. #if defined(__STDC__) || defined(__MSDOS__) || defined(__convex__) || defined(VMS) || defined(__OSF__) || defined(__WIN32__) || defined(__IBMC__) || defined(M_UNIX) || defined(__GNUC__) || defined(__BORLANDC__)
  59. # if !(defined(M_XENIX) && !defined(__GNUC__)) /* SCO Xenix cc is broken */
  60. # define __PROTOTYPES__ /* */
  61. # endif
  62. #endif
  63. /* Define dummy values for __FILE__ and __LINE__ if the compiler */
  64. /* doesn't provide these. Note that places that use __FILE__ */
  65. /* must check explicitly for a null pointer. */
  66. #ifndef __FILE__
  67. # define __FILE__ NULL
  68. #endif
  69. #ifndef __LINE__
  70. # define __LINE__ 0
  71. #endif
  72. /* Disable 'const' and 'volatile' if the compiler can't handle them. */
  73. #ifndef __PROTOTYPES__
  74. # undef const
  75. # define const /* */
  76. # undef volatile
  77. # define volatile /* */
  78. #endif
  79. /* Disable 'inline' if the compiler can't handle it. */
  80. #ifdef __DECC
  81. # undef inline
  82. # define inline __inline
  83. #else
  84. # ifdef __GNUC__
  85. /* Define inline as __inline__ so -pedantic won't produce a warning. */
  86. # undef inline
  87. # define inline __inline__
  88. # else
  89. # if !(defined(__MWERKS__) || defined(inline))
  90. # define inline /* */
  91. # endif
  92. # endif
  93. #endif
  94. /*
  95. * Provide a way to include inline procedures in header files, regardless of
  96. * whether the compiler (A) doesn't support inline at all, (B) supports it
  97. * but also always compiles a closed copy, (C) supports it but somehow only
  98. * includes a single closed copy in the executable, or (D) supports it and
  99. * also supports a different syntax if no closed copy is desired.
  100. *
  101. * The code that appears just after this comment indicates which compilers
  102. * are of which kind. (Eventually this might be determined automatically.)
  103. * (A) and (B) require nothing here.
  104. * (C) requires
  105. * #define extern_inline inline
  106. * (D) requires
  107. * #define extern_inline extern inline // or whatever
  108. * Note that for case (B), the procedure will only be declared inline in
  109. * the .c file where its closed copy is compiled.
  110. */
  111. #ifdef __GNUC__
  112. # define extern_inline extern inline
  113. #endif
  114. /*
  115. * To include an inline procedure xyz in a header file abc.h, use the
  116. * following template in the header file:
  117. extern_inline int xyz(<<parameters>>)
  118. #if HAVE_EXTERN_INLINE || defined(INLINE_INCLUDE_xyz)
  119. {
  120. <<body>>
  121. }
  122. #else
  123. ;
  124. #endif
  125. * And use the following in whichever .c file takes responsibility for
  126. * including the closed copy of xyz:
  127. #define EXTERN_INCLUDE_xyz // must precede all #includes
  128. #include "abc.h"
  129. * The definitions of the EXTERN_INCLUDE_ macros must precede *all* includes
  130. * because there is no way to know whether some other .h file #includes abc.h
  131. * indirectly, and because of the protection against double #includes, the
  132. * EXTERN_INCLUDE_s must be defined before the first inclusion of abc.h.
  133. */
  134. /*
  135. * The following is generic code that does not need per-compiler
  136. * customization.
  137. */
  138. #ifdef extern_inline
  139. # define HAVE_EXTERN_INLINE 1
  140. #else
  141. # define extern_inline /* */
  142. # define HAVE_EXTERN_INLINE 0
  143. #endif
  144. /*
  145. * Some compilers give a warning if a function call that returns a value
  146. * is used as a statement; a few compilers give an error for the construct
  147. * (void)0, which is contrary to the ANSI standard. Since we don't know of
  148. * any compilers that do both, we define a macro here for discarding
  149. * the value of an expression statement, which can be defined as either
  150. * including or not including the cast. (We don't conditionalize this here,
  151. * because no commercial compiler gives the error on (void)0, although
  152. * some give warnings.) */
  153. #define DISCARD(expr) ((void)(expr))
  154. /* Backward compatibility */
  155. #define discard(expr) DISCARD(expr)
  156. /*
  157. * Some versions of the Watcom compiler give a "Comparison result always
  158. * 0/1" message that we want to suppress because it gets in the way of
  159. * meaningful warnings.
  160. */
  161. #ifdef __WATCOMC__
  162. # pragma disable_message(124);
  163. #endif
  164. /*
  165. * Some versions of gcc have a bug such that after
  166. byte *p;
  167. ...
  168. x = *(long *)p;
  169. * the compiler then thinks that p always points to long-aligned data.
  170. * Detect this here so it can be handled appropriately in the few places
  171. * that (we think) matter.
  172. */
  173. #ifdef __GNUC__
  174. # if __GNUC__ == 2 & (7 < __GNUC_MINOR__ <= 95)
  175. # define ALIGNMENT_ALIASING_BUG
  176. # endif
  177. #endif
  178. /*
  179. * The SVR4.2 C compiler incorrectly considers the result of << and >>
  180. * to be unsigned if the left operand is signed and the right operand is
  181. * unsigned. We believe this only causes trouble in Ghostscript code when
  182. * the right operand is a sizeof(...), which is unsigned for this compiler.
  183. * Therefore, we replace the relevant uses of sizeof with size_of:
  184. */
  185. #define size_of(x) ((int)(sizeof(x)))
  186. /*
  187. * far_data was formerly used for static data that had to be assigned its
  188. * own segment on PCs with 64K segments. This was supported in Borland C++,
  189. * but none of the other compilers. Since we no longer support
  190. * small-segment systems, far_data is vacuous.
  191. */
  192. #undef far_data
  193. #define far_data /* */
  194. /*
  195. * Get the number of elements of a statically dimensioned array.
  196. * Note that this also works on array members of structures.
  197. */
  198. #define countof(a) (sizeof(a) / sizeof((a)[0]))
  199. #define count_of(a) (size_of(a) / size_of((a)[0]))
  200. /*
  201. * Get the offset of a structure member. Amazingly enough, the simpler
  202. * definition works on all compilers except for one broken MIPS compiler
  203. * and the IBM RS/6000. Unfortunately, because of these two compilers,
  204. * we have to use the more complex definition. Even more unfortunately,
  205. * the more complex definition doesn't work on the MetroWerks
  206. * CodeWarrior compiler (Macintosh and BeOS).
  207. */
  208. #ifdef __MWERKS__
  209. #define offset_of(type, memb)\
  210. ((int) &((type *) 0)->memb)
  211. #else
  212. #define offset_of(type, memb)\
  213. ((int) ( (char *)&((type *)0)->memb - (char *)((type *)0) ))
  214. #endif
  215. /*
  216. * Get the alignment of a pointer modulo a given power of 2.
  217. * There is no portable way to do this, but the following definition
  218. * works on all reasonable systems.
  219. */
  220. #define ALIGNMENT_MOD(ptr, modu)\
  221. ((uint)( ((const char *)(ptr) - (const char *)0) & ((modu) - 1) ))
  222. /* Define short names for the unsigned types. */
  223. typedef unsigned char byte;
  224. typedef unsigned char uchar;
  225. typedef unsigned short ushort;
  226. typedef unsigned int uint;
  227. typedef unsigned long ulong;
  228. /* Since sys/types.h often defines one or more of these (depending on */
  229. /* the platform), we have to take steps to prevent name clashes. */
  230. /*** NOTE: This requires that you include std.h *before* any other ***/
  231. /*** header file that includes sys/types.h. ***/
  232. #define bool bool_ /* (maybe not needed) */
  233. #define uchar uchar_
  234. #define uint uint_
  235. #define ushort ushort_
  236. #define ulong ulong_
  237. #include <sys/types.h>
  238. #undef bool
  239. #undef uchar
  240. #undef uint
  241. #undef ushort
  242. #undef ulong
  243. /*
  244. * Define a Boolean type. Even though we would like it to be
  245. * unsigned char, it pretty well has to be int, because
  246. * that's what all the relational operators and && and || produce.
  247. * We can't make it an enumerated type, because ints don't coerce
  248. * freely to enums (although the opposite is true).
  249. * Unfortunately, at least some C++ compilers have a built-in bool type,
  250. * and the MetroWerks C++ compiler insists that bool be equivalent to
  251. * unsigned char.
  252. */
  253. #ifndef __cplusplus
  254. #ifdef __BEOS__
  255. typedef unsigned char bool;
  256. #else
  257. typedef int bool;
  258. #endif
  259. #endif
  260. /*
  261. * MetroWerks CodeWarrior predefines true and false, probably as 1 and 0.
  262. * We need to cancel those definitions for our own code.
  263. */
  264. #undef false
  265. #define false ((bool)0)
  266. #undef true
  267. #define true ((bool)1)
  268. /*
  269. * Compilers disagree as to whether macros used in macro arguments
  270. * should be expanded at the time of the call, or at the time of
  271. * final expansion. Even authoritative documents disagree: the ANSI
  272. * standard says the former, but Harbison and Steele's book says the latter.
  273. * In order to work around this discrepancy, we have to do some very
  274. * ugly things in a couple of places. We mention it here because
  275. * it might well trip up future developers.
  276. */
  277. /*
  278. * Define the type to be used for ordering pointers (<, >=, etc.).
  279. * The Borland and Microsoft large models only compare the offset part
  280. * of segmented pointers. Semantically, the right type to use for the
  281. * comparison is char huge *, but we have no idea how expensive comparing
  282. * such pointers is, and any type that compares all the bits of the pointer,
  283. * gives the right result for pointers in the same segment, and keeps
  284. * different segments disjoint will do.
  285. */
  286. #if defined(__TURBOC__) || defined(_MSC_VER)
  287. typedef unsigned long ptr_ord_t;
  288. #else
  289. typedef const char *ptr_ord_t;
  290. #endif
  291. /* Define all the pointer comparison operations. */
  292. #define _PTR_CMP(p1, rel, p2) ((ptr_ord_t)(p1) rel (ptr_ord_t)(p2))
  293. #define PTR_LE(p1, p2) _PTR_CMP(p1, <=, p2)
  294. #define PTR_LT(p1, p2) _PTR_CMP(p1, <, p2)
  295. #define PTR_GE(p1, p2) _PTR_CMP(p1, >=, p2)
  296. #define PTR_GT(p1, p2) _PTR_CMP(p1, >, p2)
  297. #define PTR_BETWEEN(ptr, lo, hi)\
  298. (PTR_GE(ptr, lo) && PTR_LT(ptr, hi))
  299. /* Define min and max, but make sure to use the identical definition */
  300. /* to the one that all the compilers seem to have.... */
  301. #ifndef min
  302. # define min(a, b) (((a) < (b)) ? (a) : (b))
  303. #endif
  304. #ifndef max
  305. # define max(a, b) (((a) > (b)) ? (a) : (b))
  306. #endif
  307. /* Define a standard way to round values to a (constant) modulus. */
  308. #define ROUND_DOWN(value, modulus)\
  309. ( (modulus) & ((modulus) - 1) ? /* not a power of 2 */\
  310. (value) - (value) % (modulus) :\
  311. (value) & -(modulus) )
  312. #define ROUND_UP(value, modulus)\
  313. ( (modulus) & ((modulus) - 1) ? /* not a power of 2 */\
  314. ((value) + ((modulus) - 1)) / (modulus) * (modulus) :\
  315. ((value) + ((modulus) - 1)) & -(modulus) )
  316. /* Backward compatibility */
  317. #define round_up(v, m) ROUND_UP(v, m)
  318. #define round_down(v, m) ROUND_DOWN(v, m)
  319. /*
  320. * In pre-ANSI C, float parameters get converted to double.
  321. * However, if we pass a float to a function that has been declared
  322. * with a prototype, and the parameter has been declared as float,
  323. * the ANSI standard specifies that the parameter is left as float.
  324. * To avoid problems caused by missing prototypes,
  325. * we declare almost all float parameters as double.
  326. */
  327. typedef double floatp;
  328. /*
  329. * Because of C's strange insistence that ; is a terminator and not a
  330. * separator, compound statements {...} are not syntactically equivalent to
  331. * single statements. Therefore, we define here a compound-statement
  332. * construct that *is* syntactically equivalent to a single statement.
  333. * Usage is
  334. * BEGIN
  335. * ...statements...
  336. * END
  337. */
  338. #define BEGIN do {
  339. #define END } while (0)
  340. /*
  341. * Define a handy macro for a statement that does nothing.
  342. * We can't just use an empty statement, since this upsets some compilers.
  343. */
  344. #ifndef DO_NOTHING
  345. # define DO_NOTHING BEGIN END
  346. #endif
  347. /*
  348. * For accountability, debugging, and error messages, we pass a client
  349. * identification string to alloc and free, and possibly other places as
  350. * well. Define the type for these strings.
  351. */
  352. typedef const char *client_name_t;
  353. /****** WHAT TO DO ABOUT client_name_string ? ******/
  354. #define client_name_string(cname) (cname)
  355. /*
  356. * If we are debugging, make all static variables and procedures public
  357. * so they get passed through the linker.
  358. */
  359. #define public /* */
  360. /*
  361. * We separate out the definition of private this way so that
  362. * we can temporarily #undef it to handle the X Windows headers,
  363. * which define a member named private.
  364. */
  365. #ifdef NOPRIVATE
  366. # define private_ /* */
  367. #else
  368. # define private_ static
  369. #endif
  370. #define private private_
  371. /*
  372. * Macros for argument templates. ANSI C has these, as does Turbo C,
  373. * but older pcc-derived (K&R) Unix compilers don't. The syntax is
  374. * resulttype func(Pn(arg1, ..., argn));
  375. */
  376. #ifdef __PROTOTYPES__
  377. # define P0() void
  378. # define P1(t1) t1
  379. # define P2(t1,t2) t1,t2
  380. # define P3(t1,t2,t3) t1,t2,t3
  381. # define P4(t1,t2,t3,t4) t1,t2,t3,t4
  382. # define P5(t1,t2,t3,t4,t5) t1,t2,t3,t4,t5
  383. # define P6(t1,t2,t3,t4,t5,t6) t1,t2,t3,t4,t5,t6
  384. # define P7(t1,t2,t3,t4,t5,t6,t7) t1,t2,t3,t4,t5,t6,t7
  385. # define P8(t1,t2,t3,t4,t5,t6,t7,t8) t1,t2,t3,t4,t5,t6,t7,t8
  386. # define P9(t1,t2,t3,t4,t5,t6,t7,t8,t9) t1,t2,t3,t4,t5,t6,t7,t8,t9
  387. # define P10(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) t1,t2,t3,t4,t5,t6,t7,t8,t9,t10
  388. # define P11(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11) t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11
  389. # define P12(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12) t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12
  390. # define P13(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13) t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13
  391. # define P14(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14) t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14
  392. # define P15(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15) t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15
  393. # define P16(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16) t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16
  394. #else
  395. # define P0() /* */
  396. # define P1(t1) /* */
  397. # define P2(t1,t2) /* */
  398. # define P3(t1,t2,t3) /* */
  399. # define P4(t1,t2,t3,t4) /* */
  400. # define P5(t1,t2,t3,t4,t5) /* */
  401. # define P6(t1,t2,t3,t4,t5,t6) /* */
  402. # define P7(t1,t2,t3,t4,t5,t6,t7) /* */
  403. # define P8(t1,t2,t3,t4,t5,t6,t7,t8) /* */
  404. # define P9(t1,t2,t3,t4,t5,t6,t7,t8,t9) /* */
  405. # define P10(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) /* */
  406. # define P11(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11) /* */
  407. # define P12(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12) /* */
  408. # define P13(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13) /* */
  409. # define P14(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14) /* */
  410. # define P15(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15) /* */
  411. # define P16(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16) /* */
  412. #endif
  413. /*
  414. * Define success and failure codes for 'exit'. The only system on which
  415. * they are different is VMS with older DEC C versions. We aren't sure
  416. * in what version DEC C started being compatible with the rest of the
  417. * world, and we don't know what the story is with VAX C. If you have
  418. * problems, uncomment the following line or add -DOLD_VMS_C to the C
  419. * command line.
  420. */
  421. /*#define OLD_VMS_C*/
  422. #if defined(VMS) && (defined(OLD_VMS_C) || !defined(__DECC))
  423. # define exit_OK 1
  424. # define exit_FAILED 18
  425. #else
  426. # define exit_OK 0
  427. # define exit_FAILED 1
  428. #endif
  429. #endif /* stdpre_INCLUDED */
  430. /* Copyright (C) 1994, 1998 Aladdin Enterprises. All rights reserved.
  431. This file is part of AFPL Ghostscript.
  432. AFPL Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author or
  433. distributor accepts any responsibility for the consequences of using it, or
  434. for whether it serves any particular purpose or works at all, unless he or
  435. she says so in writing. Refer to the Aladdin Free Public License (the
  436. "License") for full details.
  437. Every copy of AFPL Ghostscript must include a copy of the License, normally
  438. in a plain ASCII text file named PUBLIC. The License grants you the right
  439. to copy, modify and redistribute AFPL Ghostscript, but only under certain
  440. conditions described in the License. Among other things, the License
  441. requires that the copyright notice and this notice be preserved on all
  442. copies.
  443. */
  444. /*$Id: gsjconf.h,v 1.2 2000/09/19 19:00:29 lpd Exp $ */
  445. /* jconfig.h file for Independent JPEG Group code */
  446. #ifndef gsjconf_INCLUDED
  447. # define gsjconf_INCLUDED
  448. /*
  449. * We should have the following here:
  450. #include "stdpre.h"
  451. * But because of the directory structure used to build the IJG library, we
  452. * actually concatenate stdpre.h on the front of this file instead to
  453. * construct the jconfig.h file used for the compilation.
  454. */
  455. #include "arch.h"
  456. /* See IJG's jconfig.doc for the contents of this file. */
  457. #ifdef __PROTOTYPES__
  458. # define HAVE_PROTOTYPES
  459. #endif
  460. #define HAVE_UNSIGNED_CHAR
  461. #define HAVE_UNSIGNED_SHORT
  462. #undef CHAR_IS_UNSIGNED
  463. #ifdef __STDC__ /* is this right? */
  464. # define HAVE_STDDEF_H
  465. # define HAVE_STDLIB_H
  466. #endif
  467. #undef NEED_BSD_STRINGS /* WRONG */
  468. #undef NEED_SYS_TYPES_H /* WRONG */
  469. #undef NEED_FAR_POINTERS
  470. #undef NEED_SHORT_EXTERNAL_NAMES
  471. #undef INCOMPLETE_TYPES_BROKEN
  472. /* The following is documented in jmemsys.h, not jconfig.doc. */
  473. #if ARCH_SIZEOF_INT <= 2
  474. # undef MAX_ALLOC_CHUNK
  475. # define MAX_ALLOC_CHUNK 0xfff0
  476. #endif
  477. #ifdef JPEG_INTERNALS
  478. #if ARCH_ARITH_RSHIFT == 0
  479. # define RIGHT_SHIFT_IS_UNSIGNED
  480. #else
  481. # undef RIGHT_SHIFT_IS_UNSIGNED
  482. #endif
  483. #endif /* JPEG_INTERNALS */
  484. #endif /* gsjconf_INCLUDED */