mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 13:41:51 +00:00
xtensa: add asm-prototypes.h
Move assembly source prototypes from xtensa_ksyms.c to asm/asm-prototypes.h, move corresponding EXPORT_SYMBOLs to the assembly sources and enable HAVE_ASM_MODVERSIONS for xtensa. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This commit is contained in:
parent
74e25376b0
commit
338d915090
@ -35,6 +35,7 @@ config XTENSA
|
||||
select HAVE_ARCH_KCSAN
|
||||
select HAVE_ARCH_SECCOMP_FILTER
|
||||
select HAVE_ARCH_TRACEHOOK
|
||||
select HAVE_ASM_MODVERSIONS
|
||||
select HAVE_CONTEXT_TRACKING_USER
|
||||
select HAVE_DEBUG_KMEMLEAK
|
||||
select HAVE_DMA_CONTIGUOUS
|
||||
|
29
arch/xtensa/include/asm/asm-prototypes.h
Normal file
29
arch/xtensa/include/asm/asm-prototypes.h
Normal file
@ -0,0 +1,29 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef __ASM_PROTOTYPES_H
|
||||
#define __ASM_PROTOTYPES_H
|
||||
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/checksum.h>
|
||||
#include <asm/ftrace.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/string.h>
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
#include <asm-generic/asm-prototypes.h>
|
||||
|
||||
/*
|
||||
* gcc internal math functions
|
||||
*/
|
||||
long long __ashrdi3(long long, int);
|
||||
long long __ashldi3(long long, int);
|
||||
long long __bswapdi2(long long);
|
||||
int __bswapsi2(int);
|
||||
long long __lshrdi3(long long, int);
|
||||
int __divsi3(int, int);
|
||||
int __modsi3(int, int);
|
||||
int __mulsi3(int, int);
|
||||
unsigned int __udivsi3(unsigned int, unsigned int);
|
||||
unsigned int __umodsi3(unsigned int, unsigned int);
|
||||
unsigned long long __umulsidi3(unsigned int, unsigned int);
|
||||
|
||||
#endif /* __ASM_PROTOTYPES_H */
|
@ -11,6 +11,7 @@
|
||||
#ifndef _XTENSA_ASMMACRO_H
|
||||
#define _XTENSA_ASMMACRO_H
|
||||
|
||||
#include <asm-generic/export.h>
|
||||
#include <asm/core.h>
|
||||
|
||||
/*
|
||||
|
@ -78,6 +78,7 @@ ENTRY(_mcount)
|
||||
#error Unsupported Xtensa ABI
|
||||
#endif
|
||||
ENDPROC(_mcount)
|
||||
EXPORT_SYMBOL(_mcount)
|
||||
|
||||
ENTRY(ftrace_stub)
|
||||
abi_entry_default
|
||||
|
@ -13,71 +13,10 @@
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <asm/irq.h>
|
||||
#include <linux/in6.h>
|
||||
|
||||
#include <linux/uaccess.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/checksum.h>
|
||||
#include <asm/dma.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/ftrace.h>
|
||||
#ifdef CONFIG_BLK_DEV_FD
|
||||
#include <asm/floppy.h>
|
||||
#endif
|
||||
#ifdef CONFIG_NET
|
||||
#include <net/checksum.h>
|
||||
#endif /* CONFIG_NET */
|
||||
|
||||
|
||||
/*
|
||||
* String functions
|
||||
*/
|
||||
EXPORT_SYMBOL(memset);
|
||||
EXPORT_SYMBOL(memcpy);
|
||||
EXPORT_SYMBOL(memmove);
|
||||
EXPORT_SYMBOL(__memset);
|
||||
EXPORT_SYMBOL(__memcpy);
|
||||
EXPORT_SYMBOL(__memmove);
|
||||
#ifdef CONFIG_ARCH_HAS_STRNCPY_FROM_USER
|
||||
EXPORT_SYMBOL(__strncpy_user);
|
||||
#endif
|
||||
EXPORT_SYMBOL(clear_page);
|
||||
EXPORT_SYMBOL(copy_page);
|
||||
#include <asm/pgtable.h>
|
||||
|
||||
EXPORT_SYMBOL(empty_zero_page);
|
||||
|
||||
/*
|
||||
* gcc internal math functions
|
||||
*/
|
||||
extern long long __ashrdi3(long long, int);
|
||||
extern long long __ashldi3(long long, int);
|
||||
extern long long __bswapdi2(long long);
|
||||
extern int __bswapsi2(int);
|
||||
extern long long __lshrdi3(long long, int);
|
||||
extern int __divsi3(int, int);
|
||||
extern int __modsi3(int, int);
|
||||
extern int __mulsi3(int, int);
|
||||
extern unsigned int __udivsi3(unsigned int, unsigned int);
|
||||
extern unsigned int __umodsi3(unsigned int, unsigned int);
|
||||
extern unsigned long long __umulsidi3(unsigned int, unsigned int);
|
||||
|
||||
EXPORT_SYMBOL(__ashldi3);
|
||||
EXPORT_SYMBOL(__ashrdi3);
|
||||
EXPORT_SYMBOL(__bswapdi2);
|
||||
EXPORT_SYMBOL(__bswapsi2);
|
||||
EXPORT_SYMBOL(__lshrdi3);
|
||||
EXPORT_SYMBOL(__divsi3);
|
||||
EXPORT_SYMBOL(__modsi3);
|
||||
EXPORT_SYMBOL(__mulsi3);
|
||||
EXPORT_SYMBOL(__udivsi3);
|
||||
EXPORT_SYMBOL(__umodsi3);
|
||||
EXPORT_SYMBOL(__umulsidi3);
|
||||
|
||||
unsigned int __sync_fetch_and_and_4(volatile void *p, unsigned int v)
|
||||
{
|
||||
BUG();
|
||||
@ -89,32 +28,3 @@ unsigned int __sync_fetch_and_or_4(volatile void *p, unsigned int v)
|
||||
BUG();
|
||||
}
|
||||
EXPORT_SYMBOL(__sync_fetch_and_or_4);
|
||||
|
||||
/*
|
||||
* Networking support
|
||||
*/
|
||||
EXPORT_SYMBOL(csum_partial);
|
||||
EXPORT_SYMBOL(csum_partial_copy_generic);
|
||||
|
||||
/*
|
||||
* Architecture-specific symbols
|
||||
*/
|
||||
EXPORT_SYMBOL(__xtensa_copy_user);
|
||||
EXPORT_SYMBOL(__invalidate_icache_range);
|
||||
|
||||
/*
|
||||
* Kernel hacking ...
|
||||
*/
|
||||
|
||||
#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE)
|
||||
// FIXME EXPORT_SYMBOL(screen_info);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FUNCTION_TRACER
|
||||
EXPORT_SYMBOL(_mcount);
|
||||
#endif
|
||||
|
||||
EXPORT_SYMBOL(__invalidate_dcache_range);
|
||||
#if XCHAL_DCACHE_IS_WRITEBACK
|
||||
EXPORT_SYMBOL(__flush_dcache_range);
|
||||
#endif
|
||||
|
@ -26,3 +26,4 @@ ENTRY(__ashldi3)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__ashldi3)
|
||||
EXPORT_SYMBOL(__ashldi3)
|
||||
|
@ -26,3 +26,4 @@ ENTRY(__ashrdi3)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__ashrdi3)
|
||||
EXPORT_SYMBOL(__ashrdi3)
|
||||
|
@ -19,3 +19,4 @@ ENTRY(__bswapdi2)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__bswapdi2)
|
||||
EXPORT_SYMBOL(__bswapdi2)
|
||||
|
@ -14,3 +14,4 @@ ENTRY(__bswapsi2)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__bswapsi2)
|
||||
EXPORT_SYMBOL(__bswapsi2)
|
||||
|
@ -169,6 +169,7 @@ ENTRY(csum_partial)
|
||||
j 5b /* branch to handle the remaining byte */
|
||||
|
||||
ENDPROC(csum_partial)
|
||||
EXPORT_SYMBOL(csum_partial)
|
||||
|
||||
/*
|
||||
* Copy from ds while checksumming, otherwise like csum_partial
|
||||
@ -346,6 +347,7 @@ EX(10f) s8i a8, a3, 1
|
||||
j 4b /* process the possible trailing odd byte */
|
||||
|
||||
ENDPROC(csum_partial_copy_generic)
|
||||
EXPORT_SYMBOL(csum_partial_copy_generic)
|
||||
|
||||
|
||||
# Exception handler:
|
||||
|
@ -72,3 +72,4 @@ ENTRY(__divsi3)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__divsi3)
|
||||
EXPORT_SYMBOL(__divsi3)
|
||||
|
@ -26,3 +26,4 @@ ENTRY(__lshrdi3)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__lshrdi3)
|
||||
EXPORT_SYMBOL(__lshrdi3)
|
||||
|
@ -273,6 +273,8 @@ WEAK(memcpy)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__memcpy)
|
||||
EXPORT_SYMBOL(__memcpy)
|
||||
EXPORT_SYMBOL(memcpy)
|
||||
|
||||
/*
|
||||
* void *memmove(void *dst, const void *src, size_t len);
|
||||
@ -536,3 +538,5 @@ WEAK(memmove)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__memmove)
|
||||
EXPORT_SYMBOL(__memmove)
|
||||
EXPORT_SYMBOL(memmove)
|
||||
|
@ -142,6 +142,8 @@ EX(10f) s8i a3, a5, 0
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__memset)
|
||||
EXPORT_SYMBOL(__memset)
|
||||
EXPORT_SYMBOL(memset)
|
||||
|
||||
.section .fixup, "ax"
|
||||
.align 4
|
||||
|
@ -60,6 +60,7 @@ ENTRY(__modsi3)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__modsi3)
|
||||
EXPORT_SYMBOL(__modsi3)
|
||||
|
||||
#if !XCHAL_HAVE_NSA
|
||||
.section .rodata
|
||||
|
@ -131,3 +131,4 @@ ENTRY(__mulsi3)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__mulsi3)
|
||||
EXPORT_SYMBOL(__mulsi3)
|
||||
|
@ -201,6 +201,7 @@ EX(10f) s8i a9, a11, 0
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__strncpy_user)
|
||||
EXPORT_SYMBOL(__strncpy_user)
|
||||
|
||||
.section .fixup, "ax"
|
||||
.align 4
|
||||
|
@ -133,6 +133,7 @@ EX(10f) l32i a9, a4, 0 # get word with first two bytes of string
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__strnlen_user)
|
||||
EXPORT_SYMBOL(__strnlen_user)
|
||||
|
||||
.section .fixup, "ax"
|
||||
.align 4
|
||||
|
@ -66,3 +66,4 @@ ENTRY(__udivsi3)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__udivsi3)
|
||||
EXPORT_SYMBOL(__udivsi3)
|
||||
|
@ -55,3 +55,4 @@ ENTRY(__umodsi3)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__umodsi3)
|
||||
EXPORT_SYMBOL(__umodsi3)
|
||||
|
@ -228,3 +228,4 @@ ENTRY(__umulsidi3)
|
||||
#endif /* XCHAL_NO_MUL */
|
||||
|
||||
ENDPROC(__umulsidi3)
|
||||
EXPORT_SYMBOL(__umulsidi3)
|
||||
|
@ -283,6 +283,7 @@ EX(10f) s8i a6, a5, 0
|
||||
abi_ret(STACK_SIZE)
|
||||
|
||||
ENDPROC(__xtensa_copy_user)
|
||||
EXPORT_SYMBOL(__xtensa_copy_user)
|
||||
|
||||
.section .fixup, "ax"
|
||||
.align 4
|
||||
|
@ -47,6 +47,7 @@ ENTRY(clear_page)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(clear_page)
|
||||
EXPORT_SYMBOL(clear_page)
|
||||
|
||||
/*
|
||||
* copy_page and copy_user_page are the same for non-cache-aliased configs.
|
||||
@ -89,6 +90,7 @@ ENTRY(copy_page)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(copy_page)
|
||||
EXPORT_SYMBOL(copy_page)
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
/*
|
||||
@ -367,6 +369,7 @@ ENTRY(__invalidate_icache_range)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__invalidate_icache_range)
|
||||
EXPORT_SYMBOL(__invalidate_icache_range)
|
||||
|
||||
/*
|
||||
* void __flush_invalidate_dcache_range(ulong start, ulong size)
|
||||
@ -397,6 +400,7 @@ ENTRY(__flush_dcache_range)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__flush_dcache_range)
|
||||
EXPORT_SYMBOL(__flush_dcache_range)
|
||||
|
||||
/*
|
||||
* void _invalidate_dcache_range(ulong start, ulong size)
|
||||
@ -411,6 +415,7 @@ ENTRY(__invalidate_dcache_range)
|
||||
abi_ret_default
|
||||
|
||||
ENDPROC(__invalidate_dcache_range)
|
||||
EXPORT_SYMBOL(__invalidate_dcache_range)
|
||||
|
||||
/*
|
||||
* void _invalidate_icache_all(void)
|
||||
|
Loading…
Reference in New Issue
Block a user