Make include/common.h usable by assembler code

Commit 70ebf316 factored out the ROUND() macro into include/common.h,
not realizing that the primary use of this macro on AT91 systems was
in start.S where common.h was not included, and could not be included
because it contains a lot of C code which the assembler doesn't
understand.

This patch wraps such code in common.h in a "#ifndef __ASSEMBLY__"
construct, and then adds an include to cpu/arm926ejs/start.S thus
solving the problem.

Signed-off-by: Wolfgang Denk <wd@denx.de>
This commit is contained in:
Wolfgang Denk 2009-07-24 00:17:48 +02:00
parent deec15b306
commit fcd3c87e49
2 changed files with 21 additions and 17 deletions

View File

@ -32,6 +32,7 @@
#include <config.h> #include <config.h>
#include <common.h>
#include <version.h> #include <version.h>
#if defined(CONFIG_OMAP1610) #if defined(CONFIG_OMAP1610)

View File

@ -27,6 +27,8 @@
#undef _LINUX_CONFIG_H #undef _LINUX_CONFIG_H
#define _LINUX_CONFIG_H 1 /* avoid reading Linux autoconf.h file */ #define _LINUX_CONFIG_H 1 /* avoid reading Linux autoconf.h file */
#ifndef __ASSEMBLY__ /* put C only stuff in this section */
typedef unsigned char uchar; typedef unsigned char uchar;
typedef volatile unsigned long vu_long; typedef volatile unsigned long vu_long;
typedef volatile unsigned short vu_short; typedef volatile unsigned short vu_short;
@ -105,6 +107,9 @@ typedef volatile unsigned char vu_char;
#ifdef CONFIG_BLACKFIN #ifdef CONFIG_BLACKFIN
#include <asm/blackfin.h> #include <asm/blackfin.h>
#endif #endif
#ifdef CONFIG_STATUS_LED
#include <status_led.h>
#endif
#include <part.h> #include <part.h>
#include <flash.h> #include <flash.h>
@ -636,11 +641,9 @@ int disable_ctrlc (int); /* 1 to disable, 0 to enable Control-C detect */
/* /*
* STDIO based functions (can always be used) * STDIO based functions (can always be used)
*/ */
/* serial stuff */ /* serial stuff */
void serial_printf (const char *fmt, ...) void serial_printf (const char *fmt, ...)
__attribute__ ((format (__printf__, 1, 2))); __attribute__ ((format (__printf__, 1, 2)));
/* stdin */ /* stdin */
int getc(void); int getc(void);
int tstc(void); int tstc(void);
@ -660,7 +663,6 @@ void vprintf(const char *fmt, va_list args);
/* /*
* FILE based functions (can only be used AFTER relocation!) * FILE based functions (can only be used AFTER relocation!)
*/ */
#define stdin 0 #define stdin 0
#define stdout 1 #define stdout 1
#define stderr 2 #define stderr 2
@ -682,14 +684,26 @@ int fgetc(int file);
int pcmcia_init (void); int pcmcia_init (void);
#ifdef CONFIG_STATUS_LED
# include <status_led.h>
#endif
/* /*
* Board-specific Platform code can reimplement show_boot_progress () if needed * Board-specific Platform code can reimplement show_boot_progress () if needed
*/ */
void show_boot_progress(int val); void show_boot_progress(int val);
/* Multicore arch functions */
#ifdef CONFIG_MP
int cpu_status(int nr);
int cpu_reset(int nr);
int cpu_release(int nr, int argc, char *argv[]);
#endif
#endif /* __ASSEMBLY__ */
/* Put only stuff here that the assembler can digest */
#ifdef CONFIG_POST
#define CONFIG_HAS_POST
#endif
#ifdef CONFIG_INIT_CRITICAL #ifdef CONFIG_INIT_CRITICAL
#error CONFIG_INIT_CRITICAL is deprecated! #error CONFIG_INIT_CRITICAL is deprecated!
#error Read section CONFIG_SKIP_LOWLEVEL_INIT in README. #error Read section CONFIG_SKIP_LOWLEVEL_INIT in README.
@ -705,15 +719,4 @@ void show_boot_progress(int val);
#define ALIGN(x,a) __ALIGN_MASK((x),(typeof(x))(a)-1) #define ALIGN(x,a) __ALIGN_MASK((x),(typeof(x))(a)-1)
#define __ALIGN_MASK(x,mask) (((x)+(mask))&~(mask)) #define __ALIGN_MASK(x,mask) (((x)+(mask))&~(mask))
/* Multicore arch functions */
#ifdef CONFIG_MP
int cpu_status(int nr);
int cpu_reset(int nr);
int cpu_release(int nr, int argc, char *argv[]);
#endif
#ifdef CONFIG_POST
#define CONFIG_HAS_POST
#endif
#endif /* __COMMON_H_ */ #endif /* __COMMON_H_ */