summaryrefslogtreecommitdiff
path: root/common/exports.c
diff options
context:
space:
mode:
authorMinkyu Kang <mk7.kang@samsung.com>2010-01-15 22:41:58 +0900
committerMinkyu Kang <mk7.kang@samsung.com>2010-01-15 22:41:58 +0900
commite598dfc22c8789991d165714bec53b2390fc999d (patch)
treecf3c704c4b00e06605bdfe23384b8af97022efa6 /common/exports.c
parente7ae13a57b4cbaa2cd3da8ffca614853d9d84230 (diff)
parent1c2a8e359ebbec0dbef62f5b54c72f9cd72ccd59 (diff)
downloadu-boot-imx-e598dfc22c8789991d165714bec53b2390fc999d.zip
u-boot-imx-e598dfc22c8789991d165714bec53b2390fc999d.tar.gz
u-boot-imx-e598dfc22c8789991d165714bec53b2390fc999d.tar.bz2
Merge branch 'master' of git://git.denx.de/u-boot-arm
Conflicts: cpu/arm_cortexa8/s5pc1xx/cache.c include/asm-arm/arch-s5pc1xx/sys_proto.h include/sja1000.h Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Diffstat (limited to 'common/exports.c')
-rw-r--r--common/exports.c58
1 files changed, 27 insertions, 31 deletions
diff --git a/common/exports.c b/common/exports.c
index b3b6e1f..60bba75 100644
--- a/common/exports.c
+++ b/common/exports.c
@@ -12,38 +12,34 @@ unsigned long get_version(void)
return XF_VERSION;
}
-void jumptable_init (void)
-{
- int i;
-
- gd->jt = (void **) malloc (XF_MAX * sizeof (void *));
- for (i = 0; i < XF_MAX; i++)
- gd->jt[i] = (void *) dummy;
+/* Reuse _exports.h with a little trickery to avoid bitrot */
+#define EXPORT_FUNC(sym) gd->jt[XF_##sym] = (void *)sym;
- gd->jt[XF_get_version] = (void *) get_version;
- gd->jt[XF_malloc] = (void *) malloc;
- gd->jt[XF_free] = (void *) free;
- gd->jt[XF_getenv] = (void *) getenv;
- gd->jt[XF_setenv] = (void *) setenv;
- gd->jt[XF_get_timer] = (void *) get_timer;
- gd->jt[XF_simple_strtoul] = (void *) simple_strtoul;
- gd->jt[XF_udelay] = (void *) udelay;
- gd->jt[XF_simple_strtol] = (void *) simple_strtol;
- gd->jt[XF_strcmp] = (void *) strcmp;
-#if defined(CONFIG_I386) || defined(CONFIG_PPC)
- gd->jt[XF_install_hdlr] = (void *) irq_install_handler;
- gd->jt[XF_free_hdlr] = (void *) irq_free_handler;
-#endif /* I386 || PPC */
-#if defined(CONFIG_CMD_I2C)
- gd->jt[XF_i2c_write] = (void *) i2c_write;
- gd->jt[XF_i2c_read] = (void *) i2c_read;
+#if !defined(CONFIG_I386) && !defined(CONFIG_PPC)
+# define install_hdlr dummy
+# define free_hdlr dummy
+#else /* kludge for non-standard function naming */
+# define install_hdlr irq_install_handler
+# define free_hdlr irq_free_handler
+#endif
+#ifndef CONFIG_CMD_I2C
+# define i2c_write dummy
+# define i2c_read dummy
#endif
-#ifdef CONFIG_CMD_SPI
- gd->jt[XF_spi_init] = (void *) spi_init;
- gd->jt[XF_spi_setup_slave] = (void *) spi_setup_slave;
- gd->jt[XF_spi_free_slave] = (void *) spi_free_slave;
- gd->jt[XF_spi_claim_bus] = (void *) spi_claim_bus;
- gd->jt[XF_spi_release_bus] = (void *) spi_release_bus;
- gd->jt[XF_spi_xfer] = (void *) spi_xfer;
+#ifndef CONFIG_CMD_SPI
+# define spi_init dummy
+# define spi_setup_slave dummy
+# define spi_free_slave dummy
+# define spi_claim_bus dummy
+# define spi_release_bus dummy
+# define spi_xfer dummy
#endif
+#ifndef CONFIG_HAS_UID
+# define forceenv dummy
+#endif
+
+void jumptable_init(void)
+{
+ gd->jt = malloc(XF_MAX * sizeof(void *));
+#include <_exports.h>
}