mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-18 15:09:53 +00:00
a7b1bbbc89
Patch from Ben Dooks The items in the export table do not need to be exported elsehwere, so quash the sparse warning by making the symbol for the table entry static. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
173 lines
4.3 KiB
C
173 lines
4.3 KiB
C
/*
|
|
* linux/arch/arm/kernel/armksyms.c
|
|
*
|
|
* Copyright (C) 2000 Russell King
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
#include <linux/module.h>
|
|
#include <linux/string.h>
|
|
#include <linux/delay.h>
|
|
#include <linux/in6.h>
|
|
#include <linux/syscalls.h>
|
|
|
|
#include <asm/checksum.h>
|
|
#include <asm/io.h>
|
|
#include <asm/system.h>
|
|
#include <asm/uaccess.h>
|
|
|
|
/*
|
|
* libgcc functions - functions that are used internally by the
|
|
* compiler... (prototypes are not correct though, but that
|
|
* doesn't really matter since they're not versioned).
|
|
*/
|
|
extern void __ashldi3(void);
|
|
extern void __ashrdi3(void);
|
|
extern void __divsi3(void);
|
|
extern void __lshrdi3(void);
|
|
extern void __modsi3(void);
|
|
extern void __muldi3(void);
|
|
extern void __ucmpdi2(void);
|
|
extern void __udivsi3(void);
|
|
extern void __umodsi3(void);
|
|
extern void __do_div64(void);
|
|
|
|
extern void fpundefinstr(void);
|
|
extern void fp_enter(void);
|
|
|
|
/*
|
|
* This has a special calling convention; it doesn't
|
|
* modify any of the usual registers, except for LR.
|
|
*/
|
|
#define EXPORT_CRC_ALIAS(sym) __CRC_SYMBOL(sym, "")
|
|
|
|
#define EXPORT_SYMBOL_ALIAS(sym,orig) \
|
|
EXPORT_CRC_ALIAS(sym) \
|
|
static const struct kernel_symbol __ksymtab_##sym \
|
|
__attribute_used__ __attribute__((section("__ksymtab"))) = \
|
|
{ (unsigned long)&orig, #sym };
|
|
|
|
/*
|
|
* floating point math emulator support.
|
|
* These symbols will never change their calling convention...
|
|
*/
|
|
EXPORT_SYMBOL_ALIAS(kern_fp_enter,fp_enter);
|
|
EXPORT_SYMBOL_ALIAS(fp_printk,printk);
|
|
EXPORT_SYMBOL_ALIAS(fp_send_sig,send_sig);
|
|
|
|
EXPORT_SYMBOL(__backtrace);
|
|
|
|
/* platform dependent support */
|
|
EXPORT_SYMBOL(__udelay);
|
|
EXPORT_SYMBOL(__const_udelay);
|
|
|
|
/* networking */
|
|
EXPORT_SYMBOL(csum_partial);
|
|
EXPORT_SYMBOL(csum_partial_copy_nocheck);
|
|
EXPORT_SYMBOL(__csum_ipv6_magic);
|
|
|
|
/* io */
|
|
#ifndef __raw_readsb
|
|
EXPORT_SYMBOL(__raw_readsb);
|
|
#endif
|
|
#ifndef __raw_readsw
|
|
EXPORT_SYMBOL(__raw_readsw);
|
|
#endif
|
|
#ifndef __raw_readsl
|
|
EXPORT_SYMBOL(__raw_readsl);
|
|
#endif
|
|
#ifndef __raw_writesb
|
|
EXPORT_SYMBOL(__raw_writesb);
|
|
#endif
|
|
#ifndef __raw_writesw
|
|
EXPORT_SYMBOL(__raw_writesw);
|
|
#endif
|
|
#ifndef __raw_writesl
|
|
EXPORT_SYMBOL(__raw_writesl);
|
|
#endif
|
|
|
|
/* string / mem functions */
|
|
EXPORT_SYMBOL(strcpy);
|
|
EXPORT_SYMBOL(strncpy);
|
|
EXPORT_SYMBOL(strcat);
|
|
EXPORT_SYMBOL(strncat);
|
|
EXPORT_SYMBOL(strcmp);
|
|
EXPORT_SYMBOL(strncmp);
|
|
EXPORT_SYMBOL(strchr);
|
|
EXPORT_SYMBOL(strlen);
|
|
EXPORT_SYMBOL(strnlen);
|
|
EXPORT_SYMBOL(strpbrk);
|
|
EXPORT_SYMBOL(strrchr);
|
|
EXPORT_SYMBOL(strstr);
|
|
EXPORT_SYMBOL(memset);
|
|
EXPORT_SYMBOL(memcpy);
|
|
EXPORT_SYMBOL(memmove);
|
|
EXPORT_SYMBOL(memcmp);
|
|
EXPORT_SYMBOL(memscan);
|
|
EXPORT_SYMBOL(memchr);
|
|
EXPORT_SYMBOL(__memzero);
|
|
|
|
/* user mem (segment) */
|
|
EXPORT_SYMBOL(__arch_copy_from_user);
|
|
EXPORT_SYMBOL(__arch_copy_to_user);
|
|
EXPORT_SYMBOL(__arch_clear_user);
|
|
EXPORT_SYMBOL(__arch_strnlen_user);
|
|
EXPORT_SYMBOL(__arch_strncpy_from_user);
|
|
|
|
EXPORT_SYMBOL(__get_user_1);
|
|
EXPORT_SYMBOL(__get_user_2);
|
|
EXPORT_SYMBOL(__get_user_4);
|
|
EXPORT_SYMBOL(__get_user_8);
|
|
|
|
EXPORT_SYMBOL(__put_user_1);
|
|
EXPORT_SYMBOL(__put_user_2);
|
|
EXPORT_SYMBOL(__put_user_4);
|
|
EXPORT_SYMBOL(__put_user_8);
|
|
|
|
/* gcc lib functions */
|
|
EXPORT_SYMBOL(__ashldi3);
|
|
EXPORT_SYMBOL(__ashrdi3);
|
|
EXPORT_SYMBOL(__divsi3);
|
|
EXPORT_SYMBOL(__lshrdi3);
|
|
EXPORT_SYMBOL(__modsi3);
|
|
EXPORT_SYMBOL(__muldi3);
|
|
EXPORT_SYMBOL(__ucmpdi2);
|
|
EXPORT_SYMBOL(__udivsi3);
|
|
EXPORT_SYMBOL(__umodsi3);
|
|
EXPORT_SYMBOL(__do_div64);
|
|
|
|
/* bitops */
|
|
EXPORT_SYMBOL(_set_bit_le);
|
|
EXPORT_SYMBOL(_test_and_set_bit_le);
|
|
EXPORT_SYMBOL(_clear_bit_le);
|
|
EXPORT_SYMBOL(_test_and_clear_bit_le);
|
|
EXPORT_SYMBOL(_change_bit_le);
|
|
EXPORT_SYMBOL(_test_and_change_bit_le);
|
|
EXPORT_SYMBOL(_find_first_zero_bit_le);
|
|
EXPORT_SYMBOL(_find_next_zero_bit_le);
|
|
EXPORT_SYMBOL(_find_first_bit_le);
|
|
EXPORT_SYMBOL(_find_next_bit_le);
|
|
|
|
#ifdef __ARMEB__
|
|
EXPORT_SYMBOL(_set_bit_be);
|
|
EXPORT_SYMBOL(_test_and_set_bit_be);
|
|
EXPORT_SYMBOL(_clear_bit_be);
|
|
EXPORT_SYMBOL(_test_and_clear_bit_be);
|
|
EXPORT_SYMBOL(_change_bit_be);
|
|
EXPORT_SYMBOL(_test_and_change_bit_be);
|
|
EXPORT_SYMBOL(_find_first_zero_bit_be);
|
|
EXPORT_SYMBOL(_find_next_zero_bit_be);
|
|
EXPORT_SYMBOL(_find_first_bit_be);
|
|
EXPORT_SYMBOL(_find_next_bit_be);
|
|
#endif
|
|
|
|
/* syscalls */
|
|
EXPORT_SYMBOL(sys_write);
|
|
EXPORT_SYMBOL(sys_read);
|
|
EXPORT_SYMBOL(sys_lseek);
|
|
EXPORT_SYMBOL(sys_open);
|
|
EXPORT_SYMBOL(sys_exit);
|
|
EXPORT_SYMBOL(sys_wait4);
|