bfin_ksyms.c 3.7 KB
Newer Older
Bryan Wu's avatar
Bryan Wu committed
1
/*
2
 * arch/blackfin/kernel/bfin_ksyms.c - exports for random symbols
Bryan Wu's avatar
Bryan Wu committed
3
 *
4
 * Copyright 2004-2008 Analog Devices Inc.
Bryan Wu's avatar
Bryan Wu committed
5
 *
6
 * Licensed under the GPL-2 or later.
Bryan Wu's avatar
Bryan Wu committed
7 8 9
 */

#include <linux/module.h>
10 11
#include <linux/uaccess.h>

Bryan Wu's avatar
Bryan Wu committed
12
#include <asm/cacheflush.h>
13
#include <asm/io.h>
14
#include <asm/irq_handler.h>
Bryan Wu's avatar
Bryan Wu committed
15

16
/* Allow people to have their own Blackfin exception handler in a module */
17
EXPORT_SYMBOL(bfin_return_from_exception);
Bryan Wu's avatar
Bryan Wu committed
18

19 20 21 22 23 24
/* All the Blackfin cache functions: mach-common/cache.S */
EXPORT_SYMBOL(blackfin_dcache_invalidate_range);
EXPORT_SYMBOL(blackfin_icache_flush_range);
EXPORT_SYMBOL(blackfin_dcache_flush_range);
EXPORT_SYMBOL(blackfin_dflush_page);

Bryan Wu's avatar
Bryan Wu committed
25 26 27 28 29 30 31 32 33 34 35
/* The following are special because they're not called
 * explicitly (the C compiler generates them).  Fortunately,
 * their interface isn't gonna change any time soon now, so
 * it's OK to leave it out of version control.
 */
EXPORT_SYMBOL(memcpy);
EXPORT_SYMBOL(memset);
EXPORT_SYMBOL(memcmp);
EXPORT_SYMBOL(memmove);
EXPORT_SYMBOL(memchr);

36 37 38
/*
 * Because string functions are both inline and exported functions and
 * folder arch/blackfin/lib is configured as a library path in Makefile,
39
 * symbols exported in folder lib  is not linked into built-in.a but
40 41 42 43 44 45 46 47
 * inlined only. In order to export string symbols to kernel module
 * properly, they should be exported here.
 */
EXPORT_SYMBOL(strcpy);
EXPORT_SYMBOL(strncpy);
EXPORT_SYMBOL(strcmp);
EXPORT_SYMBOL(strncmp);

Bryan Wu's avatar
Bryan Wu committed
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
/*
 * 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 __smulsi3_highpart(void);
extern void __umulsi3_highpart(void);
extern void __divsi3(void);
extern void __lshrdi3(void);
extern void __modsi3(void);
extern void __muldi3(void);
extern void __udivsi3(void);
extern void __umodsi3(void);
EXPORT_SYMBOL(__ashldi3);
EXPORT_SYMBOL(__ashrdi3);
EXPORT_SYMBOL(__umulsi3_highpart);
EXPORT_SYMBOL(__smulsi3_highpart);
EXPORT_SYMBOL(__divsi3);
EXPORT_SYMBOL(__lshrdi3);
EXPORT_SYMBOL(__modsi3);
EXPORT_SYMBOL(__muldi3);
EXPORT_SYMBOL(__udivsi3);
EXPORT_SYMBOL(__umodsi3);

74
/* Input/output symbols: lib/{in,out}s.S */
Bryan Wu's avatar
Bryan Wu committed
75 76 77
EXPORT_SYMBOL(outsb);
EXPORT_SYMBOL(insb);
EXPORT_SYMBOL(outsw);
78
EXPORT_SYMBOL(outsw_8);
Bryan Wu's avatar
Bryan Wu committed
79
EXPORT_SYMBOL(insw);
80
EXPORT_SYMBOL(insw_8);
Bryan Wu's avatar
Bryan Wu committed
81 82
EXPORT_SYMBOL(outsl);
EXPORT_SYMBOL(insl);
83
EXPORT_SYMBOL(insl_16);
84 85

#ifdef CONFIG_SMP
86
EXPORT_SYMBOL(__raw_atomic_add_asm);
87
EXPORT_SYMBOL(__raw_atomic_xadd_asm);
88 89
EXPORT_SYMBOL(__raw_atomic_and_asm);
EXPORT_SYMBOL(__raw_atomic_or_asm);
90 91
EXPORT_SYMBOL(__raw_atomic_xor_asm);
EXPORT_SYMBOL(__raw_atomic_test_asm);
92

93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
EXPORT_SYMBOL(__raw_xchg_1_asm);
EXPORT_SYMBOL(__raw_xchg_2_asm);
EXPORT_SYMBOL(__raw_xchg_4_asm);
EXPORT_SYMBOL(__raw_cmpxchg_1_asm);
EXPORT_SYMBOL(__raw_cmpxchg_2_asm);
EXPORT_SYMBOL(__raw_cmpxchg_4_asm);
EXPORT_SYMBOL(__raw_spin_is_locked_asm);
EXPORT_SYMBOL(__raw_spin_lock_asm);
EXPORT_SYMBOL(__raw_spin_trylock_asm);
EXPORT_SYMBOL(__raw_spin_unlock_asm);
EXPORT_SYMBOL(__raw_read_lock_asm);
EXPORT_SYMBOL(__raw_read_trylock_asm);
EXPORT_SYMBOL(__raw_read_unlock_asm);
EXPORT_SYMBOL(__raw_write_lock_asm);
EXPORT_SYMBOL(__raw_write_trylock_asm);
EXPORT_SYMBOL(__raw_write_unlock_asm);
EXPORT_SYMBOL(__raw_bit_set_asm);
EXPORT_SYMBOL(__raw_bit_clear_asm);
EXPORT_SYMBOL(__raw_bit_toggle_asm);
EXPORT_SYMBOL(__raw_bit_test_asm);
EXPORT_SYMBOL(__raw_bit_test_set_asm);
EXPORT_SYMBOL(__raw_bit_test_clear_asm);
EXPORT_SYMBOL(__raw_bit_test_toggle_asm);
EXPORT_SYMBOL(__raw_uncached_fetch_asm);
117
#ifdef __ARCH_SYNC_CORE_DCACHE
118 119 120
EXPORT_SYMBOL(__raw_smp_mark_barrier_asm);
EXPORT_SYMBOL(__raw_smp_check_barrier_asm);
#endif
121
#endif
122 123 124 125 126

#ifdef CONFIG_FUNCTION_TRACER
extern void _mcount(void);
EXPORT_SYMBOL(_mcount);
#endif