6#include <virtual_memory.h>
8#include "solver_heap.h"
10equix_ctx* equix_alloc(equix_ctx_flags flags) {
15 ctx->flags = (equix_ctx_flags)0;
17 if (flags & EQUIX_CTX_MUST_COMPILE) {
18 ctx->hash_func = hashx_alloc(HASHX_TYPE_COMPILED);
19 }
else if (flags & EQUIX_CTX_TRY_COMPILE) {
20 ctx->hash_func = hashx_alloc(HASHX_TRY_COMPILE);
22 ctx->hash_func = hashx_alloc(HASHX_TYPE_INTERPRETED);
24 if (ctx->hash_func == NULL) {
28 if (flags & EQUIX_CTX_SOLVE) {
29 if (flags & EQUIX_CTX_HUGEPAGES) {
30#ifdef EQUIX_SUPPORT_HUGEPAGES
31 ctx->heap = hashx_vm_alloc_huge(
sizeof(
solver_heap));
39 if (ctx->heap == NULL) {
55 if (ctx->flags & EQUIX_CTX_SOLVE) {
56 if (ctx->flags & EQUIX_CTX_HUGEPAGES) {
63 hashx_free(ctx->hash_func);