1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * You need to use #ifdef around functions that may not exist 3*4882a593Smuzhiyun * in the final configuration (such as i2c). 4*4882a593Smuzhiyun * use a dummyfunction as first parameter to EXPORT_FUNC. 5*4882a593Smuzhiyun * As an example see the CONFIG_CMD_I2C section below 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun #ifndef EXPORT_FUNC 8*4882a593Smuzhiyun #define EXPORT_FUNC(a, b, c, ...) 9*4882a593Smuzhiyun #endif 10*4882a593Smuzhiyun EXPORT_FUNC(get_version, unsigned long, get_version, void) 11*4882a593Smuzhiyun EXPORT_FUNC(getc, int, getc, void) 12*4882a593Smuzhiyun EXPORT_FUNC(tstc, int, tstc, void) 13*4882a593Smuzhiyun EXPORT_FUNC(putc, void, putc, const char) 14*4882a593Smuzhiyun EXPORT_FUNC(puts, void, puts, const char *) 15*4882a593Smuzhiyun EXPORT_FUNC(printf, int, printf, const char*, ...) 16*4882a593Smuzhiyun #if (defined(CONFIG_X86) && !defined(CONFIG_X86_64)) || defined(CONFIG_PPC) 17*4882a593Smuzhiyun EXPORT_FUNC(irq_install_handler, void, install_hdlr, 18*4882a593Smuzhiyun int, interrupt_handler_t, void*) 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun EXPORT_FUNC(irq_free_handler, void, free_hdlr, int) 21*4882a593Smuzhiyun #else 22*4882a593Smuzhiyun EXPORT_FUNC(dummy, void, install_hdlr, void) 23*4882a593Smuzhiyun EXPORT_FUNC(dummy, void, free_hdlr, void) 24*4882a593Smuzhiyun #endif 25*4882a593Smuzhiyun EXPORT_FUNC(malloc, void *, malloc, size_t) 26*4882a593Smuzhiyun #if !CONFIG_IS_ENABLED(SYS_MALLOC_SIMPLE) 27*4882a593Smuzhiyun EXPORT_FUNC(free, void, free, void *) 28*4882a593Smuzhiyun #endif 29*4882a593Smuzhiyun EXPORT_FUNC(udelay, void, udelay, unsigned long) 30*4882a593Smuzhiyun EXPORT_FUNC(get_timer, unsigned long, get_timer, unsigned long) 31*4882a593Smuzhiyun EXPORT_FUNC(vprintf, int, vprintf, const char *, va_list) 32*4882a593Smuzhiyun EXPORT_FUNC(do_reset, int, do_reset, cmd_tbl_t *, 33*4882a593Smuzhiyun int , int , char * const []) 34*4882a593Smuzhiyun EXPORT_FUNC(env_get, char *, env_get, const char*) 35*4882a593Smuzhiyun EXPORT_FUNC(env_set, int, env_set, const char *, const char *) 36*4882a593Smuzhiyun EXPORT_FUNC(simple_strtoul, unsigned long, simple_strtoul, 37*4882a593Smuzhiyun const char *, char **, unsigned int) 38*4882a593Smuzhiyun EXPORT_FUNC(strict_strtoul, int, strict_strtoul, 39*4882a593Smuzhiyun const char *, unsigned int , unsigned long *) 40*4882a593Smuzhiyun EXPORT_FUNC(simple_strtol, long, simple_strtol, 41*4882a593Smuzhiyun const char *, char **, unsigned int) 42*4882a593Smuzhiyun EXPORT_FUNC(strcmp, int, strcmp, const char *cs, const char *ct) 43*4882a593Smuzhiyun #if defined(CONFIG_CMD_I2C) && \ 44*4882a593Smuzhiyun (!defined(CONFIG_DM_I2C) || defined(CONFIG_DM_I2C_COMPAT)) 45*4882a593Smuzhiyun EXPORT_FUNC(i2c_write, int, i2c_write, uchar, uint, int , uchar * , int) 46*4882a593Smuzhiyun EXPORT_FUNC(i2c_read, int, i2c_read, uchar, uint, int , uchar * , int) 47*4882a593Smuzhiyun #else 48*4882a593Smuzhiyun EXPORT_FUNC(dummy, void, i2c_write, void) 49*4882a593Smuzhiyun EXPORT_FUNC(dummy, void, i2c_read, void) 50*4882a593Smuzhiyun #endif 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun #if !defined(CONFIG_CMD_SPI) || defined(CONFIG_DM_SPI) 53*4882a593Smuzhiyun EXPORT_FUNC(dummy, void, spi_init, void) 54*4882a593Smuzhiyun EXPORT_FUNC(dummy, void, spi_setup_slave, void) 55*4882a593Smuzhiyun EXPORT_FUNC(dummy, void, spi_free_slave, void) 56*4882a593Smuzhiyun #else 57*4882a593Smuzhiyun EXPORT_FUNC(spi_init, void, spi_init, void) 58*4882a593Smuzhiyun EXPORT_FUNC(spi_setup_slave, struct spi_slave *, spi_setup_slave, 59*4882a593Smuzhiyun unsigned int, unsigned int, unsigned int, unsigned int) 60*4882a593Smuzhiyun EXPORT_FUNC(spi_free_slave, void, spi_free_slave, struct spi_slave *) 61*4882a593Smuzhiyun #endif 62*4882a593Smuzhiyun #ifndef CONFIG_CMD_SPI 63*4882a593Smuzhiyun EXPORT_FUNC(dummy, void, spi_claim_bus, void) 64*4882a593Smuzhiyun EXPORT_FUNC(dummy, void, spi_release_bus, void) 65*4882a593Smuzhiyun EXPORT_FUNC(dummy, void, spi_xfer, void) 66*4882a593Smuzhiyun #else 67*4882a593Smuzhiyun EXPORT_FUNC(spi_claim_bus, int, spi_claim_bus, struct spi_slave *) 68*4882a593Smuzhiyun EXPORT_FUNC(spi_release_bus, void, spi_release_bus, struct spi_slave *) 69*4882a593Smuzhiyun EXPORT_FUNC(spi_xfer, int, spi_xfer, struct spi_slave *, 70*4882a593Smuzhiyun unsigned int, const void *, void *, unsigned long) 71*4882a593Smuzhiyun #endif 72*4882a593Smuzhiyun EXPORT_FUNC(ustrtoul, unsigned long, ustrtoul, 73*4882a593Smuzhiyun const char *, char **, unsigned int) 74*4882a593Smuzhiyun EXPORT_FUNC(ustrtoull, unsigned long long, ustrtoull, 75*4882a593Smuzhiyun const char *, char **, unsigned int) 76*4882a593Smuzhiyun EXPORT_FUNC(strcpy, char *, strcpy, char *dest, const char *src) 77*4882a593Smuzhiyun EXPORT_FUNC(mdelay, void, mdelay, unsigned long msec) 78*4882a593Smuzhiyun EXPORT_FUNC(memset, void *, memset, void *, int, size_t) 79*4882a593Smuzhiyun #ifdef CONFIG_PHY_AQUANTIA 80*4882a593Smuzhiyun EXPORT_FUNC(mdio_get_current_dev, struct mii_dev *, 81*4882a593Smuzhiyun mdio_get_current_dev, void) 82*4882a593Smuzhiyun EXPORT_FUNC(phy_find_by_mask, struct phy_device *, phy_find_by_mask, 83*4882a593Smuzhiyun struct mii_dev *bus, unsigned phy_mask, 84*4882a593Smuzhiyun phy_interface_t interface) 85*4882a593Smuzhiyun EXPORT_FUNC(mdio_phydev_for_ethname, struct phy_device *, 86*4882a593Smuzhiyun mdio_phydev_for_ethname, const char *ethname) 87*4882a593Smuzhiyun EXPORT_FUNC(miiphy_set_current_dev, int, miiphy_set_current_dev, 88*4882a593Smuzhiyun const char *devname) 89*4882a593Smuzhiyun #endif 90