summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/cbfs.c2
-rw-r--r--src/lib/prog_ops.c12
-rw-r--r--src/lib/rmodule.c2
-rw-r--r--src/lib/selfboot.c2
4 files changed, 15 insertions, 3 deletions
diff --git a/src/lib/cbfs.c b/src/lib/cbfs.c
index 82bfa2d8ad..e1626d79fd 100644
--- a/src/lib/cbfs.c
+++ b/src/lib/cbfs.c
@@ -206,7 +206,7 @@ int cbfs_prog_stage_load(struct prog *pstage)
/* Clear area not covered by file. */
memset(&load[fsize], 0, stage.memlen - fsize);
- arch_segment_loaded((uintptr_t)load, stage.memlen, SEG_FINAL);
+ prog_segment_loaded((uintptr_t)load, stage.memlen, SEG_FINAL);
out:
prog_set_area(pstage, load, stage.memlen);
diff --git a/src/lib/prog_ops.c b/src/lib/prog_ops.c
index 67bdcc039f..bc889fceae 100644
--- a/src/lib/prog_ops.c
+++ b/src/lib/prog_ops.c
@@ -17,6 +17,18 @@
#include <program_loading.h>
/* For each segment of a program loaded this function is called*/
+void prog_segment_loaded(uintptr_t start, size_t size, int flags)
+{
+ platform_segment_loaded(start, size, flags);
+ arch_segment_loaded(start, size, flags);
+}
+
+void __attribute__ ((weak)) platform_segment_loaded(uintptr_t start,
+ size_t size, int flags)
+{
+ /* do nothing */
+}
+
void __attribute__ ((weak)) arch_segment_loaded(uintptr_t start, size_t size,
int flags)
{
diff --git a/src/lib/rmodule.c b/src/lib/rmodule.c
index 9825e6a50f..70431579e0 100644
--- a/src/lib/rmodule.c
+++ b/src/lib/rmodule.c
@@ -197,7 +197,7 @@ int rmodule_load(void *base, struct rmodule *module)
return -1;
rmodule_clear_bss(module);
- arch_segment_loaded((uintptr_t)module->location,
+ prog_segment_loaded((uintptr_t)module->location,
rmodule_memory_size(module), SEG_FINAL);
return 0;
diff --git a/src/lib/selfboot.c b/src/lib/selfboot.c
index 7d3e2dd5f6..23eda14dff 100644
--- a/src/lib/selfboot.c
+++ b/src/lib/selfboot.c
@@ -452,7 +452,7 @@ static int load_self_segments(
* Each architecture can perform additonal operations
* on the loaded segment
*/
- arch_segment_loaded((uintptr_t)dest, ptr->s_memsz,
+ prog_segment_loaded((uintptr_t)dest, ptr->s_memsz,
last_non_empty == ptr ? SEG_FINAL : 0);
}
}