1/* DO NOT EDIT!
2 *
3 * This file is created automatically by configure from the template
4 * in config.h.in.
5 */
6
7#ifndef CONFIG_H__
8#define CONFIG_H__ 1
9
10/* ----------- Commandline Argument Defaults ----------
11 * These options provide default settings for those options which can
12 * also be set on the commandline.
13 */
14
15
16/* Define COMPAT_MODE if you are using the 2.4.5 mudlib or one of its
17 * derivatives.
18 */
19@cdef_compat_mode@ COMPAT_MODE
20
21/* The name of the master object.
22 */
23#define MASTER_NAME              @val_master_name@
24
25/* Define ALLOW_FILENAME_SPACES if the driver should accept space characters
26 * in filenames. If it is not defined, a hardcoded test for space characters
27 * is activated.
28 */
29@cdef_filename_spaces@ ALLOW_FILENAME_SPACES
30
31
32/* --- Runtime limits --- */
33
34/* This is the maximum array size allowed for one single array.
35 * If 0, any size is allowed.
36 */
37#define MAX_ARRAY_SIZE            @val_max_array_size@
38
39/* This is the maximum number of entries allowed for a single mapping.
40 * If 0, any size is allowed.
41 */
42#define MAX_MAPPING_KEYS          @val_max_mapping_keys@
43
44/* This is the maximum number of values held in a single mapping.
45 * If 0, any size is allowed.
46 */
47#define MAX_MAPPING_SIZE          @val_max_mapping_size@
48
49/* Max size of a file allowed to be read by 'read_file()'.
50 */
51#define READ_FILE_MAX_SIZE        @val_read_file_max_size@
52
53/* Define MAX_BYTE_TRANSFER to the number of bytes you allow to be read
54 * and written with read_bytes and write_bytes
55 */
56#define MAX_BYTE_TRANSFER        @val_max_byte_transfer@
57
58/* This is the maximum number of callouts allowed at one time.
59 * If 0, any number is allowed.
60 */
61#define MAX_CALLOUTS              @val_max_callouts@
62
63/* Define this to the maximum amount of data
64 * to be held pending for writing per interactive.
65 * A value of 0 means 'unlimited'.
66 */
67#define WRITE_BUFFER_MAX_SIZE     @val_write_buffer_max_size@
68
69
70/* --- Timing --- */
71
72/* If an object is left alone for a certain time, then the
73 * function clean_up will be called. This function can do anything,
74 * like destructing the object. If the function isn't defined by the
75 * object, then nothing will happen.
76 *
77 * This time should be substantially longer than the swapping time.
78 */
79#define TIME_TO_CLEAN_UP          @val_time_to_clean_up@
80
81/* How long time until an unused object is swapped out.
82 * Machine with too many players and too little memory: 900 (15 minutes)
83 * Machine with few players and lot of memory: 10000
84 * Machine with infinite memory: 0 (never swap).
85 */
86#define TIME_TO_SWAP              @val_time_to_swap@
87#define TIME_TO_SWAP_VARIABLES    @val_time_to_swap_variables@
88
89/* How many seconds until an object is reset again.
90 * Set this value high if big system, otherwise low.
91 */
92#define TIME_TO_RESET             @val_time_to_reset@
93
94/* The granularity of alarm() calls.
95 * This is the granularity of the call_outs,
96 * and base granularity of heart_beat, reset und clean_up calls.
97 */
98#define ALARM_TIME                @val_alarm_time@
99
100/* The interval between heart beats.
101 */
102#define HEART_BEAT_INTERVAL       @val_heart_beat_interval@
103
104/* Shall all heart beats happen in the same time frame?
105 * (i.e. only every HEART_BEAT_INTERVAL seconds.)
106 */
107@cdef_synchronous_heart_beat@ SYNCHRONOUS_HEART_BEAT
108
109/* --- Memory --- */
110
111/* Reserve an extra memory area from malloc(), to free when we run out
112 * of memory to get some warning and start Armageddon.
113 * If this value is 0, no area will be reserved.
114 */
115#define RESERVED_USER_SIZE      @val_reserved_user_size@
116#define RESERVED_MASTER_SIZE    @val_reserved_master_size@
117#define RESERVED_SYSTEM_SIZE    @val_reserved_system_size@
118
119/* If MIN_MALLOCED is > 0, the gamedriver will reserve this amount of
120 * memory on startup for large blocks, thus reducing the large block
121 * fragmentation. The value therefore should be a significantly large
122 * multiple of the large chunk size.
123 * As a rule of thumb, reserve enough memory to cover the first couple
124 * of days of uptime.
125 */
126#define MIN_MALLOCED  @val_min_malloced@
127
128/* If MIN_SMALL_MALLOCED is > 0, the gamedriver will reserve this
129 * amount of memory on startup for small blocks, thus reducing the small block
130 * fragmentation. The value therefore should be a significantly large
131 * multiple of the small chunk size.
132 * As a rule of thumb, reserve enough memory to cover the first couple
133 * of days of uptime.
134 */
135#define MIN_SMALL_MALLOCED  @val_min_small_malloced@
136
137/* This value gives the upper limit for the total allocated memory
138 * (useful for systems with no functioning process limit).
139 * A value of 0 means 'unlimited'.
140 */
141#define HARD_MALLOC_LIMIT_DEFAULT    @val_hard_malloc_limit@
142
143/* This value gives a soft limit of the allocated memory (kind of low
144 * watermark). If this value is exceeded, the driver will call low_memory() in
145 * the master to inform the mudlib about the (potenntially) developing low
146 * memory situation.
147 * A value of 0 means 'unlimited'.
148 */
149#define SOFT_MALLOC_LIMIT_DEFAULT    @val_soft_malloc_limit@
150
151/* --- Random Number Generator (SFMT) --- */
152/* Set the period length of the SFMT.
153 * Default is a period length of 2^19937 - 1
154 */
155#define RANDOM_PERIOD_LENGTH @val_random_period_length@
156
157/* --- Interpreter --- */
158
159/* Define STRICT_EUIDS if the driver is to enforce the use of euids,
160 * ie. load_object() and clone_object() require the current object to
161 * have a non-zero euid.
162 */
163@cdef_strict_euids@ STRICT_EUIDS
164
165/* Maximum number of evaluated nodes/loop.
166 * If this is exceeded, the current function is halted.
167 */
168#define MAX_COST             @val_max_cost@
169
170/* Define SHARE_VARIABLES if a clone's variables are to be assigned
171 * from the current blueprint's variables. Undefine it if clones
172 * should be initialized by __INIT().
173 */
174@cdef_share_variables@ SHARE_VARIABLES
175
176
177/* --- Communication --- */
178
179/* The input escape character.
180 */
181#define INPUT_ESCAPE             @val_input_escape@
182
183/* Define what port number the game is to use.
184 */
185#define PORTNO               @val_portno@
186
187/* Define this to the port on which the driver can receive UDP message.
188 * If set to -1, the port will not be opened unless the mud is given a valid
189 * port number on startup with the -u commandline option.
190 */
191#define UDP_PORT             @val_udp_port@
192
193/* Maximum numbers of ports the GD accepts connections to.
194 */
195#define MAXNUMPORTS          @val_maxnumports@
196
197/* Should code for the external request demon be included?
198 */
199@cdef_erq_demon@ ERQ_DEMON
200
201/* Maximum sizes for an erq send or reply.
202 */
203#define ERQ_MAX_REPLY @val_erq_max_reply@
204#define ERQ_MAX_SEND  @val_erq_max_send@
205
206/* Define this if you want IPv6 support (assuming that your host
207 * actually offers this.
208 */
209@cdef_use_ipv6@ USE_IPV6
210
211/* maximum number of concurrent outgoing connection attempts by net_connect()
212 * (that is connections that are in progress but not fully established yet).
213 */
214#define MAX_OUTCONN @val_max_net_connects@
215
216
217/* ----------- Compilation Options ----------
218 * To change these options, the config.h must be recreated and the
219 * driver recompiled.
220 */
221
222/* Trace the most recently executed bytecode instructions?
223 */
224@cdef_trace_code@ TRACE_CODE
225
226/* If using TRACE_CODE , how many instructions should be kept?
227 */
228#define TOTAL_TRACE_LENGTH      @val_total_trace_length@
229
230/* Runtime statistics:
231 *  COMM_STAT: count number and size of outgoing packets.
232 *  APPLY_CACHE_STAT: count number of hits and misses in the apply cache.
233 */
234@cdef_comm_stat@ COMM_STAT
235@cdef_apply_cache_stat@ APPLY_CACHE_STAT
236
237/* The name of the swapfile used by the driver to swap out objects (if
238 * enabled), relative to the mudlib directory. The driver will append
239 * '.<hostname>' to the file.
240 */
241#define SWAP_FILE                 @val_swap_file@
242
243
244/* --- Memory --- */
245
246/* Which memory manager to use. Possible defines are
247 *   MALLOC_smalloc:   Satoria's malloc. Fastest, uses the least memory,
248 *                     supports garbage collection.
249 *   MALLOC_slaballoc: Slab allocator. Fastest, reduces fragmentation,
250 *                     supports garbage collection, not threadsafe.
251 *   MALLOC_sysmalloc: the normal system malloc()
252 *   MALLOC_ptmalloc:  ptmalloc from www.malloc.de - threadsafe.
253 */
254
255#define MALLOC_@val_malloc@
256
257/* Define this to let the memory allocator request memory from the system
258 * directly using sbrk() (assuming the system supports it).
259 * If not defined, the memory allocator will use malloc().
260 * Supported by: MALLOC_smalloc, MALLOC_slaballoc.
261 */
262@cdef_malloc_sbrk@ MALLOC_SBRK
263
264/* Define this to annotate all allocations with a magic word to find
265 * simple misuses of memory (like multiple frees).
266 * Supported by: MALLOC_smalloc, MALLOC_slaballoc.
267 */
268@cdef_malloc_check@ MALLOC_CHECK
269
270/* Define this to annotate all allocations with file:line of the driver
271 * source responsible for it.
272 */
273@cdef_malloc_trace@ MALLOC_TRACE
274
275/* Define this to annotate all allocations with file:line of the lpc program
276 * responsible for it.
277 */
278@cdef_malloc_lpc_trace@ MALLOC_LPC_TRACE
279
280/* Define this to log all calls to esbrk() (the system memory allocator).
281 * Works best if MALLOC_TRACE is defined.
282 * This define is useful if your mud keeps growing in total memory size
283 * instead of re-using the memory already allocated.
284 * Supported by: MALLOC_smalloc, MALLOC_slaballoc.
285 */
286@cdef_malloc_sbrk_trace@ MALLOC_SBRK_TRACE
287
288/* --- Wizlist --- */
289
290/* Where to save the WIZLIST information.
291 * If not defined, and neither given on the commandline, the driver will
292 * not read the WIZLIST file.
293 */
294@cdef_wizlist_file@ WIZLIST_FILE  @val_wizlist_file@
295
296
297/* --- Access Control --- */
298/* file for access permissions data.
299 * Don't define this if you don't want the driver to do any access control.
300 */
301@cdef_access_control@ ACCESS_FILE @val_access_file@
302
303/* logfile to show valid and rejected connections
304 * simple not define this for NO logs
305 */
306@cdef_access_log@ ACCESS_LOG      @val_access_log@
307
308
309/* --- Language --- */
310
311/* Define USE_PARSE_COMMAND if you want the efun parse_command().
312 */
313@cdef_use_parse_command@ USE_PARSE_COMMAND
314
315/* Define USE_SET_LIGHT if you want the efun set_light() and the
316 * simple 2.4.5 light system.
317 */
318@cdef_use_set_light@ USE_SET_LIGHT
319
320/* Define USE_SET_IS_WIZARD if you want the efun set_is_wizard().
321 */
322@cdef_use_set_is_wizard@ USE_SET_IS_WIZARD
323
324/* Define USE_PROCESS_STRING if you want the efun process_string().
325 */
326@cdef_use_process_string@ USE_PROCESS_STRING
327
328/* Define this if you want MCCP (Mud Control Compression Protocol).
329 */
330@cdef_use_mccp@ USE_MCCP
331
332/* Define this if you want TLS (Transport Layer Security) over Telnet.
333 */
334@cdef_use_tls@ USE_TLS
335
336/* Default paths for TLS.
337 */
338@cdef_tls_keyfile@        TLS_DEFAULT_KEYFILE        @val_tls_keyfile@
339@cdef_tls_certfile@       TLS_DEFAULT_CERTFILE       @val_tls_certfile@
340@cdef_tls_trustfile@      TLS_DEFAULT_TRUSTFILE      @val_tls_trustfile@
341@cdef_tls_trustdirectory@ TLS_DEFAULT_TRUSTDIRECTORY @val_tls_trustdirectory@
342@cdef_tls_crlfile@        TLS_DEFAULT_CRLFILE        @val_tls_crlfile@
343@cdef_tls_crldirectory@   TLS_DEFAULT_CRLDIRECTORY   @val_tls_crldirectory@
344
345/* Define this if you want to use libgcrypt (and not OpenSSL).
346 */
347@cdef_use_gcrypt@ USE_GCRYPT
348
349/* Define this if you want mySQL support (assuming that your host
350 * actually offers this.
351 */
352@cdef_use_mysql@ USE_MYSQL
353
354/* Define this if you want PostgreSQL support (assuming that your host
355 * actually offers this.
356 */
357@cdef_use_pgsql@ USE_PGSQL
358
359/* Define this if you want SQLite support (assuming that your host
360 * actually offers this.
361 */
362@cdef_use_sqlite@ USE_SQLITE
363
364/* Define this if you want alist support.
365 */
366@cdef_use_alists@ USE_ALISTS
367
368/* Define this if you want to allow call_other()s on arrays of objects.
369 */
370@cdef_lpc_array_calls@ USE_ARRAY_CALLS
371
372/* Define this if you want PCRE instead of traditional regexps.
373 */
374@cdef_use_pcre@ USE_PCRE
375
376/* Define this if you want to use builtin PCRE (ignored when PCRE
377 * is disabled as a whole).
378 */
379@cdef_use_builtin_pcre@ USE_BUILTIN_PCRE
380
381/* Define this if you want iksemel library support.
382 */
383@cdef_use_xml@ USE_XML
384
385/* Define this if you want the obsolete and deprecated efuns.
386 */
387@cdef_use_deprecated@ USE_DEPRECATED
388
389
390/* --- Runtime limits --- */
391
392/* Maximum size of a socket send buffer.
393 */
394#define SET_BUFFER_SIZE_MAX      @val_set_buffer_size_max@
395
396/* CATCH_RESERVED_COST is the default value added to the eval cost for the
397 * time executing code guarded by a catch() statement, so that an
398 * eval_cost-too-big error can still be caught and handled.
399 *
400 * To catch an eval_cost too big error in an object that called recursive
401 * master functions, CATCH_RESERVED_COST should be greater than
402 * MASTER_RESERVED_COST.
403 */
404#define CATCH_RESERVED_COST       @val_catch_reserved_cost@
405
406/* MASTER_RESERVED_COST is the total reserve available for master applies.
407 * It is halved for every recursion into another master apply.
408 */
409#define MASTER_RESERVED_COST    @val_master_reserved_cost@ /* must be power of 2 */
410/* TODO: Check that at runtime */
411
412/* If this is defined, expensive operations like string additions
413 * receive additional evalcosts depending on the amount of data handled.
414 */
415@cdef_dynamic_costs@ DYNAMIC_COSTS
416
417/* Show the evaluation costs in the stacktrace.
418 */
419@cdef_eval_cost_trace@ EVAL_COST_TRACE
420
421/* Define the maximum stack size of the stack machine. This stack will also
422 * contain all local variables and arguments.
423 */
424#define EVALUATOR_STACK_SIZE      @val_evaluator_stack_size@
425
426/* Define the maximum call depth for functions.
427 * MAX_USER_TRACE is used for for normal program execution, the full
428 * MAX_TRACE is only available in error handling.
429 *
430 * MAX_TRACE must be larger than MAX_USER_TRACE (check at compile time).
431 */
432#define MAX_USER_TRACE              @val_max_user_trace@
433#define MAX_TRACE                   @val_max_trace@
434
435/* Maximum number of bits in a bit field. They are stored in printable
436 * strings, 6 bits per byte.
437 * The limit is more based on considerations of speed than memory
438 * consumption.
439 */
440#define MAX_BITS                  @val_max_bits@
441
442/* Maximum number of players in the game.
443 */
444#define MAX_PLAYERS                @val_max_players@
445
446/* When uploading files, we want fast response; however, normal players
447 * shouldn't be able to hog the system in this way.  Define ALLOWED_ED_CMDS
448 * to be the ratio of the no of ed cmds executed per player cmd.
449 */
450#define ALLOWED_ED_CMDS           @val_allowed_ed_cmds@
451/* TODO: ALLOWED_ED_CMDS: make this a runtime option */
452
453/* Limit the amount of recursion in the PCRE code. Setting it to low will
454 * prevent certain regexps to be executed properly, setting it too high can
455 * cause that regexps to crash the driver. Set it according to the
456 * available maximum stack size for the driver process. (Rule of thumb:
457 * The memory used for a recursion on the stack seems to be within 466 and
458 * 1008 bytes. If you have 8M of stack size, reserve half of it for LPC
459 * recursions and choose about 3000 - 4000.) In doubt, increase the stack
460 * size limit for the driver process with ulimit & Co.)
461 * Defaults to 3000
462 */
463#define LD_PCRE_RECURSION_LIMIT    @val_pcre_recursion_limit@
464
465/* The maximum length of the buffer for commands. The maximum length of a
466 * command will be MAX_COMMAND_LENGTH - 1.
467 */
468#define MAX_COMMAND_LENGTH       @val_max_command_length@
469
470/* --- Compiler --- */
471
472/* Define the size of the compiler stack. This defines how complex
473 * expressions the compiler can parse. The value should be big enough.
474 */
475#define COMPILER_STACK_SIZE        @val_compiler_stack_size@
476
477/* Max number of local variables in a function.
478 */
479#define MAX_LOCAL                   @val_max_local@
480
481/* Maximum size of an expanded preprocessor definition.
482 */
483#define DEFMAX                   @val_defmax@
484
485
486/* --- Internal Tables --- */
487
488/* Define the size of the shared string hash table.  This number needn't
489 * be prime, probably between 1000 and 30000; if you set it to about 1/5
490 * of the number of distinct strings you have, you will get a hit ratio
491 * (number of comparisons to find a string) very close to 1, as found strings
492 * are automatically moved to the head of a hash chain.  You will never
493 * need more, and you will still get good results with a smaller table.
494 * If the size is a power of two, hashing will be faster.
495 */
496#define HTABLE_SIZE               @val_htable_size@
497
498/* Object hash table size.
499 * Define this like you did with the strings; probably set to about 1/4 of
500 * the number of objects in a game, as the distribution of accesses to
501 * objects is somewhat more uniform than that of strings.
502 */
503#define OTABLE_SIZE               @val_otable_size@
504
505/* Define the size of the ident_table. It contains all global identifiers
506 * (efuns and permanent defines) as well as the identifiers of a compiled
507 * program which are removed from the ident_table after compilation.
508 * Must be within 256 and the maximum of a short (SHRT_MAX, usually 32768).
509 */
510#define ITABLE_SIZE               @val_itable_size@
511
512/* the number of apply_low cache entries will be 2^APPLY_CACHE_BITS.
513 */
514#define APPLY_CACHE_BITS            @val_apply_cache_bits@
515
516/* The parameters of the regular expression/result cache.
517 * The expression cache uses a hashtable of RXCACHE_TABLE entries.
518 * Undefine RXCACHE_TABLE to disable the all regexp caching.
519 */
520@cdef_rxcache_table@ RXCACHE_TABLE            @val_rxcache_table@
521
522/* --- Current Developments ---
523 * These options can be used to disable developments-in-progress if their
524 * code turns out to be interrrupting.
525 */
526
527/* Define this if you want structs supported.
528 */
529@cdef_use_structs@ USE_STRUCTS
530
531/* Define this if you want the new inline closure syntax supported.
532 * (f-020528).
533 */
534@cdef_use_new_inlines@ USE_NEW_INLINES
535
536
537/* --- Profiling ---
538 * For profiling of the VM instruction implementations, refer to the Makefile
539 */
540
541/* Enable usage statistics of VM instructions.
542 * For profiling of the VM instructions themselves, see the Profiling
543 * Options in the Makefile.
544 */
545@cdef_opcprof@ OPCPROF
546
547#ifdef OPCPROF
548/* With OPCPROF, the dump of the statistics include the names
549 * of the instructions.
550 */
551@cdef_verbose_opcprof@ VERBOSE_OPCPROF
552#endif
553
554
555/* --- Standard Debugging --- */
556
557/* Enable basic run time sanity checks. This will use more time
558 * and space, but nevertheless you are strongly encouraged to keep
559 * it defined.
560 */
561@cdef_debug@ DEBUG
562
563/* Enable debug output from the LPC compiler.
564 */
565@cdef_yydebug@ YYDEBUG
566
567/* Disable inlining.
568 */
569@cdef_no_inlines@ NO_INLINES
570
571/* Activate debug prints in the telnet machine.
572 */
573@cdef_debug_telnet@ DEBUG_TELNET
574
575/* Activate allocation debug prints in the malloc module.
576 * Supported by: MALLOC_smalloc, MALLOC_slaballoc.
577 */
578@cdef_debug_malloc_allocs@ DEBUG_MALLOC_ALLOCS
579
580/* The DEBUG level for the ERQ daemon:
581 *  0 : no debug output
582 *  1 : standard debug output
583 *  2 : verbose debug output
584 */
585#define ERQ_DEBUG @val_erq_debug@
586
587
588/* --- Specific Debugging ---
589 * These options have been introduced to debug specific problems and will
590 * be removed again later.
591 */
592
593/* Enable the automatic data cleanup from the backend.
594 * TODO: Remove this macro once it is proven stable.
595 */
596#define NEW_CLEANUP
597
598/* Log the details of the automatic data cleanup for each individual object.
599 * This is useful if the cleanup is suspected to hog the CPU.
600 * TODO: Remove this macro once it is proven stable.
601 */
602#undef LOG_NEW_CLEANUP
603
604/* Log the details of the automatic data cleanup of all objects. This is
605 * useful if the cleanup is suspected to hog the CPU.
606 * TODO: Remove this macro once it is proven stable.
607 */
608#define LOG_NEW_CLEANUP_ALL
609
610/* Enable the use of freelists in the malloc AVL nodes.
611 * Supported by: MALLOC_smalloc, MALLOC_slaballoc.
612 * TODO: Remove this macro once it is proven stable or if the change
613 * TODO:: didn't bring any advantages..
614 */
615#define USE_AVL_FREELIST
616
617/* Order malloc large block freelists by address.
618 * Supported by: MALLOC_smalloc, MALLOC_slaballoc.
619 * TODO: Remove if it doesn't help with the fragmentation, as it uses up
620 * TODO:: a small, but measurable amount of time in the allocator.
621 */
622#define MALLOC_ORDER_LARGE_FREELISTS
623
624/* Order slaballoc partial-slab freelists by number of free blocks.
625 * Supported by: MALLOC_slaballoc.
626 * TODO: Remove if it doesn't help with the fragmentation, as it uses up
627 * TODO:: a small, but measurable amount of time in the allocator.
628 */
629#define MALLOC_ORDER_SLAB_FREELISTS
630
631/* Allow slaballoc to use multiples of DESIRED_SLAB_SIZE when creating
632 * new slabs.
633 */
634#define SLABALLOC_DYNAMIC_SLABS
635
636/* Collect extended malloc statistics.
637 * Supported by: MALLOC_smalloc, MALLOC_slaballoc.
638 * TODO: Remove this macro or make it configurable.
639 */
640#define MALLOC_EXT_STATISTICS
641
642/* Collected statistics about string comparisons.
643 * TODO: Remove this macro after we got our  data.
644 */
645#define EXT_STRING_STATS
646
647/* Trace changes to the tot_alloc_object and tot_alloc_object_size
648 * statistics, in order to find the status bugs (enables commandline
649 * option --check-object-stat). Will produce a decent amount of
650 * output on stderr.
651 */
652@cdef_check_object_stat@ CHECK_OBJECT_STAT
653
654/* Activate total mapping size consistency check code. It has a small
655 * impact on the execution speed. This define was used to find
656 * the inaccuracy in the mapping statistic.
657 */
658@cdef_check_mapping_total@ CHECK_MAPPING_TOTAL
659
660/* Activate object refcount check code. It will produce a decent
661 * amount of log output. It will also fatal() the driver as soon
662 * as it detects an inconsistency in the list of destructed objects.
663 */
664@cdef_check_object_ref@ CHECK_OBJECT_REF
665
666/* Activate object referencing checking code during the GC. It will
667 * print error messages to gcout when an object or program is
668 * referenced as something else. No penalty for using.
669 * Requires MALLOC_TRACE to work. Incompatible with DUMP_GC_REFS.
670 */
671#ifdef MALLOC_TRACE
672@cdef_check_object_gc_ref@ CHECK_OBJECT_GC_REF
673#endif
674
675/* Sometimes the GC stumbles over invalid references to memory
676 * blocks (namely 'Program referenced as something else'). Define
677 * this macro to get a detailed dump of all found references
678 * (Warning: LOTS of output!). Incompatible with CHECK_OBJECT_GC_REF.
679 */
680@cdef_dump_gc_refs@ DUMP_GC_REFS
681
682#endif /* CONFIG_H__ */
683