Export redesign
this is an atempt to make the export of functions typesafe. I replaced the jumptable void ** by a struct (jt_funcs) with function pointers. The EXPORT_FUNC macro now has 3 fixed parameters and one variadic parameter The first is the name of the exported function, the rest of the parameters are used to format a functionpointer in the jumptable, the EXPORT_FUNC macros are expanded three times, 1. to declare the members of the struct 2. to initialize the structmember pointers 3. to call the functions in stubs.c Signed-off-by: Martin Dorwig <dorwig@tetronik.com> Acked-by: Simon Glass <sjg@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org> (resending to the list since my tweaks are not quite trivial)
This commit is contained in:
committed by
Simon Glass
parent
2017aaef8c
commit
49cad54788
@@ -24,6 +24,7 @@
|
||||
|
||||
#include "cpu.h"
|
||||
#include "initcode.h"
|
||||
#include "exports.h"
|
||||
|
||||
ulong bfin_poweron_retx;
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
@@ -121,7 +122,7 @@ static void display_global_data(void)
|
||||
printf(" |-ram_size: %lx\n", gd->ram_size);
|
||||
printf(" |-env_addr: %lx\n", gd->env_addr);
|
||||
printf(" |-env_valid: %lx\n", gd->env_valid);
|
||||
printf(" |-jt(%p): %p\n", gd->jt, *(gd->jt));
|
||||
printf(" |-jt(%p): %p\n", gd->jt, gd->jt->get_version);
|
||||
printf(" \\-bd: %p\n", gd->bd);
|
||||
printf(" |-bi_boot_params: %lx\n", bd->bi_boot_params);
|
||||
printf(" |-bi_memstart: %lx\n", bd->bi_memstart);
|
||||
|
||||
Reference in New Issue
Block a user