This repository has been archived on 2025-11-10. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
oats/lisp/context.h
Aryadev Chavali 12de1e8db9 Refactor for cleanliness
Move files into separate folders for ease of reading, include source
directory so we can use angle bracket includes, adjust build system to
make directories for objects
2025-05-15 22:25:45 +01:00

39 lines
1.1 KiB
C

/* 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 <https://www.gnu.org/licenses/>.
* Created: 2025-05-12
* Description:
*/
#ifndef CONTEXT_H
#define CONTEXT_H
#include <lib/arena.h>
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