mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
Merge patch series "exports overhaul"
Rasmus Villemoes <ravi@prevas.dk> says: This all started from me wondering "why does this standalone app end up being so huge"? Oh, it essentially links in its own standard C library to get strlen() and snprintf(). Which then led to asking "why don't we export all those standard C functions when we have them anyway?". CI has chewed on these and seem happy - it was CI which told me about the necessity of [1/9]: https://github.com/u-boot/u-boot/pull/813 Link: https://lore.kernel.org/r/20250919101002.568488-1-ravi@prevas.dk
This commit is contained in:
@@ -7,10 +7,6 @@
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
__attribute__((unused)) static void dummy(void)
|
||||
{
|
||||
}
|
||||
|
||||
unsigned long get_version(void)
|
||||
{
|
||||
return XF_VERSION;
|
||||
@@ -18,13 +14,6 @@ unsigned long get_version(void)
|
||||
|
||||
#define EXPORT_FUNC(f, a, x, ...) gd->jt->x = f;
|
||||
|
||||
#ifndef CONFIG_PHY_AQUANTIA
|
||||
# define mdio_get_current_dev dummy
|
||||
# define phy_find_by_mask dummy
|
||||
# define mdio_phydev_for_ethname dummy
|
||||
# define miiphy_set_current_dev dummy
|
||||
#endif
|
||||
|
||||
int jumptable_init(void)
|
||||
{
|
||||
gd->jt = malloc(sizeof(struct jt_funcs));
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/*
|
||||
* You need to use #ifdef around functions that may not exist
|
||||
* in the final configuration (such as i2c).
|
||||
* use a dummyfunction as first parameter to EXPORT_FUNC.
|
||||
* As an example see the CONFIG_CMD_I2C section below
|
||||
*/
|
||||
#ifndef EXPORT_FUNC
|
||||
@@ -16,22 +15,22 @@
|
||||
EXPORT_FUNC(flush, void, flush, void)
|
||||
#endif
|
||||
EXPORT_FUNC(printf, int, printf, const char*, ...)
|
||||
EXPORT_FUNC(vprintf, int, vprintf, const char *, va_list)
|
||||
#if (defined(CONFIG_X86) && !defined(CONFIG_X86_64)) || defined(CONFIG_PPC)
|
||||
EXPORT_FUNC(irq_install_handler, void, install_hdlr,
|
||||
int, interrupt_handler_t, void*)
|
||||
|
||||
EXPORT_FUNC(irq_free_handler, void, free_hdlr, int)
|
||||
#else
|
||||
EXPORT_FUNC(dummy, void, install_hdlr, void)
|
||||
EXPORT_FUNC(dummy, void, free_hdlr, void)
|
||||
#endif
|
||||
EXPORT_FUNC(malloc, void *, malloc, size_t)
|
||||
EXPORT_FUNC(realloc, void *, realloc, void *, size_t)
|
||||
EXPORT_FUNC(calloc, void *, calloc, size_t, size_t)
|
||||
#if !CONFIG_IS_ENABLED(SYS_MALLOC_SIMPLE)
|
||||
EXPORT_FUNC(free, void, free, void *)
|
||||
#endif
|
||||
EXPORT_FUNC(mdelay, void, mdelay, unsigned long msec)
|
||||
EXPORT_FUNC(udelay, void, udelay, unsigned long)
|
||||
EXPORT_FUNC(get_timer, unsigned long, get_timer, unsigned long)
|
||||
EXPORT_FUNC(vprintf, int, vprintf, const char *, va_list)
|
||||
EXPORT_FUNC(do_reset, int, do_reset, struct cmd_tbl *,
|
||||
int , int , char * const [])
|
||||
EXPORT_FUNC(env_get, char *, env_get, const char*)
|
||||
@@ -42,40 +41,39 @@
|
||||
const char *, unsigned int , unsigned long *)
|
||||
EXPORT_FUNC(simple_strtol, long, simple_strtol,
|
||||
const char *, char **, unsigned int)
|
||||
EXPORT_FUNC(ustrtoul, unsigned long, ustrtoul,
|
||||
const char *, char **, unsigned int)
|
||||
EXPORT_FUNC(ustrtoull, unsigned long long, ustrtoull,
|
||||
const char *, char **, unsigned int)
|
||||
EXPORT_FUNC(memcmp, int, memcmp, const void *, const void *, size_t)
|
||||
EXPORT_FUNC(memcpy, void *, memcpy, void *, const void *, size_t)
|
||||
EXPORT_FUNC(memmove, void *, memmove, void *, const void *, size_t)
|
||||
EXPORT_FUNC(memset, void *, memset, void *, int, size_t)
|
||||
EXPORT_FUNC(strchr, char *, strchr, const char *cs, int c)
|
||||
EXPORT_FUNC(strlen, size_t, strlen, const char *s)
|
||||
EXPORT_FUNC(strncmp, int, strncmp, const char *cs, const char *ct, size_t n)
|
||||
EXPORT_FUNC(strncpy, char *, strncpy, char *dest, const char *src, size_t n)
|
||||
EXPORT_FUNC(strnlen, size_t, strnlen, const char *s, size_t n)
|
||||
EXPORT_FUNC(strcmp, int, strcmp, const char *cs, const char *ct)
|
||||
#if defined(CONFIG_CMD_I2C) && !CONFIG_IS_ENABLED(DM_I2C)
|
||||
EXPORT_FUNC(strcpy, char *, strcpy, char *dest, const char *src)
|
||||
EXPORT_FUNC(sprintf, int, sprintf, char *, const char *, ...)
|
||||
EXPORT_FUNC(snprintf, int, snprintf, char *, size_t, const char *, ...)
|
||||
EXPORT_FUNC(vsprintf, int, vsprintf, char *, const char *, va_list)
|
||||
EXPORT_FUNC(vsnprintf, int, vsnprintf, char *, size_t, const char *, va_list)
|
||||
#if defined(CONFIG_CMD_I2C) && CONFIG_IS_ENABLED(SYS_I2C_LEGACY)
|
||||
EXPORT_FUNC(i2c_write, int, i2c_write, uchar, uint, int , uchar * , int)
|
||||
EXPORT_FUNC(i2c_read, int, i2c_read, uchar, uint, int , uchar * , int)
|
||||
#else
|
||||
EXPORT_FUNC(dummy, void, i2c_write, void)
|
||||
EXPORT_FUNC(dummy, void, i2c_read, void)
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIG_CMD_SPI) || defined(CONFIG_DM_SPI)
|
||||
EXPORT_FUNC(dummy, void, spi_setup_slave, void)
|
||||
EXPORT_FUNC(dummy, void, spi_free_slave, void)
|
||||
#else
|
||||
#if defined(CONFIG_CMD_SPI)
|
||||
EXPORT_FUNC(spi_setup_slave, struct spi_slave *, spi_setup_slave,
|
||||
unsigned int, unsigned int, unsigned int, unsigned int)
|
||||
EXPORT_FUNC(spi_free_slave, void, spi_free_slave, struct spi_slave *)
|
||||
#endif
|
||||
#ifndef CONFIG_CMD_SPI
|
||||
EXPORT_FUNC(dummy, void, spi_claim_bus, void)
|
||||
EXPORT_FUNC(dummy, void, spi_release_bus, void)
|
||||
EXPORT_FUNC(dummy, void, spi_xfer, void)
|
||||
#else
|
||||
EXPORT_FUNC(spi_claim_bus, int, spi_claim_bus, struct spi_slave *)
|
||||
EXPORT_FUNC(spi_release_bus, void, spi_release_bus, struct spi_slave *)
|
||||
EXPORT_FUNC(spi_xfer, int, spi_xfer, struct spi_slave *,
|
||||
unsigned int, const void *, void *, unsigned long)
|
||||
#endif
|
||||
EXPORT_FUNC(ustrtoul, unsigned long, ustrtoul,
|
||||
const char *, char **, unsigned int)
|
||||
EXPORT_FUNC(ustrtoull, unsigned long long, ustrtoull,
|
||||
const char *, char **, unsigned int)
|
||||
EXPORT_FUNC(strcpy, char *, strcpy, char *dest, const char *src)
|
||||
EXPORT_FUNC(mdelay, void, mdelay, unsigned long msec)
|
||||
EXPORT_FUNC(memset, void *, memset, void *, int, size_t)
|
||||
#ifdef CONFIG_PHY_AQUANTIA
|
||||
EXPORT_FUNC(mdio_get_current_dev, struct mii_dev *,
|
||||
mdio_get_current_dev, void)
|
||||
|
||||
@@ -26,39 +26,9 @@ struct spi_slave;
|
||||
int jumptable_init(void);
|
||||
|
||||
/* These are declarations of exported functions available in C code */
|
||||
unsigned long get_version(void);
|
||||
int getc(void);
|
||||
int tstc(void);
|
||||
void putc(const char);
|
||||
void puts(const char*);
|
||||
int printf(const char* fmt, ...);
|
||||
void install_hdlr(int, interrupt_handler_t, void*);
|
||||
void free_hdlr(int);
|
||||
void *malloc(size_t);
|
||||
#if !CONFIG_IS_ENABLED(SYS_MALLOC_SIMPLE)
|
||||
void free(void*);
|
||||
#endif
|
||||
void __udelay(unsigned long);
|
||||
unsigned long get_timer(unsigned long);
|
||||
int vprintf(const char *, va_list);
|
||||
unsigned long simple_strtoul(const char *cp, char **endp, unsigned int base);
|
||||
int strict_strtoul(const char *cp, unsigned int base, unsigned long *res);
|
||||
char *env_get(const char *name);
|
||||
int env_set(const char *varname, const char *value);
|
||||
long simple_strtol(const char *cp, char **endp, unsigned int base);
|
||||
int strcmp(const char *cs, const char *ct);
|
||||
unsigned long ustrtoul(const char *cp, char **endp, unsigned int base);
|
||||
unsigned long long ustrtoull(const char *cp, char **endp, unsigned int base);
|
||||
#if defined(CONFIG_CMD_I2C) && !CONFIG_IS_ENABLED(DM_I2C)
|
||||
int i2c_write (uchar, uint, int , uchar* , int);
|
||||
int i2c_read (uchar, uint, int , uchar* , int);
|
||||
#endif
|
||||
#ifdef CONFIG_PHY_AQUANTIA
|
||||
struct mii_dev *mdio_get_current_dev(void);
|
||||
struct phy_device *phy_find_by_mask(struct mii_dev *bus, unsigned phy_mask);
|
||||
struct phy_device *mdio_phydev_for_ethname(const char *ethname);
|
||||
int miiphy_set_current_dev(const char *devname);
|
||||
#endif
|
||||
#define EXPORT_FUNC(impl, res, func, ...) res func(__VA_ARGS__);
|
||||
#include <_exports.h>
|
||||
#undef EXPORT_FUNC
|
||||
|
||||
void app_startup(char * const *);
|
||||
|
||||
@@ -70,7 +40,7 @@ struct jt_funcs {
|
||||
#undef EXPORT_FUNC
|
||||
};
|
||||
|
||||
#define XF_VERSION 9
|
||||
#define XF_VERSION 10
|
||||
|
||||
#if defined(CONFIG_X86)
|
||||
extern gd_t *global_data;
|
||||
|
||||
@@ -904,11 +904,11 @@ void *realloc_simple(void *ptr, size_t size);
|
||||
# define mALLOPt dlmallopt
|
||||
|
||||
/* Ensure that U-Boot actually uses these too */
|
||||
#define calloc dlcalloc
|
||||
#define calloc(x,y) dlcalloc(x,y)
|
||||
#define free(ptr) dlfree(ptr)
|
||||
#define malloc(x) dlmalloc(x)
|
||||
#define memalign dlmemalign
|
||||
#define realloc dlrealloc
|
||||
#define memalign(a,x) dlmemalign(a,x)
|
||||
#define realloc(p,x) dlrealloc(p,x)
|
||||
#define valloc dlvalloc
|
||||
#define pvalloc dlpvalloc
|
||||
#define mallinfo() dlmallinfo()
|
||||
|
||||
Reference in New Issue
Block a user