LispBM
Loading...
Searching...
No Matches
lbm_image.h
Go to the documentation of this file.
1/*
2 Copyright 2025 Joel Svensson svenssonjoel@yahoo.se
3
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
19#ifndef LBM_IMAGE_H_
20#define LBM_IMAGE_H_
21
28typedef bool (*lbm_image_write_fun)(uint32_t data, int32_t index, bool const_heap);
29
38uint32_t *lbm_image_get_image(void);
39
46int32_t lbm_image_get_write_index(void);
47
52uint32_t lbm_image_get_size(void);
53
59
65
71
78
88
98
104char *lbm_image_add_symbol_name(const char *name, size_t len);
105
115
116// startup initialization
117void lbm_image_init(uint32_t *image_mem_addr,
118 uint32_t image_size,
119 lbm_image_write_fun image_write_fun);
120
125void lbm_image_create(char *version_str);
126
132bool lbm_image_exists(void);
133
139bool lbm_image_boot(void);
140
146char *lbm_image_get_version(void);
147
148
149
156typedef struct {
157 int32_t start;
158 int32_t num;
160
162bool sharing_table_set_field(sharing_table *st, int32_t ix, int32_t field, uint32_t value);
163uint32_t sharing_table_get_field(sharing_table *st, int32_t ix, int32_t field);
164
165#endif
static uint32_t image_size
Definition lbm_image.c:199
lbm_uint * lbm_image_add_symbol(char *name, lbm_uint id, lbm_uint symlist)
Definition lbm_image.c:499
bool lbm_image_save_constant_heap_ix(void)
Definition lbm_image.c:1134
bool(* lbm_image_write_fun)(uint32_t data, int32_t index, bool const_heap)
Definition lbm_image.h:28
int32_t sharing_table_contains(sharing_table *st, lbm_uint addr)
Definition lbm_image.c:671
bool lbm_image_save_extensions(void)
Definition lbm_image.c:1096
void lbm_image_init(uint32_t *image_mem_addr, uint32_t image_size, lbm_image_write_fun image_write_fun)
Definition lbm_image.c:1149
uint32_t sharing_table_get_field(sharing_table *st, int32_t ix, int32_t field)
Definition lbm_image.c:705
char * lbm_image_add_symbol_name(const char *name, size_t len)
Definition lbm_image.c:552
lbm_uint lbm_image_const_heap_index(void)
Definition lbm_image.c:479
bool lbm_image_exists(void)
Definition lbm_image.c:1144
char * lbm_image_get_version(void)
Definition lbm_image.c:455
bool lbm_image_has_extensions(void)
Definition lbm_image.c:215
lbm_uint * lbm_image_add_and_link_symbol(char *name, lbm_uint id, lbm_uint symlist, lbm_uint *link)
Definition lbm_image.c:569
bool sharing_table_set_field(sharing_table *st, int32_t ix, int32_t field, uint32_t value)
Definition lbm_image.c:695
bool lbm_image_boot(void)
Definition lbm_image.c:1170
bool lbm_image_save_global_env(void)
Definition lbm_image.c:1021
uint32_t lbm_image_get_size(void)
Definition lbm_image.c:207
void lbm_image_create(char *version_str)
Definition lbm_image.c:1161
int32_t lbm_image_get_write_index(void)
Definition lbm_image.c:211
uint32_t * lbm_image_get_image(void)
Definition lbm_image.c:203
uint32_t lbm_uint
Definition lbm_types.h:48
Definition lbm_image.h:156
int32_t num
Definition lbm_image.h:158
int32_t start
Definition lbm_image.h:157
static lbm_uint * symlist
Definition symrepr.c:261