]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - include/common.h
netloop: speed up NetLoop
[people/ms/u-boot.git] / include / common.h
index a6c966cde3ef7b065ca71c7aa414750e6927302b..b75ea60b88e4a46f3861331bc8621a642088377a 100644 (file)
@@ -119,11 +119,13 @@ typedef volatile unsigned char    vu_char;
 #define debugX(level,fmt,args...)
 #endif /* DEBUG */
 
+#ifndef BUG
 #define BUG() do { \
        printf("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \
        panic("BUG!"); \
 } while (0)
 #define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)
+#endif /* BUG */
 
 typedef void (interrupt_handler_t)(void *);
 
@@ -175,6 +177,20 @@ typedef void (interrupt_handler_t)(void *);
        ({ typeof (X) __x = (X), __y = (Y);     \
                (__x > __y) ? __x : __y; })
 
+#define MIN(x, y)  min(x, y)
+#define MAX(x, y)  max(x, y)
+
+
+/**
+ * container_of - cast a member of a structure out to the containing structure
+ * @ptr:       the pointer to the member.
+ * @type:      the type of the container struct this is embedded in.
+ * @member:    the name of the member within the struct.
+ *
+ */
+#define container_of(ptr, type, member) ({                     \
+       const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
+       (type *)( (char *)__mptr - offsetof(type,member) );})
 
 /*
  * Function Prototypes
@@ -191,9 +207,9 @@ int serial_buffered_tstc (void);
 void   hang            (void) __attribute__ ((noreturn));
 
 /* */
-long int initdram (int);
+phys_size_t initdram (int);
 int    display_options (void);
-void   print_size (ulong, const char *);
+void   print_size (phys_size_t, const char *);
 int    print_buffer (ulong addr, void* data, uint width, uint count, uint linelen);
 
 /* common/main.c */
@@ -211,7 +227,6 @@ void        board_init_r  (gd_t *, ulong) __attribute__ ((noreturn));
 int    checkboard    (void);
 int    checkflash    (void);
 int    checkdram     (void);
-char * strmhz(char *buf, long hz);
 int    last_stage_init(void);
 extern ulong monitor_flash_len;
 int mac_read_from_eeprom(void);
@@ -224,18 +239,20 @@ int       autoscript (ulong addr, const char *fit_uname);
 
 extern ulong load_addr;                /* Default Load Address */
 
+/* common/cmd_doc.c */
+void   doc_probe(unsigned long physadr);
+
 /* common/cmd_nvedit.c */
 int    env_init     (void);
 void   env_relocate (void);
-uchar  env_get_char (int);
 int    envmatch     (uchar *, int);
 char   *getenv      (char *);
 int    getenv_r     (char *name, char *buf, unsigned len);
 int    saveenv      (void);
 #ifdef CONFIG_PPC              /* ARM version to be fixed! */
-void inline setenv   (char *, char *);
+int inline setenv   (char *, char *);
 #else
-void   setenv       (char *, char *);
+int    setenv       (char *, char *);
 #ifdef CONFIG_HAS_UID
 void   forceenv     (char *, char *);
 #endif
@@ -252,6 +269,7 @@ void        forceenv     (char *, char *);
 #ifdef CONFIG_AUTO_COMPLETE
 int env_complete(char *var, int maxv, char *cmdv[], int maxsz, char *buf);
 #endif
+int get_env_id (void);
 
 void   pci_init      (void);
 void   pci_init_board(void);
@@ -262,10 +280,10 @@ void      pciinfo       (int, int);
 #endif
 
 #if defined(CONFIG_PCI) && (defined(CONFIG_440) || defined(CONFIG_405EX))
-#   if defined(CFG_PCI_TARGET_INIT)
+#   if defined(CONFIG_SYS_PCI_TARGET_INIT)
        void    pci_target_init      (struct pci_controller *);
 #   endif
-#   if defined(CFG_PCI_MASTER_INIT)
+#   if defined(CONFIG_SYS_PCI_MASTER_INIT)
        void    pci_master_init      (struct pci_controller *);
 #   endif
     int            is_pci_host         (struct pci_controller *);
@@ -308,11 +326,11 @@ extern void  pic_write (uchar reg, uchar val);
  * Set this up regardless of board
  * type, to prevent errors.
  */
-#if defined(CONFIG_SPI) || !defined(CFG_I2C_EEPROM_ADDR)
-# define CFG_DEF_EEPROM_ADDR 0
+#if defined(CONFIG_SPI) || !defined(CONFIG_SYS_I2C_EEPROM_ADDR)
+# define CONFIG_SYS_DEF_EEPROM_ADDR 0
 #else
-# define CFG_DEF_EEPROM_ADDR CFG_I2C_EEPROM_ADDR
-#endif /* CONFIG_SPI || !defined(CFG_I2C_EEPROM_ADDR) */
+# define CONFIG_SYS_DEF_EEPROM_ADDR CONFIG_SYS_I2C_EEPROM_ADDR
+#endif /* CONFIG_SPI || !defined(CONFIG_SYS_I2C_EEPROM_ADDR) */
 
 #if defined(CONFIG_SPI)
 extern void spi_init_f (void);
@@ -362,9 +380,9 @@ int board_postclk_init (void); /* after clocks/timebase, before env/serial */
 int board_early_init_r (void);
 void board_poweroff (void);
 
-#if defined(CFG_DRAM_TEST)
+#if defined(CONFIG_SYS_DRAM_TEST)
 int testdram(void);
-#endif /* CFG_DRAM_TEST */
+#endif /* CONFIG_SYS_DRAM_TEST */
 
 /* $(CPU)/start.S */
 #if defined(CONFIG_5xx) || \
@@ -479,7 +497,8 @@ int prt_mpc8220_clks (void);
 ulong  get_OPB_freq (void);
 ulong  get_PCI_freq (void);
 #endif
-#if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410) || defined(CONFIG_LH7A40X)
+#if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410) || \
+       defined(CONFIG_LH7A40X) || defined(CONFIG_S3C6400)
 void   s3c2410_irq(void);
 #define ARM920_IRQ_CALLBACK s3c2410_irq
 ulong  get_FCLK (void);
@@ -579,6 +598,8 @@ ulong       video_setmem (ulong);
 
 /* lib_$(ARCH)/cache.c */
 void   flush_cache   (unsigned long, unsigned long);
+void   flush_dcache_range(unsigned long start, unsigned long stop);
+void   invalidate_dcache_range(unsigned long start, unsigned long stop);
 
 
 /* lib_$(ARCH)/ticks.S */
@@ -593,14 +614,19 @@ int       init_timebase (void);
 
 /* lib_generic/vsprintf.c */
 ulong  simple_strtoul(const char *cp,char **endp,unsigned int base);
-#ifdef CFG_64BIT_VSPRINTF
+#ifdef CONFIG_SYS_64BIT_VSPRINTF
 unsigned long long     simple_strtoull(const char *cp,char **endp,unsigned int base);
 #endif
 long   simple_strtol(const char *cp,char **endp,unsigned int base);
-void   panic(const char *fmt, ...);
-int    sprintf(char * buf, const char *fmt, ...);
+void   panic(const char *fmt, ...)
+               __attribute__ ((format (__printf__, 1, 2)));
+int    sprintf(char * buf, const char *fmt, ...)
+               __attribute__ ((format (__printf__, 2, 3)));
 int    vsprintf(char *buf, const char *fmt, va_list args);
 
+/* lib_generic/strmhz.c */
+char * strmhz(char *buf, long hz);
+
 /* lib_generic/crc32.c */
 uint32_t crc32 (uint32_t, const unsigned char *, uint);
 uint32_t crc32_wd (uint32_t, const unsigned char *, uint, uint);
@@ -620,7 +646,8 @@ int disable_ctrlc (int);    /* 1 to disable, 0 to enable Control-C detect */
  */
 
 /* serial stuff */
-void   serial_printf (const char *fmt, ...);
+void   serial_printf (const char *fmt, ...)
+               __attribute__ ((format (__printf__, 1, 2)));
 
 /* stdin */
 int    getc(void);
@@ -629,7 +656,8 @@ int tstc(void);
 /* stdout */
 void   putc(const char c);
 void   puts(const char *s);
-void   printf(const char *fmt, ...);
+void   printf(const char *fmt, ...)
+               __attribute__ ((format (__printf__, 1, 2)));
 void   vprintf(const char *fmt, va_list args);
 
 /* stderr */
@@ -646,12 +674,20 @@ void      vprintf(const char *fmt, va_list args);
 #define stderr         2
 #define MAX_FILES      3
 
-void   fprintf(int file, const char *fmt, ...);
+void   fprintf(int file, const char *fmt, ...)
+               __attribute__ ((format (__printf__, 2, 3)));
 void   fputs(int file, const char *s);
 void   fputc(int file, const char c);
 int    ftstc(int file);
 int    fgetc(int file);
 
+/*
+ * CONSOLE multiplexing.
+ */
+#ifdef CONFIG_CONSOLE_MUX
+#include <iomux.h>
+#endif
+
 int    pcmcia_init (void);
 
 #ifdef CONFIG_STATUS_LED
@@ -669,8 +705,12 @@ void __attribute__((weak)) show_boot_progress (int val);
 
 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
 
-#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
-#define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y))
+#define DIV_ROUND(n,d)         (((n) + ((d)/2)) / (d))
+#define DIV_ROUND_UP(n,d)      (((n) + (d) - 1) / (d))
+#define roundup(x, y)          ((((x) + ((y) - 1)) / (y)) * (y))
+
+#define ALIGN(x,a)             __ALIGN_MASK((x),(typeof(x))(a)-1)
+#define __ALIGN_MASK(x,mask)   (((x)+(mask))&~(mask))
 
 /* Multicore arch functions */
 #ifdef CONFIG_MP