Commit 00fc0e0d authored by Al Viro's avatar Al Viro

alpha: move exports to actual definitions

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 784d5699
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
generic-y += clkdev.h generic-y += clkdev.h
generic-y += cputime.h generic-y += cputime.h
generic-y += exec.h generic-y += exec.h
generic-y += export.h
generic-y += irq_work.h generic-y += irq_work.h
generic-y += mcs_spinlock.h generic-y += mcs_spinlock.h
generic-y += mm-arch-hooks.h generic-y += mm-arch-hooks.h
......
...@@ -8,7 +8,7 @@ ccflags-y := -Wno-sign-compare ...@@ -8,7 +8,7 @@ ccflags-y := -Wno-sign-compare
obj-y := entry.o traps.o process.o osf_sys.o irq.o \ obj-y := entry.o traps.o process.o osf_sys.o irq.o \
irq_alpha.o signal.o setup.o ptrace.o time.o \ irq_alpha.o signal.o setup.o ptrace.o time.o \
alpha_ksyms.o systbls.o err_common.o io.o systbls.o err_common.o io.o
obj-$(CONFIG_VGA_HOSE) += console.o obj-$(CONFIG_VGA_HOSE) += console.o
obj-$(CONFIG_SMP) += smp.o obj-$(CONFIG_SMP) += smp.o
......
/*
* linux/arch/alpha/kernel/alpha_ksyms.c
*
* Export the alpha-specific functions that are needed for loadable
* modules.
*/
#include <linux/module.h>
#include <asm/console.h>
#include <asm/uaccess.h>
#include <asm/checksum.h>
#include <asm/fpu.h>
#include <asm/machvec.h>
#include <linux/syscalls.h>
/* these are C runtime functions with special calling conventions: */
extern void __divl (void);
extern void __reml (void);
extern void __divq (void);
extern void __remq (void);
extern void __divlu (void);
extern void __remlu (void);
extern void __divqu (void);
extern void __remqu (void);
EXPORT_SYMBOL(alpha_mv);
EXPORT_SYMBOL(callback_getenv);
EXPORT_SYMBOL(callback_setenv);
EXPORT_SYMBOL(callback_save_env);
/* platform dependent support */
EXPORT_SYMBOL(strcat);
EXPORT_SYMBOL(strcpy);
EXPORT_SYMBOL(strlen);
EXPORT_SYMBOL(strncpy);
EXPORT_SYMBOL(strncat);
EXPORT_SYMBOL(strchr);
EXPORT_SYMBOL(strrchr);
EXPORT_SYMBOL(memmove);
EXPORT_SYMBOL(__memcpy);
EXPORT_SYMBOL(__memset);
EXPORT_SYMBOL(___memset);
EXPORT_SYMBOL(__memsetw);
EXPORT_SYMBOL(__constant_c_memset);
EXPORT_SYMBOL(copy_page);
EXPORT_SYMBOL(clear_page);
EXPORT_SYMBOL(alpha_read_fp_reg);
EXPORT_SYMBOL(alpha_read_fp_reg_s);
EXPORT_SYMBOL(alpha_write_fp_reg);
EXPORT_SYMBOL(alpha_write_fp_reg_s);
/* Networking helper routines. */
EXPORT_SYMBOL(csum_tcpudp_magic);
EXPORT_SYMBOL(ip_compute_csum);
EXPORT_SYMBOL(ip_fast_csum);
EXPORT_SYMBOL(csum_partial_copy_nocheck);
EXPORT_SYMBOL(csum_partial_copy_from_user);
EXPORT_SYMBOL(csum_ipv6_magic);
#ifdef CONFIG_MATHEMU_MODULE
extern long (*alpha_fp_emul_imprecise)(struct pt_regs *, unsigned long);
extern long (*alpha_fp_emul) (unsigned long pc);
EXPORT_SYMBOL(alpha_fp_emul_imprecise);
EXPORT_SYMBOL(alpha_fp_emul);
#endif
/*
* The following are specially called from the uaccess assembly stubs.
*/
EXPORT_SYMBOL(__copy_user);
EXPORT_SYMBOL(__do_clear_user);
/*
* SMP-specific symbols.
*/
#ifdef CONFIG_SMP
EXPORT_SYMBOL(_atomic_dec_and_lock);
#endif /* CONFIG_SMP */
/*
* The following are special because they're not called
* explicitly (the C compiler or assembler generates them in
* response to division operations). Fortunately, their
* interface isn't gonna change any time soon now, so it's OK
* to leave it out of version control.
*/
# undef memcpy
# undef memset
EXPORT_SYMBOL(__divl);
EXPORT_SYMBOL(__divlu);
EXPORT_SYMBOL(__divq);
EXPORT_SYMBOL(__divqu);
EXPORT_SYMBOL(__reml);
EXPORT_SYMBOL(__remlu);
EXPORT_SYMBOL(__remq);
EXPORT_SYMBOL(__remqu);
EXPORT_SYMBOL(memcpy);
EXPORT_SYMBOL(memset);
EXPORT_SYMBOL(memchr);
...@@ -144,9 +144,11 @@ ...@@ -144,9 +144,11 @@
else beforehand. Fine. We'll do it ourselves. */ else beforehand. Fine. We'll do it ourselves. */
#if 0 #if 0
#define ALIAS_MV(system) \ #define ALIAS_MV(system) \
struct alpha_machine_vector alpha_mv __attribute__((alias(#system "_mv"))); struct alpha_machine_vector alpha_mv __attribute__((alias(#system "_mv"))); \
EXPORT_SYMBOL(alpha_mv);
#else #else
#define ALIAS_MV(system) \ #define ALIAS_MV(system) \
asm(".global alpha_mv\nalpha_mv = " #system "_mv"); asm(".global alpha_mv\nalpha_mv = " #system "_mv"); \
EXPORT_SYMBOL(alpha_mv);
#endif #endif
#endif /* GENERIC */ #endif /* GENERIC */
...@@ -115,6 +115,7 @@ unsigned long alpha_agpgart_size = DEFAULT_AGP_APER_SIZE; ...@@ -115,6 +115,7 @@ unsigned long alpha_agpgart_size = DEFAULT_AGP_APER_SIZE;
#ifdef CONFIG_ALPHA_GENERIC #ifdef CONFIG_ALPHA_GENERIC
struct alpha_machine_vector alpha_mv; struct alpha_machine_vector alpha_mv;
EXPORT_SYMBOL(alpha_mv);
#endif #endif
#ifndef alpha_using_srm #ifndef alpha_using_srm
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
*/ */
#include <asm/console.h> #include <asm/console.h>
#include <asm/export.h>
.text .text
#define HWRPB_CRB_OFFSET 0xc0 #define HWRPB_CRB_OFFSET 0xc0
...@@ -92,6 +93,10 @@ CALLBACK(reset_env, CCB_RESET_ENV, 4) ...@@ -92,6 +93,10 @@ CALLBACK(reset_env, CCB_RESET_ENV, 4)
CALLBACK(save_env, CCB_SAVE_ENV, 1) CALLBACK(save_env, CCB_SAVE_ENV, 1)
CALLBACK(pswitch, CCB_PSWITCH, 3) CALLBACK(pswitch, CCB_PSWITCH, 3)
CALLBACK(bios_emul, CCB_BIOS_EMUL, 5) CALLBACK(bios_emul, CCB_BIOS_EMUL, 5)
EXPORT_SYMBOL(callback_getenv)
EXPORT_SYMBOL(callback_setenv)
EXPORT_SYMBOL(callback_save_env)
.data .data
__alpha_using_srm: # For use by bootpheader __alpha_using_srm: # For use by bootpheader
......
...@@ -48,6 +48,7 @@ __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, ...@@ -48,6 +48,7 @@ __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
(__force u64)saddr + (__force u64)daddr + (__force u64)saddr + (__force u64)daddr +
(__force u64)sum + ((len + proto) << 8)); (__force u64)sum + ((len + proto) << 8));
} }
EXPORT_SYMBOL(csum_tcpudp_magic);
__wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
__u32 len, __u8 proto, __wsum sum) __u32 len, __u8 proto, __wsum sum)
...@@ -144,6 +145,7 @@ __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ...@@ -144,6 +145,7 @@ __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
{ {
return (__force __sum16)~do_csum(iph,ihl*4); return (__force __sum16)~do_csum(iph,ihl*4);
} }
EXPORT_SYMBOL(ip_fast_csum);
/* /*
* computes the checksum of a memory block at buff, length len, * computes the checksum of a memory block at buff, length len,
...@@ -178,3 +180,4 @@ __sum16 ip_compute_csum(const void *buff, int len) ...@@ -178,3 +180,4 @@ __sum16 ip_compute_csum(const void *buff, int len)
{ {
return (__force __sum16)~from64to16(do_csum(buff,len)); return (__force __sum16)~from64to16(do_csum(buff,len));
} }
EXPORT_SYMBOL(ip_compute_csum);
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Zero an entire page. * Zero an entire page.
*/ */
#include <asm/export.h>
.text .text
.align 4 .align 4
.global clear_page .global clear_page
...@@ -37,3 +37,4 @@ clear_page: ...@@ -37,3 +37,4 @@ clear_page:
nop nop
.end clear_page .end clear_page
EXPORT_SYMBOL(clear_page)
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
* Clobbers: * Clobbers:
* $1,$2,$3,$4,$5,$6 * $1,$2,$3,$4,$5,$6
*/ */
#include <asm/export.h>
/* Allow an exception for an insn; exit if we get one. */ /* Allow an exception for an insn; exit if we get one. */
#define EX(x,y...) \ #define EX(x,y...) \
...@@ -111,3 +112,4 @@ $exception: ...@@ -111,3 +112,4 @@ $exception:
ret $31, ($28), 1 # .. e1 : ret $31, ($28), 1 # .. e1 :
.end __do_clear_user .end __do_clear_user
EXPORT_SYMBOL(__do_clear_user)
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Copy an entire page. * Copy an entire page.
*/ */
#include <asm/export.h>
.text .text
.align 4 .align 4
.global copy_page .global copy_page
...@@ -47,3 +47,4 @@ copy_page: ...@@ -47,3 +47,4 @@ copy_page:
nop nop
.end copy_page .end copy_page
EXPORT_SYMBOL(copy_page)
...@@ -26,6 +26,8 @@ ...@@ -26,6 +26,8 @@
* $1,$2,$3,$4,$5,$6,$7 * $1,$2,$3,$4,$5,$6,$7
*/ */
#include <asm/export.h>
/* Allow an exception for an insn; exit if we get one. */ /* Allow an exception for an insn; exit if we get one. */
#define EXI(x,y...) \ #define EXI(x,y...) \
99: x,##y; \ 99: x,##y; \
...@@ -143,3 +145,4 @@ $101: ...@@ -143,3 +145,4 @@ $101:
ret $31,($28),1 ret $31,($28),1
.end __copy_user .end __copy_user
EXPORT_SYMBOL(__copy_user)
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
* added by Ivan Kokshaysky <ink@jurassic.park.msu.ru> * added by Ivan Kokshaysky <ink@jurassic.park.msu.ru>
*/ */
#include <asm/export.h>
.globl csum_ipv6_magic .globl csum_ipv6_magic
.align 4 .align 4
.ent csum_ipv6_magic .ent csum_ipv6_magic
...@@ -113,3 +114,4 @@ csum_ipv6_magic: ...@@ -113,3 +114,4 @@ csum_ipv6_magic:
ret # .. e1 : ret # .. e1 :
.end csum_ipv6_magic .end csum_ipv6_magic
EXPORT_SYMBOL(csum_ipv6_magic)
...@@ -374,6 +374,7 @@ csum_partial_copy_from_user(const void __user *src, void *dst, int len, ...@@ -374,6 +374,7 @@ csum_partial_copy_from_user(const void __user *src, void *dst, int len,
} }
return (__force __wsum)checksum; return (__force __wsum)checksum;
} }
EXPORT_SYMBOL(csum_partial_copy_from_user);
__wsum __wsum
csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum) csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum)
...@@ -386,3 +387,4 @@ csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum) ...@@ -386,3 +387,4 @@ csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum)
set_fs(oldfs); set_fs(oldfs);
return checksum; return checksum;
} }
EXPORT_SYMBOL(csum_partial_copy_nocheck);
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/atomic.h> #include <linux/atomic.h>
#include <linux/export.h>
asm (".text \n\ asm (".text \n\
.global _atomic_dec_and_lock \n\ .global _atomic_dec_and_lock \n\
...@@ -39,3 +40,4 @@ static int __used atomic_dec_and_lock_1(atomic_t *atomic, spinlock_t *lock) ...@@ -39,3 +40,4 @@ static int __used atomic_dec_and_lock_1(atomic_t *atomic, spinlock_t *lock)
spin_unlock(lock); spin_unlock(lock);
return 0; return 0;
} }
EXPORT_SYMBOL(_atomic_dec_and_lock);
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
* $28 - compare status * $28 - compare status
*/ */
#include <asm/export.h>
#define halt .long 0 #define halt .long 0
/* /*
...@@ -151,6 +152,7 @@ ufunction: ...@@ -151,6 +152,7 @@ ufunction:
addq $30,STACK,$30 addq $30,STACK,$30
ret $31,($23),1 ret $31,($23),1
.end ufunction .end ufunction
EXPORT_SYMBOL(ufunction)
/* /*
* Uhh.. Ugly signed division. I'd rather not have it at all, but * Uhh.. Ugly signed division. I'd rather not have it at all, but
...@@ -193,3 +195,4 @@ sfunction: ...@@ -193,3 +195,4 @@ sfunction:
addq $30,STACK,$30 addq $30,STACK,$30
ret $31,($23),1 ret $31,($23),1
.end sfunction .end sfunction
EXPORT_SYMBOL(sfunction)
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Zero an entire page. * Zero an entire page.
*/ */
#include <asm/export.h>
.text .text
.align 4 .align 4
.global clear_page .global clear_page
...@@ -52,3 +52,4 @@ clear_page: ...@@ -52,3 +52,4 @@ clear_page:
nop nop
.end clear_page .end clear_page
EXPORT_SYMBOL(clear_page)
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
* want to leave a hole (and we also want to avoid repeating lots of work) * want to leave a hole (and we also want to avoid repeating lots of work)
*/ */
#include <asm/export.h>
/* Allow an exception for an insn; exit if we get one. */ /* Allow an exception for an insn; exit if we get one. */
#define EX(x,y...) \ #define EX(x,y...) \
99: x,##y; \ 99: x,##y; \
...@@ -222,4 +223,4 @@ $exception: # Destination for exception recovery(?) ...@@ -222,4 +223,4 @@ $exception: # Destination for exception recovery(?)
nop # .. E .. .. : nop # .. E .. .. :
ret $31, ($28), 1 # L0 .. .. .. : L U L U ret $31, ($28), 1 # L0 .. .. .. : L U L U
.end __do_clear_user .end __do_clear_user
EXPORT_SYMBOL(__do_clear_user)
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
destination pages are in the dcache, but it is my guess that this is destination pages are in the dcache, but it is my guess that this is
less important than the dcache miss case. */ less important than the dcache miss case. */
#include <asm/export.h>
.text .text
.align 4 .align 4
.global copy_page .global copy_page
...@@ -201,3 +201,4 @@ copy_page: ...@@ -201,3 +201,4 @@ copy_page:
nop nop
.end copy_page .end copy_page
EXPORT_SYMBOL(copy_page)
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
* L - lower subcluster; L0 - subcluster L0; L1 - subcluster L1 * L - lower subcluster; L0 - subcluster L0; L1 - subcluster L1
*/ */
#include <asm/export.h>
/* Allow an exception for an insn; exit if we get one. */ /* Allow an exception for an insn; exit if we get one. */
#define EXI(x,y...) \ #define EXI(x,y...) \
99: x,##y; \ 99: x,##y; \
...@@ -256,4 +257,4 @@ $101: ...@@ -256,4 +257,4 @@ $101:
ret $31,($28),1 # L0 ret $31,($28),1 # L0
.end __copy_user .end __copy_user
EXPORT_SYMBOL(__copy_user)
...@@ -52,6 +52,7 @@ ...@@ -52,6 +52,7 @@
* may cause additional delay in rare cases (load-load replay traps). * may cause additional delay in rare cases (load-load replay traps).
*/ */
#include <asm/export.h>
.globl csum_ipv6_magic .globl csum_ipv6_magic
.align 4 .align 4
.ent csum_ipv6_magic .ent csum_ipv6_magic
...@@ -148,3 +149,4 @@ csum_ipv6_magic: ...@@ -148,3 +149,4 @@ csum_ipv6_magic:
ret # L0 : L U L U ret # L0 : L U L U
.end csum_ipv6_magic .end csum_ipv6_magic
EXPORT_SYMBOL(csum_ipv6_magic)
...@@ -55,6 +55,7 @@ ...@@ -55,6 +55,7 @@
* Try not to change the actual algorithm if possible for consistency. * Try not to change the actual algorithm if possible for consistency.
*/ */
#include <asm/export.h>
#define halt .long 0 #define halt .long 0
/* /*
...@@ -205,6 +206,7 @@ ufunction: ...@@ -205,6 +206,7 @@ ufunction:
addq $30,STACK,$30 # E : addq $30,STACK,$30 # E :
ret $31,($23),1 # L0 : L U U L ret $31,($23),1 # L0 : L U U L
.end ufunction .end ufunction
EXPORT_SYMBOL(ufunction)
/* /*
* Uhh.. Ugly signed division. I'd rather not have it at all, but * Uhh.. Ugly signed division. I'd rather not have it at all, but
...@@ -257,3 +259,4 @@ sfunction: ...@@ -257,3 +259,4 @@ sfunction:
addq $30,STACK,$30 # E : addq $30,STACK,$30 # E :
ret $31,($23),1 # L0 : L U U L ret $31,($23),1 # L0 : L U U L
.end sfunction .end sfunction
EXPORT_SYMBOL(sfunction)
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
* L - lower subcluster; L0 - subcluster L0; L1 - subcluster L1 * L - lower subcluster; L0 - subcluster L0; L1 - subcluster L1
* Try not to change the actual algorithm if possible for consistency. * Try not to change the actual algorithm if possible for consistency.
*/ */
#include <asm/export.h>
.set noreorder .set noreorder
.set noat .set noat
...@@ -189,3 +189,4 @@ $not_found: ...@@ -189,3 +189,4 @@ $not_found:
ret # L0 : ret # L0 :
.end memchr .end memchr
EXPORT_SYMBOL(memchr)
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
* Temp usage notes: * Temp usage notes:
* $1,$2, - scratch * $1,$2, - scratch
*/ */
#include <asm/export.h>
.set noreorder .set noreorder
.set noat .set noat
...@@ -242,6 +242,7 @@ $nomoredata: ...@@ -242,6 +242,7 @@ $nomoredata:
nop # E : nop # E :
.end memcpy .end memcpy
EXPORT_SYMBOL(memcpy)
/* For backwards module compatibility. */ /* For backwards module compatibility. */
__memcpy = memcpy __memcpy = memcpy
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
* as fixes will need to be made in multiple places. The performance gain * as fixes will need to be made in multiple places. The performance gain
* is worth it. * is worth it.
*/ */
#include <asm/export.h>
.set noat .set noat
.set noreorder .set noreorder
.text .text
...@@ -229,6 +229,7 @@ end_b: ...@@ -229,6 +229,7 @@ end_b:
nop nop
ret $31,($26),1 # L0 : ret $31,($26),1 # L0 :
.end ___memset .end ___memset
EXPORT_SYMBOL(___memset)
/* /*
* This is the original body of code, prior to replication and * This is the original body of code, prior to replication and
...@@ -406,6 +407,7 @@ end: ...@@ -406,6 +407,7 @@ end:
nop nop
ret $31,($26),1 # L0 : ret $31,($26),1 # L0 :
.end __constant_c_memset .end __constant_c_memset
EXPORT_SYMBOL(__constant_c_memset)
/* /*
* This is a replicant of the __constant_c_memset code, rescheduled * This is a replicant of the __constant_c_memset code, rescheduled
...@@ -594,6 +596,9 @@ end_w: ...@@ -594,6 +596,9 @@ end_w:
ret $31,($26),1 # L0 : ret $31,($26),1 # L0 :
.end __memsetw .end __memsetw
EXPORT_SYMBOL(__memsetw)
memset = ___memset memset = ___memset
__memset = ___memset __memset = ___memset
EXPORT_SYMBOL(memset)
EXPORT_SYMBOL(__memset)
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
* string once. * string once.
*/ */
#include <asm/export.h>
.text .text
.align 4 .align 4
...@@ -52,3 +52,4 @@ $found: cttz $2, $3 # U0 : ...@@ -52,3 +52,4 @@ $found: cttz $2, $3 # U0 :
br __stxcpy # L0 : br __stxcpy # L0 :
.end strcat .end strcat
EXPORT_SYMBOL(strcat)
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
* L - lower subcluster; L0 - subcluster L0; L1 - subcluster L1 * L - lower subcluster; L0 - subcluster L0; L1 - subcluster L1
* Try not to change the actual algorithm if possible for consistency. * Try not to change the actual algorithm if possible for consistency.
*/ */
#include <asm/export.h>
#include <asm/regdef.h> #include <asm/regdef.h>
.set noreorder .set noreorder
...@@ -86,3 +86,4 @@ $found: negq t0, t1 # E : clear all but least set bit ...@@ -86,3 +86,4 @@ $found: negq t0, t1 # E : clear all but least set bit
ret # L0 : ret # L0 :
.end strchr .end strchr
EXPORT_SYMBOL(strchr)
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
* U - upper subcluster; U0 - subcluster U0; U1 - subcluster U1 * U - upper subcluster; U0 - subcluster U0; U1 - subcluster U1
* L - lower subcluster; L0 - subcluster L0; L1 - subcluster L1 * L - lower subcluster; L0 - subcluster L0; L1 - subcluster L1
*/ */
#include <asm/export.h>
.set noreorder .set noreorder
.set noat .set noat
...@@ -47,3 +47,4 @@ $found: ...@@ -47,3 +47,4 @@ $found:
ret $31, ($26) # L0 : ret $31, ($26) # L0 :
.end strlen .end strlen
EXPORT_SYMBOL(strlen)
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
* Try not to change the actual algorithm if possible for consistency. * Try not to change the actual algorithm if possible for consistency.
*/ */
#include <asm/export.h>
.text .text
.align 4 .align 4
...@@ -92,3 +92,4 @@ $zerocount: ...@@ -92,3 +92,4 @@ $zerocount:
ret # L0 : ret # L0 :
.end strncat .end strncat
EXPORT_SYMBOL(strncat)
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
* L - lower subcluster; L0 - subcluster L0; L1 - subcluster L1 * L - lower subcluster; L0 - subcluster L0; L1 - subcluster L1
*/ */
#include <asm/export.h>
#include <asm/regdef.h> #include <asm/regdef.h>
.set noreorder .set noreorder
...@@ -107,3 +107,4 @@ $eos: ...@@ -107,3 +107,4 @@ $eos:
nop nop
.end strrchr .end strrchr
EXPORT_SYMBOL(strrchr)
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
* (C) Copyright 1998 Linus Torvalds * (C) Copyright 1998 Linus Torvalds
*/ */
#include <linux/compiler.h>
#include <linux/export.h>
#if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67) #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
#define STT(reg,val) asm volatile ("ftoit $f"#reg",%0" : "=r"(val)); #define STT(reg,val) asm volatile ("ftoit $f"#reg",%0" : "=r"(val));
#else #else
...@@ -52,6 +55,7 @@ alpha_read_fp_reg (unsigned long reg) ...@@ -52,6 +55,7 @@ alpha_read_fp_reg (unsigned long reg)
} }
return val; return val;
} }
EXPORT_SYMBOL(alpha_read_fp_reg);
#if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67) #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
#define LDT(reg,val) asm volatile ("itoft %0,$f"#reg : : "r"(val)); #define LDT(reg,val) asm volatile ("itoft %0,$f"#reg : : "r"(val));
...@@ -97,6 +101,7 @@ alpha_write_fp_reg (unsigned long reg, unsigned long val) ...@@ -97,6 +101,7 @@ alpha_write_fp_reg (unsigned long reg, unsigned long val)
case 31: LDT(31, val); break; case 31: LDT(31, val); break;
} }
} }
EXPORT_SYMBOL(alpha_write_fp_reg);
#if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67) #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
#define STS(reg,val) asm volatile ("ftois $f"#reg",%0" : "=r"(val)); #define STS(reg,val) asm volatile ("ftois $f"#reg",%0" : "=r"(val));
...@@ -146,6 +151,7 @@ alpha_read_fp_reg_s (unsigned long reg) ...@@ -146,6 +151,7 @@ alpha_read_fp_reg_s (unsigned long reg)
} }
return val; return val;
} }
EXPORT_SYMBOL(alpha_read_fp_reg_s);
#if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67) #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
#define LDS(reg,val) asm volatile ("itofs %0,$f"#reg : : "r"(val)); #define LDS(reg,val) asm volatile ("itofs %0,$f"#reg : : "r"(val));
...@@ -191,3 +197,4 @@ alpha_write_fp_reg_s (unsigned long reg, unsigned long val) ...@@ -191,3 +197,4 @@ alpha_write_fp_reg_s (unsigned long reg, unsigned long val)
case 31: LDS(31, val); break; case 31: LDS(31, val); break;
} }
} }
EXPORT_SYMBOL(alpha_write_fp_reg_s);
...@@ -31,7 +31,7 @@ For correctness consider that: ...@@ -31,7 +31,7 @@ For correctness consider that:
- only minimum number of quadwords may be accessed - only minimum number of quadwords may be accessed
- the third argument is an unsigned long - the third argument is an unsigned long
*/ */
#include <asm/export.h>
.set noreorder .set noreorder
.set noat .set noat
...@@ -162,3 +162,4 @@ $not_found: ...@@ -162,3 +162,4 @@ $not_found:
ret # .. e1 : ret # .. e1 :
.end memchr .end memchr
EXPORT_SYMBOL(memchr)
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
*/ */
#include <linux/types.h> #include <linux/types.h>
#include <linux/export.h>
/* /*
* This should be done in one go with ldq_u*2/mask/stq_u. Do it * This should be done in one go with ldq_u*2/mask/stq_u. Do it
...@@ -158,6 +159,4 @@ void * memcpy(void * dest, const void *src, size_t n) ...@@ -158,6 +159,4 @@ void * memcpy(void * dest, const void *src, size_t n)
__memcpy_unaligned_up ((unsigned long) dest, (unsigned long) src, n); __memcpy_unaligned_up ((unsigned long) dest, (unsigned long) src, n);
return dest; return dest;
} }
EXPORT_SYMBOL(memcpy);
/* For backward modules compatibility, define __memcpy. */
asm("__memcpy = memcpy; .globl __memcpy");
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* This is hand-massaged output from the original memcpy.c. We defer to * This is hand-massaged output from the original memcpy.c. We defer to
* memcpy whenever possible; the backwards copy loops are not unrolled. * memcpy whenever possible; the backwards copy loops are not unrolled.
*/ */
#include <asm/export.h>
.set noat .set noat
.set noreorder .set noreorder
.text .text
...@@ -179,3 +179,4 @@ $egress: ...@@ -179,3 +179,4 @@ $egress:
nop nop
.end memmove .end memmove
EXPORT_SYMBOL(memmove)
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
* The scheduling comments are according to the EV5 documentation (and done by * The scheduling comments are according to the EV5 documentation (and done by
* hand, so they might well be incorrect, please do tell me about it..) * hand, so they might well be incorrect, please do tell me about it..)
*/ */
#include <asm/export.h>
.set noat .set noat
.set noreorder .set noreorder
.text .text
...@@ -106,6 +106,8 @@ within_one_quad: ...@@ -106,6 +106,8 @@ within_one_quad:
end: end:
ret $31,($26),1 /* E1 */ ret $31,($26),1 /* E1 */
.end ___memset .end ___memset
EXPORT_SYMBOL(___memset)
EXPORT_SYMBOL(__constant_c_memset)
.align 5 .align 5
.ent __memsetw .ent __memsetw
...@@ -122,6 +124,9 @@ __memsetw: ...@@ -122,6 +124,9 @@ __memsetw:
br __constant_c_memset /* .. E1 */ br __constant_c_memset /* .. E1 */
.end __memsetw .end __memsetw
EXPORT_SYMBOL(__memsetw)
memset = ___memset memset = ___memset
__memset = ___memset __memset = ___memset
EXPORT_SYMBOL(memset)
EXPORT_SYMBOL(__memset)
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
* *
* Append a null-terminated string from SRC to DST. * Append a null-terminated string from SRC to DST.
*/ */
#include <asm/export.h>
.text .text
...@@ -50,3 +51,4 @@ $found: negq $2, $3 # clear all but least set bit ...@@ -50,3 +51,4 @@ $found: negq $2, $3 # clear all but least set bit
br __stxcpy br __stxcpy
.end strcat .end strcat
EXPORT_SYMBOL(strcat);
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* Return the address of a given character within a null-terminated * Return the address of a given character within a null-terminated
* string, or null if it is not found. * string, or null if it is not found.
*/ */
#include <asm/export.h>
#include <asm/regdef.h> #include <asm/regdef.h>
.set noreorder .set noreorder
...@@ -68,3 +68,4 @@ $retnull: ...@@ -68,3 +68,4 @@ $retnull:
ret # .. e1 : ret # .. e1 :
.end strchr .end strchr
EXPORT_SYMBOL(strchr)
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* Copy a null-terminated string from SRC to DST. Return a pointer * Copy a null-terminated string from SRC to DST. Return a pointer
* to the null-terminator in the source. * to the null-terminator in the source.
*/ */
#include <asm/export.h>
.text .text
.align 3 .align 3
...@@ -21,3 +21,4 @@ strcpy: ...@@ -21,3 +21,4 @@ strcpy:
br __stxcpy # do the copy br __stxcpy # do the copy
.end strcpy .end strcpy
EXPORT_SYMBOL(strcpy)
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
* do this instead of the 9 instructions that * do this instead of the 9 instructions that
* binary search needs). * binary search needs).
*/ */
#include <asm/export.h>
.set noreorder .set noreorder
.set noat .set noat
...@@ -55,3 +55,4 @@ done: subq $0, $16, $0 ...@@ -55,3 +55,4 @@ done: subq $0, $16, $0
ret $31, ($26) ret $31, ($26)
.end strlen .end strlen
EXPORT_SYMBOL(strlen)
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* past count, whereas libc may write to count+1. This follows the generic * past count, whereas libc may write to count+1. This follows the generic
* implementation in lib/string.c and is, IMHO, more sensible. * implementation in lib/string.c and is, IMHO, more sensible.
*/ */
#include <asm/export.h>
.text .text
.align 3 .align 3
...@@ -82,3 +82,4 @@ $zerocount: ...@@ -82,3 +82,4 @@ $zerocount:
ret ret
.end strncat .end strncat
EXPORT_SYMBOL(strncat)
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
* version has cropped that bit o' nastiness as well as assuming that * version has cropped that bit o' nastiness as well as assuming that
* __stxncpy is in range of a branch. * __stxncpy is in range of a branch.
*/ */
#include <asm/export.h>
.set noat .set noat
.set noreorder .set noreorder
...@@ -79,3 +79,4 @@ $zerolen: ...@@ -79,3 +79,4 @@ $zerolen:
ret ret
.end strncpy .end strncpy
EXPORT_SYMBOL(strncpy)
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* Return the address of the last occurrence of a given character * Return the address of the last occurrence of a given character
* within a null-terminated string, or null if it is not found. * within a null-terminated string, or null if it is not found.
*/ */
#include <asm/export.h>
#include <asm/regdef.h> #include <asm/regdef.h>
.set noreorder .set noreorder
...@@ -85,3 +85,4 @@ $retnull: ...@@ -85,3 +85,4 @@ $retnull:
ret # .. e1 : ret # .. e1 :
.end strrchr .end strrchr
EXPORT_SYMBOL(strrchr)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment