blob: b2cee3d19477688a982a1ca7baaa7c4fefc311b2 [file] [log] [blame]
Andi Kleen2ee60e172006-06-26 13:59:44 +02001/* Exports for assembly files.
2 All C exports should go in the respective C files. */
3
Paul Gortmaker186f4362016-07-13 20:18:56 -04004#include <linux/export.h>
Stephen Rothwella2038002016-07-18 18:23:24 +10005#include <linux/spinlock_types.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07006#include <linux/smp.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07007
Ingo Molnar37135672008-05-14 08:10:31 +02008#include <net/checksum.h>
9
Linus Torvalds1da177e2005-04-16 15:20:36 -070010#include <asm/processor.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070011#include <asm/pgtable.h>
Ingo Molnar37135672008-05-14 08:10:31 +020012#include <asm/uaccess.h>
Glauber de Oliveira Costa70fd93c2008-01-30 13:31:10 +010013#include <asm/desc.h>
Abhishek Sagar395a59d2008-06-21 23:47:27 +053014#include <asm/ftrace.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070015
Steven Rostedt606576c2008-10-06 19:06:12 -040016#ifdef CONFIG_FUNCTION_TRACER
Steven Rostedtd57c5d52011-02-09 13:32:18 -050017/* mcount and __fentry__ are defined in assembly */
18#ifdef CC_USING_FENTRY
19EXPORT_SYMBOL(__fentry__);
20#else
Ingo Molnar37135672008-05-14 08:10:31 +020021EXPORT_SYMBOL(mcount);
22#endif
Steven Rostedtd57c5d52011-02-09 13:32:18 -050023#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070024
Linus Torvalds1da177e2005-04-16 15:20:36 -070025EXPORT_SYMBOL(__get_user_1);
26EXPORT_SYMBOL(__get_user_2);
27EXPORT_SYMBOL(__get_user_4);
28EXPORT_SYMBOL(__get_user_8);
29EXPORT_SYMBOL(__put_user_1);
30EXPORT_SYMBOL(__put_user_2);
31EXPORT_SYMBOL(__put_user_4);
32EXPORT_SYMBOL(__put_user_8);
33
Jan Beulich1b1d9252009-12-18 16:12:56 +000034EXPORT_SYMBOL(copy_user_generic_string);
35EXPORT_SYMBOL(copy_user_generic_unrolled);
Fenghua Yu954e4822012-05-24 18:19:45 -070036EXPORT_SYMBOL(copy_user_enhanced_fast_string);
Andi Kleen0812a572007-02-13 13:26:19 +010037EXPORT_SYMBOL(__copy_user_nocache);
Arjan van de Ven9f0cf4a2009-09-26 14:33:01 +020038EXPORT_SYMBOL(_copy_from_user);
Frederic Weisbecker3c93ca02009-11-16 15:42:18 +010039EXPORT_SYMBOL(_copy_to_user);
Linus Torvalds1da177e2005-04-16 15:20:36 -070040
Tony Luck9a6fb282016-09-01 11:39:33 -070041EXPORT_SYMBOL_GPL(memcpy_mcsafe_unrolled);
Tony Luck92b07292016-02-18 11:47:26 -080042
Linus Torvalds1da177e2005-04-16 15:20:36 -070043EXPORT_SYMBOL(copy_page);
44EXPORT_SYMBOL(clear_page);
45
Ingo Molnar89804c02008-05-13 10:36:22 +020046EXPORT_SYMBOL(csum_partial);
47
Borislav Petkovf5967102016-05-30 12:56:27 +020048EXPORT_SYMBOL(__sw_hweight32);
49EXPORT_SYMBOL(__sw_hweight64);
50
Paolo Ciarrocchi8000a832008-02-19 23:34:02 +010051/*
52 * Export string functions. We normally rely on gcc builtin for most of these,
53 * but gcc sometimes decides not to inline them.
54 */
Linus Torvalds1da177e2005-04-16 15:20:36 -070055#undef memcpy
56#undef memset
57#undef memmove
Linus Torvalds1da177e2005-04-16 15:20:36 -070058
Andrey Ryabinin393f2032015-02-13 14:39:56 -080059extern void *__memset(void *, int, __kernel_size_t);
60extern void *__memcpy(void *, const void *, __kernel_size_t);
61extern void *__memmove(void *, const void *, __kernel_size_t);
Paolo Ciarrocchi8000a832008-02-19 23:34:02 +010062extern void *memset(void *, int, __kernel_size_t);
63extern void *memcpy(void *, const void *, __kernel_size_t);
Andrey Ryabinin393f2032015-02-13 14:39:56 -080064extern void *memmove(void *, const void *, __kernel_size_t);
65
66EXPORT_SYMBOL(__memset);
67EXPORT_SYMBOL(__memcpy);
68EXPORT_SYMBOL(__memmove);
Linus Torvalds1da177e2005-04-16 15:20:36 -070069
70EXPORT_SYMBOL(memset);
Linus Torvalds1da177e2005-04-16 15:20:36 -070071EXPORT_SYMBOL(memcpy);
Fenghua Yu9599ec02011-01-17 17:39:15 -080072EXPORT_SYMBOL(memmove);
Linus Torvalds1da177e2005-04-16 15:20:36 -070073
Alexander Duyck0bdf5252012-11-16 13:53:51 -080074#ifndef CONFIG_DEBUG_VIRTUAL
75EXPORT_SYMBOL(phys_base);
76#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070077EXPORT_SYMBOL(empty_zero_page);
Rusty Russelle6428042009-12-15 16:28:13 -060078#ifndef CONFIG_PARAVIRT
79EXPORT_SYMBOL(native_load_gs_index);
80#endif
Peter Zijlstra1a338ac2013-08-14 14:51:00 +020081
82#ifdef CONFIG_PREEMPT
83EXPORT_SYMBOL(___preempt_schedule);
Frederic Weisbecker4eaca0a2015-06-04 17:39:08 +020084EXPORT_SYMBOL(___preempt_schedule_notrace);
Peter Zijlstra1a338ac2013-08-14 14:51:00 +020085#endif