Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
00fc0e0d
Commit
00fc0e0d
authored
Jan 11, 2016
by
Al Viro
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
alpha: move exports to actual definitions
Signed-off-by:
Al Viro
<
viro@zeniv.linux.org.uk
>
parent
784d5699
Changes
41
Hide whitespace changes
Inline
Side-by-side
Showing
41 changed files
with
99 additions
and
131 deletions
+99
-131
arch/alpha/include/asm/Kbuild
arch/alpha/include/asm/Kbuild
+1
-0
arch/alpha/kernel/Makefile
arch/alpha/kernel/Makefile
+1
-1
arch/alpha/kernel/alpha_ksyms.c
arch/alpha/kernel/alpha_ksyms.c
+0
-102
arch/alpha/kernel/machvec_impl.h
arch/alpha/kernel/machvec_impl.h
+4
-2
arch/alpha/kernel/setup.c
arch/alpha/kernel/setup.c
+1
-0
arch/alpha/lib/callback_srm.S
arch/alpha/lib/callback_srm.S
+5
-0
arch/alpha/lib/checksum.c
arch/alpha/lib/checksum.c
+3
-0
arch/alpha/lib/clear_page.S
arch/alpha/lib/clear_page.S
+2
-1
arch/alpha/lib/clear_user.S
arch/alpha/lib/clear_user.S
+2
-0
arch/alpha/lib/copy_page.S
arch/alpha/lib/copy_page.S
+2
-1
arch/alpha/lib/copy_user.S
arch/alpha/lib/copy_user.S
+3
-0
arch/alpha/lib/csum_ipv6_magic.S
arch/alpha/lib/csum_ipv6_magic.S
+2
-0
arch/alpha/lib/csum_partial_copy.c
arch/alpha/lib/csum_partial_copy.c
+2
-0
arch/alpha/lib/dec_and_lock.c
arch/alpha/lib/dec_and_lock.c
+2
-0
arch/alpha/lib/divide.S
arch/alpha/lib/divide.S
+3
-0
arch/alpha/lib/ev6-clear_page.S
arch/alpha/lib/ev6-clear_page.S
+2
-1
arch/alpha/lib/ev6-clear_user.S
arch/alpha/lib/ev6-clear_user.S
+2
-1
arch/alpha/lib/ev6-copy_page.S
arch/alpha/lib/ev6-copy_page.S
+2
-1
arch/alpha/lib/ev6-copy_user.S
arch/alpha/lib/ev6-copy_user.S
+2
-1
arch/alpha/lib/ev6-csum_ipv6_magic.S
arch/alpha/lib/ev6-csum_ipv6_magic.S
+2
-0
arch/alpha/lib/ev6-divide.S
arch/alpha/lib/ev6-divide.S
+3
-0
arch/alpha/lib/ev6-memchr.S
arch/alpha/lib/ev6-memchr.S
+2
-1
arch/alpha/lib/ev6-memcpy.S
arch/alpha/lib/ev6-memcpy.S
+2
-1
arch/alpha/lib/ev6-memset.S
arch/alpha/lib/ev6-memset.S
+6
-1
arch/alpha/lib/ev67-strcat.S
arch/alpha/lib/ev67-strcat.S
+2
-1
arch/alpha/lib/ev67-strchr.S
arch/alpha/lib/ev67-strchr.S
+2
-1
arch/alpha/lib/ev67-strlen.S
arch/alpha/lib/ev67-strlen.S
+2
-1
arch/alpha/lib/ev67-strncat.S
arch/alpha/lib/ev67-strncat.S
+2
-1
arch/alpha/lib/ev67-strrchr.S
arch/alpha/lib/ev67-strrchr.S
+2
-1
arch/alpha/lib/fpreg.c
arch/alpha/lib/fpreg.c
+7
-0
arch/alpha/lib/memchr.S
arch/alpha/lib/memchr.S
+2
-1
arch/alpha/lib/memcpy.c
arch/alpha/lib/memcpy.c
+2
-3
arch/alpha/lib/memmove.S
arch/alpha/lib/memmove.S
+2
-1
arch/alpha/lib/memset.S
arch/alpha/lib/memset.S
+6
-1
arch/alpha/lib/strcat.S
arch/alpha/lib/strcat.S
+2
-0
arch/alpha/lib/strchr.S
arch/alpha/lib/strchr.S
+2
-1
arch/alpha/lib/strcpy.S
arch/alpha/lib/strcpy.S
+2
-1
arch/alpha/lib/strlen.S
arch/alpha/lib/strlen.S
+2
-1
arch/alpha/lib/strncat.S
arch/alpha/lib/strncat.S
+2
-1
arch/alpha/lib/strncpy.S
arch/alpha/lib/strncpy.S
+2
-1
arch/alpha/lib/strrchr.S
arch/alpha/lib/strrchr.S
+2
-1
No files found.
arch/alpha/include/asm/Kbuild
View file @
00fc0e0d
...
...
@@ -3,6 +3,7 @@
generic-y += clkdev.h
generic-y += cputime.h
generic-y += exec.h
generic-y += export.h
generic-y += irq_work.h
generic-y += mcs_spinlock.h
generic-y += mm-arch-hooks.h
...
...
arch/alpha/kernel/Makefile
View file @
00fc0e0d
...
...
@@ -8,7 +8,7 @@ ccflags-y := -Wno-sign-compare
obj-y
:=
entry.o traps.o process.o osf_sys.o irq.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_SMP)
+=
smp.o
...
...
arch/alpha/kernel/alpha_ksyms.c
deleted
100644 → 0
View file @
784d5699
/*
* 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
);
arch/alpha/kernel/machvec_impl.h
View file @
00fc0e0d
...
...
@@ -144,9 +144,11 @@
else beforehand. Fine. We'll do it ourselves. */
#if 0
#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
#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
/* GENERIC */
arch/alpha/kernel/setup.c
View file @
00fc0e0d
...
...
@@ -115,6 +115,7 @@ unsigned long alpha_agpgart_size = DEFAULT_AGP_APER_SIZE;
#ifdef CONFIG_ALPHA_GENERIC
struct
alpha_machine_vector
alpha_mv
;
EXPORT_SYMBOL
(
alpha_mv
);
#endif
#ifndef alpha_using_srm
...
...
arch/alpha/lib/callback_srm.S
View file @
00fc0e0d
...
...
@@ -3,6 +3,7 @@
*/
#include <asm/console.h>
#include <asm/export.h>
.
text
#define HWRPB_CRB_OFFSET 0xc0
...
...
@@ -92,6 +93,10 @@ CALLBACK(reset_env, CCB_RESET_ENV, 4)
CALLBACK
(
save_env
,
CCB_SAVE_ENV
,
1
)
CALLBACK
(
pswitch
,
CCB_PSWITCH
,
3
)
CALLBACK
(
bios_emul
,
CCB_BIOS_EMUL
,
5
)
EXPORT_SYMBOL
(
callback_getenv
)
EXPORT_SYMBOL
(
callback_setenv
)
EXPORT_SYMBOL
(
callback_save_env
)
.
data
__alpha_using_srm
:
#
For
use
by
bootpheader
...
...
arch/alpha/lib/checksum.c
View file @
00fc0e0d
...
...
@@ -48,6 +48,7 @@ __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
(
__force
u64
)
saddr
+
(
__force
u64
)
daddr
+
(
__force
u64
)
sum
+
((
len
+
proto
)
<<
8
));
}
EXPORT_SYMBOL
(
csum_tcpudp_magic
);
__wsum
csum_tcpudp_nofold
(
__be32
saddr
,
__be32
daddr
,
__u32
len
,
__u8
proto
,
__wsum
sum
)
...
...
@@ -144,6 +145,7 @@ __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
{
return
(
__force
__sum16
)
~
do_csum
(
iph
,
ihl
*
4
);
}
EXPORT_SYMBOL
(
ip_fast_csum
);
/*
* computes the checksum of a memory block at buff, length len,
...
...
@@ -178,3 +180,4 @@ __sum16 ip_compute_csum(const void *buff, int len)
{
return
(
__force
__sum16
)
~
from64to16
(
do_csum
(
buff
,
len
));
}
EXPORT_SYMBOL
(
ip_compute_csum
);
arch/alpha/lib/clear_page.S
View file @
00fc0e0d
...
...
@@ -3,7 +3,7 @@
*
*
Zero
an
entire
page
.
*/
#include <asm/export.h>
.
text
.
align
4
.
global
clear_page
...
...
@@ -37,3 +37,4 @@ clear_page:
nop
.
end
clear_page
EXPORT_SYMBOL
(
clear_page
)
arch/alpha/lib/clear_user.S
View file @
00fc0e0d
...
...
@@ -24,6 +24,7 @@
*
Clobbers
:
*
$
1
,
$
2
,
$
3
,
$
4
,
$
5
,
$
6
*/
#include <asm/export.h>
/*
Allow
an
exception
for
an
insn
; exit if we get one. */
#define EX(x,y...) \
...
...
@@ -111,3 +112,4 @@ $exception:
ret
$
31
,
(
$
28
),
1
#
..
e1
:
.
end
__do_clear_user
EXPORT_SYMBOL
(
__do_clear_user
)
arch/alpha/lib/copy_page.S
View file @
00fc0e0d
...
...
@@ -3,7 +3,7 @@
*
*
Copy
an
entire
page
.
*/
#include <asm/export.h>
.
text
.
align
4
.
global
copy_page
...
...
@@ -47,3 +47,4 @@ copy_page:
nop
.
end
copy_page
EXPORT_SYMBOL
(
copy_page
)
arch/alpha/lib/copy_user.S
View file @
00fc0e0d
...
...
@@ -26,6 +26,8 @@
*
$
1
,
$
2
,
$
3
,
$
4
,
$
5
,
$
6
,
$
7
*/
#include <asm/export.h>
/*
Allow
an
exception
for
an
insn
; exit if we get one. */
#define EXI(x,y...) \
99:
x
,##
y
; \
...
...
@@ -143,3 +145,4 @@ $101:
ret
$
31
,(
$
28
),
1
.
end
__copy_user
EXPORT_SYMBOL
(
__copy_user
)
arch/alpha/lib/csum_ipv6_magic.S
View file @
00fc0e0d
...
...
@@ -12,6 +12,7 @@
*
added
by
Ivan
Kokshaysky
<
ink
@
jurassic
.
park
.
msu
.
ru
>
*/
#include <asm/export.h>
.
globl
csum_ipv6_magic
.
align
4
.
ent
csum_ipv6_magic
...
...
@@ -113,3 +114,4 @@ csum_ipv6_magic:
ret
#
..
e1
:
.
end
csum_ipv6_magic
EXPORT_SYMBOL
(
csum_ipv6_magic
)
arch/alpha/lib/csum_partial_copy.c
View file @
00fc0e0d
...
...
@@ -374,6 +374,7 @@ csum_partial_copy_from_user(const void __user *src, void *dst, int len,
}
return
(
__force
__wsum
)
checksum
;
}
EXPORT_SYMBOL
(
csum_partial_copy_from_user
);
__wsum
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
);
return
checksum
;
}
EXPORT_SYMBOL
(
csum_partial_copy_nocheck
);
arch/alpha/lib/dec_and_lock.c
View file @
00fc0e0d
...
...
@@ -7,6 +7,7 @@
#include <linux/spinlock.h>
#include <linux/atomic.h>
#include <linux/export.h>
asm
(
".text
\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)
spin_unlock
(
lock
);
return
0
;
}
EXPORT_SYMBOL
(
_atomic_dec_and_lock
);
arch/alpha/lib/divide.S
View file @
00fc0e0d
...
...
@@ -45,6 +45,7 @@
*
$
28
-
compare
status
*/
#include <asm/export.h>
#define halt .long 0
/*
...
...
@@ -151,6 +152,7 @@ ufunction:
addq
$
30
,
STACK
,
$
30
ret
$
31
,(
$
23
),
1
.
end
ufunction
EXPORT_SYMBOL
(
ufunction
)
/*
*
Uhh
..
Ugly
signed
division
.
I
'd rather not have it at all, but
...
...
@@ -193,3 +195,4 @@ sfunction:
addq
$
30
,
STACK
,
$
30
ret
$
31
,(
$
23
),
1
.
end
sfunction
EXPORT_SYMBOL
(
sfunction
)
arch/alpha/lib/ev6-clear_page.S
View file @
00fc0e0d
...
...
@@ -3,7 +3,7 @@
*
*
Zero
an
entire
page
.
*/
#include <asm/export.h>
.
text
.
align
4
.
global
clear_page
...
...
@@ -52,3 +52,4 @@ clear_page:
nop
.
end
clear_page
EXPORT_SYMBOL
(
clear_page
)
arch/alpha/lib/ev6-clear_user.S
View file @
00fc0e0d
...
...
@@ -43,6 +43,7 @@
*
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. */
#define EX(x,y...) \
99:
x
,##
y
; \
...
...
@@ -222,4 +223,4 @@ $exception: # Destination for exception recovery(?)
nop
#
..
E
..
..
:
ret
$
31
,
(
$
28
),
1
#
L0
..
..
..
:
L
U
L
U
.
end
__do_clear_user
EXPORT_SYMBOL
(
__do_clear_user
)
arch/alpha/lib/ev6-copy_page.S
View file @
00fc0e0d
...
...
@@ -56,7 +56,7 @@
destination
pages
are
in
the
dcache
,
but
it
is
my
guess
that
this
is
less
important
than
the
dcache
miss
case
.
*/
#include <asm/export.h>
.
text
.
align
4
.
global
copy_page
...
...
@@ -201,3 +201,4 @@ copy_page:
nop
.
end
copy_page
EXPORT_SYMBOL
(
copy_page
)
arch/alpha/lib/ev6-copy_user.S
View file @
00fc0e0d
...
...
@@ -37,6 +37,7 @@
*
L
-
lower
subcluster
; L0 - subcluster L0; L1 - subcluster L1
*/
#include <asm/export.h>
/*
Allow
an
exception
for
an
insn
; exit if we get one. */
#define EXI(x,y...) \
99:
x
,##
y
; \
...
...
@@ -256,4 +257,4 @@ $101:
ret
$
31
,(
$
28
),
1
#
L0
.
end
__copy_user
EXPORT_SYMBOL
(
__copy_user
)
arch/alpha/lib/ev6-csum_ipv6_magic.S
View file @
00fc0e0d
...
...
@@ -52,6 +52,7 @@
*
may
cause
additional
delay
in
rare
cases
(
load
-
load
replay
traps
)
.
*/
#include <asm/export.h>
.
globl
csum_ipv6_magic
.
align
4
.
ent
csum_ipv6_magic
...
...
@@ -148,3 +149,4 @@ csum_ipv6_magic:
ret
#
L0
:
L
U
L
U
.
end
csum_ipv6_magic
EXPORT_SYMBOL
(
csum_ipv6_magic
)
arch/alpha/lib/ev6-divide.S
View file @
00fc0e0d
...
...
@@ -55,6 +55,7 @@
*
Try
not
to
change
the
actual
algorithm
if
possible
for
consistency
.
*/
#include <asm/export.h>
#define halt .long 0
/*
...
...
@@ -205,6 +206,7 @@ ufunction:
addq
$
30
,
STACK
,
$
30
#
E
:
ret
$
31
,(
$
23
),
1
#
L0
:
L
U
U
L
.
end
ufunction
EXPORT_SYMBOL
(
ufunction
)
/*
*
Uhh
..
Ugly
signed
division
.
I
'd rather not have it at all, but
...
...
@@ -257,3 +259,4 @@ sfunction:
addq
$
30
,
STACK
,
$
30
#
E
:
ret
$
31
,(
$
23
),
1
#
L0
:
L
U
U
L
.
end
sfunction
EXPORT_SYMBOL
(
sfunction
)
arch/alpha/lib/ev6-memchr.S
View file @
00fc0e0d
...
...
@@ -27,7 +27,7 @@
*
L
-
lower
subcluster
; L0 - subcluster L0; L1 - subcluster L1
*
Try
not
to
change
the
actual
algorithm
if
possible
for
consistency
.
*/
#include <asm/export.h>
.
set
noreorder
.
set
noat
...
...
@@ -189,3 +189,4 @@ $not_found:
ret
#
L0
:
.
end
memchr
EXPORT_SYMBOL
(
memchr
)
arch/alpha/lib/ev6-memcpy.S
View file @
00fc0e0d
...
...
@@ -19,7 +19,7 @@
*
Temp
usage
notes
:
*
$
1
,
$
2
,
-
scratch
*/
#include <asm/export.h>
.
set
noreorder
.
set
noat
...
...
@@ -242,6 +242,7 @@ $nomoredata:
nop
#
E
:
.
end
memcpy
EXPORT_SYMBOL
(
memcpy
)
/*
For
backwards
module
compatibility
.
*/
__memcpy
=
memcpy
...
...
arch/alpha/lib/ev6-memset.S
View file @
00fc0e0d
...
...
@@ -26,7 +26,7 @@
*
as
fixes
will
need
to
be
made
in
multiple
places
.
The
performance
gain
*
is
worth
it
.
*/
#include <asm/export.h>
.
set
noat
.
set
noreorder
.
text
...
...
@@ -229,6 +229,7 @@ end_b:
nop
ret
$
31
,(
$
26
),
1
#
L0
:
.
end
___memset
EXPORT_SYMBOL
(
___memset
)
/
*
*
This
is
the
original
body
of
code
,
prior
to
replication
and
...
...
@@ -406,6 +407,7 @@ end:
nop
ret
$
31
,(
$
26
),
1
#
L0
:
.
end
__constant_c_memset
EXPORT_SYMBOL
(
__constant_c_memset
)
/
*
*
This
is
a
replicant
of
the
__constant_c_memset
code
,
rescheduled
...
...
@@ -594,6 +596,9 @@ end_w:
ret
$
31
,(
$
26
),
1
#
L0
:
.
end
__memsetw
EXPORT_SYMBOL
(
__memsetw
)
memset
=
___memset
__memset
=
___memset
EXPORT_SYMBOL
(
memset
)
EXPORT_SYMBOL
(
__memset
)
arch/alpha/lib/ev67-strcat.S
View file @
00fc0e0d
...
...
@@ -19,7 +19,7 @@
*
string
once
.
*/
#include <asm/export.h>
.
text
.
align
4
...
...
@@ -52,3 +52,4 @@ $found: cttz $2, $3 # U0 :
br
__stxcpy
#
L0
:
.
end
strcat
EXPORT_SYMBOL
(
strcat
)
arch/alpha/lib/ev67-strchr.S
View file @
00fc0e0d
...
...
@@ -15,7 +15,7 @@
*
L
-
lower
subcluster
; L0 - subcluster L0; L1 - subcluster L1
*
Try
not
to
change
the
actual
algorithm
if
possible
for
consistency
.
*/
#include <asm/export.h>
#include <asm/regdef.h>
.
set
noreorder
...
...
@@ -86,3 +86,4 @@ $found: negq t0, t1 # E : clear all but least set bit
ret
#
L0
:
.
end
strchr
EXPORT_SYMBOL
(
strchr
)
arch/alpha/lib/ev67-strlen.S
View file @
00fc0e0d
...
...
@@ -17,7 +17,7 @@
*
U
-
upper
subcluster
; U0 - subcluster U0; U1 - subcluster U1
*
L
-
lower
subcluster
; L0 - subcluster L0; L1 - subcluster L1
*/
#include <asm/export.h>
.
set
noreorder
.
set
noat
...
...
@@ -47,3 +47,4 @@ $found:
ret
$
31
,
(
$
26
)
#
L0
:
.
end
strlen
EXPORT_SYMBOL
(
strlen
)
arch/alpha/lib/ev67-strncat.S
View file @
00fc0e0d
...
...
@@ -20,7 +20,7 @@
*
Try
not
to
change
the
actual
algorithm
if
possible
for
consistency
.
*/
#include <asm/export.h>
.
text
.
align
4
...
...
@@ -92,3 +92,4 @@ $zerocount:
ret
#
L0
:
.
end
strncat
EXPORT_SYMBOL
(
strncat
)
arch/alpha/lib/ev67-strrchr.S
View file @
00fc0e0d
...
...
@@ -18,7 +18,7 @@
*
L
-
lower
subcluster
; L0 - subcluster L0; L1 - subcluster L1
*/
#include <asm/export.h>
#include <asm/regdef.h>
.
set
noreorder
...
...
@@ -107,3 +107,4 @@ $eos:
nop
.
end
strrchr
EXPORT_SYMBOL
(
strrchr
)
arch/alpha/lib/fpreg.c
View file @
00fc0e0d
...
...
@@ -4,6 +4,9 @@
* (C) Copyright 1998 Linus Torvalds
*/
#include <linux/compiler.h>
#include <linux/export.h>
#if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
#define STT(reg,val) asm volatile ("ftoit $f"#reg",%0" : "=r"(val));
#else
...
...
@@ -52,6 +55,7 @@ alpha_read_fp_reg (unsigned long reg)
}
return
val
;
}
EXPORT_SYMBOL
(
alpha_read_fp_reg
);
#if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
#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)
case
31
:
LDT
(
31
,
val
);
break
;
}
}
EXPORT_SYMBOL
(
alpha_write_fp_reg
);
#if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
#define STS(reg,val) asm volatile ("ftois $f"#reg",%0" : "=r"(val));
...
...
@@ -146,6 +151,7 @@ alpha_read_fp_reg_s (unsigned long reg)
}
return
val
;
}
EXPORT_SYMBOL
(
alpha_read_fp_reg_s
);
#if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
#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)
case
31
:
LDS
(
31
,
val
);
break
;
}
}
EXPORT_SYMBOL
(
alpha_write_fp_reg_s
);
arch/alpha/lib/memchr.S
View file @
00fc0e0d
...
...
@@ -31,7 +31,7 @@ For correctness consider that:
-
only
minimum
number
of
quadwords
may
be
accessed
-
the
third
argument
is
an
unsigned
long
*/
#include <asm/export.h>
.
set
noreorder
.
set
noat
...
...
@@ -162,3 +162,4 @@ $not_found:
ret
#
..
e1
:
.
end
memchr
EXPORT_SYMBOL
(
memchr
)
arch/alpha/lib/memcpy.c
View file @
00fc0e0d
...
...
@@ -16,6 +16,7 @@
*/
#include <linux/types.h>
#include <linux/export.h>
/*
* 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)
__memcpy_unaligned_up
((
unsigned
long
)
dest
,
(
unsigned
long
)
src
,
n
);
return
dest
;
}
/* For backward modules compatibility, define __memcpy. */
asm
(
"__memcpy = memcpy; .globl __memcpy"
);
EXPORT_SYMBOL
(
memcpy
);
arch/alpha/lib/memmove.S
View file @
00fc0e0d
...
...
@@ -6,7 +6,7 @@
*
This
is
hand
-
massaged
output
from
the
original
memcpy
.
c
.
We
defer
to
*
memcpy
whenever
possible
; the backwards copy loops are not unrolled.
*/
#include <asm/export.h>
.
set
noat
.
set
noreorder
.
text
...
...
@@ -179,3 +179,4 @@ $egress:
nop
.
end
memmove
EXPORT_SYMBOL
(
memmove
)
arch/alpha/lib/memset.S
View file @
00fc0e0d
...
...
@@ -13,7 +13,7 @@
*
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
..
)
*/
#include <asm/export.h>
.
set
noat
.
set
noreorder
.
text
...
...
@@ -106,6 +106,8 @@ within_one_quad:
end
:
ret
$
31
,(
$
26
),
1
/*
E1
*/
.
end
___memset
EXPORT_SYMBOL
(
___memset
)
EXPORT_SYMBOL
(
__constant_c_memset
)
.
align
5
.
ent
__memsetw
...
...
@@ -122,6 +124,9 @@ __memsetw:
br
__constant_c_memset
/*
..
E1
*/
.
end
__memsetw
EXPORT_SYMBOL
(
__memsetw
)
memset
=
___memset
__memset
=
___memset
EXPORT_SYMBOL
(
memset
)
EXPORT_SYMBOL
(
__memset
)
arch/alpha/lib/strcat.S
View file @
00fc0e0d
...
...
@@ -4,6 +4,7 @@
*
*
Append
a
null
-
terminated
string
from
SRC
to
DST
.
*/
#include <asm/export.h>
.
text
...
...
@@ -50,3 +51,4 @@ $found: negq $2, $3 # clear all but least set bit
br
__stxcpy
.
end
strcat
EXPORT_SYMBOL
(
strcat
)
;
arch/alpha/lib/strchr.S
View file @
00fc0e0d
...
...
@@ -5,7 +5,7 @@
*
Return
the
address
of
a
given
character
within
a
null
-
terminated
*
string
,
or
null
if
it
is
not
found
.
*/
#include <asm/export.h>
#include <asm/regdef.h>
.
set
noreorder
...
...
@@ -68,3 +68,4 @@ $retnull:
ret
#
..
e1
:
.
end
strchr
EXPORT_SYMBOL
(
strchr
)
arch/alpha/lib/strcpy.S
View file @
00fc0e0d
...
...
@@ -5,7 +5,7 @@
*
Copy
a
null
-
terminated
string
from
SRC
to
DST
.
Return
a
pointer
*
to
the
null
-
terminator
in
the
source
.
*/
#include <asm/export.h>
.
text
.
align
3
...
...
@@ -21,3 +21,4 @@ strcpy:
br
__stxcpy
#
do
the
copy
.
end
strcpy
EXPORT_SYMBOL
(
strcpy
)
arch/alpha/lib/strlen.S
View file @
00fc0e0d
...
...
@@ -11,7 +11,7 @@
*
do
this
instead
of
the
9
instructions
that
*
binary
search
needs
)
.
*/
#include <asm/export.h>
.
set
noreorder
.
set
noat
...
...
@@ -55,3 +55,4 @@ done: subq $0, $16, $0
ret
$
31
,
(
$
26
)
.
end
strlen
EXPORT_SYMBOL
(
strlen
)
arch/alpha/lib/strncat.S
View file @
00fc0e0d
...
...
@@ -9,7 +9,7 @@
*
past
count
,
whereas
libc
may
write
to
count
+
1
.
This
follows
the
generic
*
implementation
in
lib
/
string
.
c
and
is
,
IMHO
,
more
sensible
.
*/
#include <asm/export.h>
.
text
.
align
3
...
...
@@ -82,3 +82,4 @@ $zerocount:
ret
.
end
strncat
EXPORT_SYMBOL
(
strncat
)
arch/alpha/lib/strncpy.S
View file @
00fc0e0d
...
...
@@ -10,7 +10,7 @@
*
version
has
cropped
that
bit
o
' nastiness as well as assuming that
*
__stxncpy
is
in
range
of
a
branch
.
*/
#include <asm/export.h>
.
set
noat
.
set
noreorder
...
...
@@ -79,3 +79,4 @@ $zerolen:
ret
.
end
strncpy
EXPORT_SYMBOL
(
strncpy
)
arch/alpha/lib/strrchr.S
View file @
00fc0e0d
...
...
@@ -5,7 +5,7 @@
*
Return
the
address
of
the
last
occurrence
of
a
given
character
*
within
a
null
-
terminated
string
,
or
null
if
it
is
not
found
.
*/
#include <asm/export.h>
#include <asm/regdef.h>
.
set
noreorder
...
...
@@ -85,3 +85,4 @@ $retnull:
ret
#
..
e1
:
.
end
strrchr
EXPORT_SYMBOL
(
strrchr
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment