linux/arch/xtensa/kernel/xtensa_ksyms.c
<<
>>
Prefs
   1/*
   2 * arch/xtensa/kernel/xtensa_ksyms.c
   3 *
   4 * Export Xtensa-specific functions for loadable modules.
   5 *
   6 * This file is subject to the terms and conditions of the GNU General Public
   7 * License.  See the file "COPYING" in the main directory of this archive
   8 * for more details.
   9 *
  10 * Copyright (C) 2001 - 2005  Tensilica Inc.
  11 *
  12 * Joe Taylor <joe@tensilica.com>
  13 */
  14
  15#include <linux/module.h>
  16#include <linux/string.h>
  17#include <linux/mm.h>
  18#include <linux/interrupt.h>
  19#include <asm/irq.h>
  20#include <linux/in6.h>
  21
  22#include <asm/uaccess.h>
  23#include <asm/cacheflush.h>
  24#include <asm/checksum.h>
  25#include <asm/dma.h>
  26#include <asm/io.h>
  27#include <asm/page.h>
  28#include <asm/pgalloc.h>
  29#include <asm/ftrace.h>
  30#ifdef CONFIG_BLK_DEV_FD
  31#include <asm/floppy.h>
  32#endif
  33#ifdef CONFIG_NET
  34#include <net/checksum.h>
  35#endif /* CONFIG_NET */
  36
  37
  38/*
  39 * String functions
  40 */
  41EXPORT_SYMBOL(memset);
  42EXPORT_SYMBOL(memcpy);
  43EXPORT_SYMBOL(memmove);
  44EXPORT_SYMBOL(__strncpy_user);
  45EXPORT_SYMBOL(clear_page);
  46EXPORT_SYMBOL(copy_page);
  47
  48EXPORT_SYMBOL(empty_zero_page);
  49
  50/*
  51 * gcc internal math functions
  52 */
  53extern long long __ashrdi3(long long, int);
  54extern long long __ashldi3(long long, int);
  55extern long long __lshrdi3(long long, int);
  56extern int __divsi3(int, int);
  57extern int __modsi3(int, int);
  58extern long long __muldi3(long long, long long);
  59extern int __mulsi3(int, int);
  60extern unsigned int __udivsi3(unsigned int, unsigned int);
  61extern unsigned int __umodsi3(unsigned int, unsigned int);
  62extern unsigned long long __umoddi3(unsigned long long, unsigned long long);
  63extern unsigned long long __udivdi3(unsigned long long, unsigned long long);
  64extern int __ucmpdi2(int, int);
  65
  66EXPORT_SYMBOL(__ashldi3);
  67EXPORT_SYMBOL(__ashrdi3);
  68EXPORT_SYMBOL(__lshrdi3);
  69EXPORT_SYMBOL(__divsi3);
  70EXPORT_SYMBOL(__modsi3);
  71EXPORT_SYMBOL(__muldi3);
  72EXPORT_SYMBOL(__mulsi3);
  73EXPORT_SYMBOL(__udivsi3);
  74EXPORT_SYMBOL(__umodsi3);
  75EXPORT_SYMBOL(__udivdi3);
  76EXPORT_SYMBOL(__umoddi3);
  77EXPORT_SYMBOL(__ucmpdi2);
  78
  79void __xtensa_libgcc_window_spill(void)
  80{
  81        BUG();
  82}
  83EXPORT_SYMBOL(__xtensa_libgcc_window_spill);
  84
  85unsigned long __sync_fetch_and_and_4(unsigned long *p, unsigned long v)
  86{
  87        BUG();
  88}
  89EXPORT_SYMBOL(__sync_fetch_and_and_4);
  90
  91unsigned long __sync_fetch_and_or_4(unsigned long *p, unsigned long v)
  92{
  93        BUG();
  94}
  95EXPORT_SYMBOL(__sync_fetch_and_or_4);
  96
  97#ifdef CONFIG_NET
  98/*
  99 * Networking support
 100 */
 101EXPORT_SYMBOL(csum_partial);
 102EXPORT_SYMBOL(csum_partial_copy_generic);
 103#endif /* CONFIG_NET */
 104
 105/*
 106 * Architecture-specific symbols
 107 */
 108EXPORT_SYMBOL(__xtensa_copy_user);
 109EXPORT_SYMBOL(__invalidate_icache_range);
 110
 111/*
 112 * Kernel hacking ...
 113 */
 114
 115#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE)
 116// FIXME EXPORT_SYMBOL(screen_info);
 117#endif
 118
 119EXPORT_SYMBOL(outsb);
 120EXPORT_SYMBOL(outsw);
 121EXPORT_SYMBOL(outsl);
 122EXPORT_SYMBOL(insb);
 123EXPORT_SYMBOL(insw);
 124EXPORT_SYMBOL(insl);
 125
 126extern long common_exception_return;
 127EXPORT_SYMBOL(common_exception_return);
 128
 129#ifdef CONFIG_FUNCTION_TRACER
 130EXPORT_SYMBOL(_mcount);
 131#endif
 132
 133EXPORT_SYMBOL(__invalidate_dcache_range);
 134#if XCHAL_DCACHE_IS_WRITEBACK
 135EXPORT_SYMBOL(__flush_dcache_range);
 136#endif
 137