/* Copyright (C) 2025 Aryadev Chavali * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License Version 2 * for details. * You may distribute and modify this code under the terms of the * GNU General Public License Version 2, which you should have received a copy of along with this * program. If not, please go to . * Created: 2025-05-12 * Description: */ #ifndef CONTEXT_H #define CONTEXT_H #include typedef struct Context { arena_t memory, read, scratch; } context_t; void *context_alloc(context_t *context, u64 size); void *context_salloc(context_t *context, u64 size); page_t *context_get_read_page(context_t *ctx); void context_reset_read(context_t *context); void context_reset_scratch(context_t *context); void context_reset(context_t *context); void context_cleanup(context_t *context); void context_report(context_t *context); #endif