mirror of
https://xff.cz/git/u-boot/
synced 2025-08-31 16:22:36 +02:00
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
@@ -125,13 +125,13 @@ static int console_setfile(int file, struct stdio_dev * dev)
|
||||
*/
|
||||
switch (file) {
|
||||
case stdin:
|
||||
gd->jt[XF_getc] = getc;
|
||||
gd->jt[XF_tstc] = tstc;
|
||||
gd->jt->getc = getc;
|
||||
gd->jt->tstc = tstc;
|
||||
break;
|
||||
case stdout:
|
||||
gd->jt[XF_putc] = putc;
|
||||
gd->jt[XF_puts] = puts;
|
||||
gd->jt[XF_printf] = printf;
|
||||
gd->jt->putc = putc;
|
||||
gd->jt->puts = puts;
|
||||
gd->jt->printf = printf;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -758,11 +758,11 @@ int console_init_r(void)
|
||||
#endif
|
||||
|
||||
/* set default handlers at first */
|
||||
gd->jt[XF_getc] = serial_getc;
|
||||
gd->jt[XF_tstc] = serial_tstc;
|
||||
gd->jt[XF_putc] = serial_putc;
|
||||
gd->jt[XF_puts] = serial_puts;
|
||||
gd->jt[XF_printf] = serial_printf;
|
||||
gd->jt->getc = serial_getc;
|
||||
gd->jt->tstc = serial_tstc;
|
||||
gd->jt->putc = serial_putc;
|
||||
gd->jt->puts = serial_puts;
|
||||
gd->jt->printf = serial_printf;
|
||||
|
||||
/* stdin stdout and stderr are in environment */
|
||||
/* scan for it */
|
||||
|
Reference in New Issue
Block a user