2011-12-15 Konrad Eisele <konrad@gaisler.com>
* configure.in: Add SPARC LEON support.
        * configure: Regenerated.
        * sparc_leon/asm-leon/amba.h, sparc_leon/asm-leon/asmmacro.h,
        sparc_leon/asm-leon/clock.h, sparc_leon/asm-leon/contextswitch.h,
        sparc_leon/asm-leon/elfmacro.h, sparc_leon/asm-leon/head.h,
        sparc_leon/asm-leon/irq.h, sparc_leon/asm-leon/jiffies.h,
        sparc_leon/asm-leon/lambapp.h, sparc_leon/asm-leon/lambapp_devs.h,
        sparc_leon/asm-leon/leon.h, sparc_leon/asm-leon/leon3.h,
        sparc_leon/asm-leon/leonbare_debug.h, sparc_leon/asm-leon/leonbare_kernel.h,
        sparc_leon/asm-leon/leonbare_kernel_queue.h, sparc_leon/asm-leon/leoncompat.h,
        sparc_leon/asm-leon/leondbg.h, sparc_leon/asm-leon/leonstack.h,
        sparc_leon/asm-leon/liblocks.h, sparc_leon/asm-leon/linkage.h,
        sparc_leon/asm-leon/param.h, sparc_leon/asm-leon/queue.h,
        sparc_leon/asm-leon/spinlock.h, sparc_leon/asm-leon/stack.h,
        sparc_leon/asm-leon/time.h, sparc_leon/asm-leon/timer.h,
        sparc_leon/asm-leon/types.h, sparc_leon/asm-leon/winmacros.h:
        New file.
        * sparc_leon/Makefile.in, sparc_leon/_exit.c,
        sparc_leon/amba.c, sparc_leon/amba_dbg.c,
        sparc_leon/amba_driver.c, sparc_leon/amba_scan.c,
        sparc_leon/asm-leon, sparc_leon/bdinit.S,
        sparc_leon/busscan.S, sparc_leon/cacheA.S,
        sparc_leon/catch_interrupt.c, sparc_leon/catch_interrupt_mvt.c,
        sparc_leon/catch_interrupt_pending.c, sparc_leon/catch_interrupt_svt.c,
        sparc_leon/configure.in,
        sparc_leon/console.c, sparc_leon/console_dbg.c,
        sparc_leon/console_init.c, sparc_leon/contextswitch.c,
        sparc_leon/contextswitch_asm.S, sparc_leon/crt0.S,
        sparc_leon/crti.S, sparc_leon/crtn.S,
        sparc_leon/etrap.S, sparc_leon/etrap_fast.S,
        sparc_leon/fpu.S, sparc_leon/gettimeofday.c,
        sparc_leon/initcalls.c, sparc_leon/io.c,
        sparc_leon/irqinstall.S, sparc_leon/irqtrap.S,
        sparc_leon/irqtrap_fast.S, sparc_leon/jiffies.c,
        sparc_leon/kernel.c, sparc_leon/kernel_context.S,
        sparc_leon/kernel_debug.c, sparc_leon/kernel_debug_var.c,
        sparc_leon/kernel_mm.c, sparc_leon/kernel_mutex.c,
        sparc_leon/kernel_queue.c, sparc_leon/kernel_sched.c,
        sparc_leon/kernel_thread.c, sparc_leon/lcpuinit.S,
        sparc_leon/locore.S, sparc_leon/locore_atexit.c,
        sparc_leon/locore_clean.S, sparc_leon/locore_mvt.S,
        sparc_leon/locore_mvt_reset.S, sparc_leon/locore_svt.S,
        sparc_leon/locore_svt_reset.S, sparc_leon/locore_svtdisp.S,
        sparc_leon/locore_var.S, sparc_leon/locore_var_svt.S,
        sparc_leon/mmu_asm.S, sparc_leon/mutex.c,
        sparc_leon/nocache.S, sparc_leon/pnpinit.c,
        sparc_leon/pnpinit_malloc.c, sparc_leon/pnpinit_simple.c,
        sparc_leon/regwin.S, sparc_leon/regwin_patch.c,
        sparc_leon/regwin_slow.S, sparc_leon/regwinflush.S,
        sparc_leon/rtc.c, sparc_leon/rtrap.S,
        sparc_leon/rtrap_fast.S, sparc_leon/stop.S,
        sparc_leon/timer.c, sparc_leon/times.c:
        New file
        * sparc_leon/configure: Regenerate
			
			
This commit is contained in:
		
							
								
								
									
										79
									
								
								libgloss/sparc_leon/asm-leon/elfmacro.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								libgloss/sparc_leon/asm-leon/elfmacro.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,79 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2011 Aeroflex Gaisler
 | 
			
		||||
 *
 | 
			
		||||
 * BSD license:
 | 
			
		||||
 *
 | 
			
		||||
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
 * of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
 * in the Software without restriction, including without limitation the rights
 | 
			
		||||
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
			
		||||
 * copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
 * furnished to do so, subject to the following conditions:
 | 
			
		||||
 *
 | 
			
		||||
 * The above copyright notice and this permission notice shall be included in
 | 
			
		||||
 * all copies or substantial portions of the Software.
 | 
			
		||||
 *
 | 
			
		||||
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 | 
			
		||||
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
			
		||||
 * THE SOFTWARE.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef _INCLUDE_LEON_ELFMACRO_h
 | 
			
		||||
#define _INCLUDE_LEON_ELFMACRO_h
 | 
			
		||||
 | 
			
		||||
#ifdef __ASSEMBLER__
 | 
			
		||||
#define _TEXT_SEG_ALIGN 4
 | 
			
		||||
#define _LIBLEONBARE_TEXT_SEG_START \
 | 
			
		||||
        .text ; .balign _TEXT_SEG_ALIGN
 | 
			
		||||
#define	FUNC_BEGIN(func)	func:
 | 
			
		||||
#define	FUNC_END(func)		.size	func, . - func
 | 
			
		||||
 | 
			
		||||
#define GTEXT(sym) sym  ;  .type   sym,@function
 | 
			
		||||
#define GDATA(sym) sym  ;  .type   sym,@object
 | 
			
		||||
 | 
			
		||||
#define	FUNC_EXPORT(func)	.globl	GTEXT(func)
 | 
			
		||||
#define	DATA_EXPORT(var)	.globl	GDATA(var)
 | 
			
		||||
 | 
			
		||||
#define	FUNC_IMPORT(func)	.extern	FUNC(func)
 | 
			
		||||
#define	DATA_IMPORT(var)	.extern	var
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef weak_alias
 | 
			
		||||
/* Define ALIASNAME as a weak alias for NAME. */
 | 
			
		||||
#  define weak_alias(name, aliasname) _weak_alias (name, aliasname)
 | 
			
		||||
#  define _weak_alias(name, aliasname) \
 | 
			
		||||
      extern __typeof (name) aliasname __attribute__ ((weak, alias (#name)));
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef strong_alias
 | 
			
		||||
/* Define ALIASNAME as a strong alias for NAME.  */
 | 
			
		||||
# define strong_alias(name, aliasname) _strong_alias(name, aliasname)
 | 
			
		||||
# define _strong_alias(name, aliasname) \
 | 
			
		||||
  extern __typeof (name) aliasname __attribute__ ((alias (#name)));
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __ASSEMBLER__
 | 
			
		||||
typedef int (*initcall_t) (void);
 | 
			
		||||
extern initcall_t __leonbare_initcall_start;
 | 
			
		||||
extern initcall_t __leonbare_initcall_end;
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if __GNUC_MINOR__ >= 3
 | 
			
		||||
# define __attribute_used__	__attribute__((__used__))
 | 
			
		||||
#else
 | 
			
		||||
# define __attribute_used__	__attribute__((__unused__))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define __define_initcall(level,fn) \
 | 
			
		||||
	static initcall_t __initcall_##fn __attribute_used__ \
 | 
			
		||||
	__attribute__((__section__(".initcall" level ".init"))) = fn
 | 
			
		||||
 | 
			
		||||
#define libc_initcall(fn)		__define_initcall("1",fn)
 | 
			
		||||
 | 
			
		||||
#endif /* !_INCLUDE_LEON_STACK_h */
 | 
			
		||||
		Reference in New Issue
	
	Block a user