Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
00fc0e0d
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
00fc0e0d
编写于
1月 11, 2016
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
alpha: move exports to actual definitions
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
784d5699
变更
41
隐藏空白更改
内联
并排
Showing
41 changed file
with
99 addition
and
131 deletion
+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
未找到文件。
arch/alpha/include/asm/Kbuild
浏览文件 @
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
浏览文件 @
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
已删除
100644 → 0
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录