1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-09 15:10:29 +02:00
guile/gc-options-internal.h
Andy Wingo 4cb26e0144 Rework options interface
Users will want to set options from an environment variable or something
like that.  Particular GC implementations will want to expose an
expanded set of options.  For these reasons we make the options
interface a bit more generalized and include parsing.
2023-02-15 20:07:14 +01:00

32 lines
1.1 KiB
C

#ifndef GC_OPTIONS_INTERNAL_H
#define GC_OPTIONS_INTERNAL_H
#ifndef GC_IMPL
#error internal header file, not part of API
#endif
#include "gc-options.h"
struct gc_common_options {
enum gc_heap_size_policy heap_size_policy;
size_t heap_size;
size_t maximum_heap_size;
double heap_size_multiplier;
double heap_frugality;
int parallelism;
};
GC_INTERNAL void gc_init_common_options(struct gc_common_options *options);
GC_INTERNAL int gc_common_option_from_string(const char *str);
GC_INTERNAL int gc_common_options_set_int(struct gc_common_options *options,
int option, int value);
GC_INTERNAL int gc_common_options_set_size(struct gc_common_options *options,
int option, size_t value);
GC_INTERNAL int gc_common_options_set_double(struct gc_common_options *options,
int option, double value);
GC_INTERNAL int gc_common_options_parse_and_set(struct gc_common_options *options,
int option, const char *value);
#endif // GC_OPTIONS_INTERNAL_H