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
108
109// startup initialization
110void lbm_image_init(uint32_t *image_mem_addr,
111 uint32_t image_size,
112 lbm_image_write_fun image_write_fun);
113
118void lbm_image_create(char *version_str);
119
125bool lbm_image_exists(void);
126
132bool lbm_image_boot(void);
133
139char *lbm_image_get_version(void);
140
141
142
149typedef struct {
150 int32_t start;
151 int32_t num;
153
155bool sharing_table_set_field(sharing_table *st, int32_t ix, int32_t field, uint32_t value);
156uint32_t sharing_table_get_field(sharing_table *st, int32_t ix, int32_t field);
157
158#endif
static uint32_t image_size
Definition lbm_image.c:198
lbm_uint * lbm_image_add_symbol(char *name, lbm_uint id, lbm_uint symlist)
Definition lbm_image.c:490
bool lbm_image_save_constant_heap_ix(void)
Definition lbm_image.c:1077
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:613
bool lbm_image_save_extensions(void)
Definition lbm_image.c:1036
void lbm_image_init(uint32_t *image_mem_addr, uint32_t image_size, lbm_image_write_fun image_write_fun)
Definition lbm_image.c:1092
uint32_t sharing_table_get_field(sharing_table *st, int32_t ix, int32_t field)
Definition lbm_image.c:647
lbm_uint lbm_image_const_heap_index(void)
Definition lbm_image.c:470
bool lbm_image_exists(void)
Definition lbm_image.c:1087
char * lbm_image_get_version(void)
Definition lbm_image.c:446
bool lbm_image_has_extensions(void)
Definition lbm_image.c:214
lbm_uint * lbm_image_add_and_link_symbol(char *name, lbm_uint id, lbm_uint symlist, lbm_uint *link)
Definition lbm_image.c:510
bool sharing_table_set_field(sharing_table *st, int32_t ix, int32_t field, uint32_t value)
Definition lbm_image.c:637
bool lbm_image_boot(void)
Definition lbm_image.c:1136
bool lbm_image_save_global_env(void)
Definition lbm_image.c:963
uint32_t lbm_image_get_size(void)
Definition lbm_image.c:206
void lbm_image_create(char *version_str)
Definition lbm_image.c:1104
int32_t lbm_image_get_write_index(void)
Definition lbm_image.c:210
uint32_t * lbm_image_get_image(void)
Definition lbm_image.c:202
uint32_t lbm_uint
Definition lbm_types.h:48
Definition lbm_image.h:149
int32_t num
Definition lbm_image.h:151
int32_t start
Definition lbm_image.h:150
static lbm_uint * symlist
Definition symrepr.c:261