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
423f8711
Commit
423f8711
authored
Jul 22, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://kernel.bkbits.net/davem/net-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
02bc27cb
84e47b6a
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
161 additions
and
73 deletions
+161
-73
MAINTAINERS
MAINTAINERS
+2
-2
arch/sparc/lib/copy_user.S
arch/sparc/lib/copy_user.S
+38
-38
arch/sparc64/Kconfig
arch/sparc64/Kconfig
+2
-1
arch/sparc64/defconfig
arch/sparc64/defconfig
+6
-5
arch/sparc64/kernel/entry.S
arch/sparc64/kernel/entry.S
+21
-7
arch/sparc64/kernel/process.c
arch/sparc64/kernel/process.c
+6
-1
arch/sparc64/kernel/sbus.c
arch/sparc64/kernel/sbus.c
+50
-17
arch/sparc64/kernel/sparc64_ksyms.c
arch/sparc64/kernel/sparc64_ksyms.c
+2
-1
arch/sparc64/kernel/systbls.S
arch/sparc64/kernel/systbls.S
+4
-1
include/asm-sparc/pci.h
include/asm-sparc/pci.h
+7
-0
include/asm-sparc64/siginfo.h
include/asm-sparc64/siginfo.h
+8
-0
include/asm-sparc64/signal.h
include/asm-sparc64/signal.h
+11
-0
include/asm-sparc64/ttable.h
include/asm-sparc64/ttable.h
+4
-0
No files found.
MAINTAINERS
View file @
423f8711
...
...
@@ -1945,8 +1945,8 @@ L: ultralinux@vger.kernel.org
S: Maintained
SPARC (sparc32):
P:
Keith M. Wesolowski
M: w
esolows@foobazco.org
P:
William L. Irwin
M: w
li@holomorphy.com
L: sparclinux@vger.kernel.org
S: Maintained
...
...
arch/sparc/lib/copy_user.S
View file @
423f8711
...
...
@@ -64,52 +64,52 @@
/*
Both
these
macros
have
to
start
with
exactly
the
same
insn
*/
#define MOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3, t4, t5, t6, t7) \
ldd
[%
src
+
offset
+
0x00
],
%t0
; \
ldd
[%
src
+
offset
+
0x08
],
%t2
; \
ldd
[%
src
+
offset
+
0x10
],
%t4
; \
ldd
[%
src
+
offset
+
0x18
],
%t6
; \
st
%t0
,
[%
dst
+
offset
+
0x00
]
; \
st
%t1
,
[%
dst
+
offset
+
0x04
]
; \
st
%t2
,
[%
dst
+
offset
+
0x08
]
; \
st
%t3
,
[%
dst
+
offset
+
0x0c
]
; \
st
%t4
,
[%
dst
+
offset
+
0x10
]
; \
st
%t5
,
[%
dst
+
offset
+
0x14
]
; \
st
%t6
,
[%
dst
+
offset
+
0x18
]
; \
st
%t7
,
[%
dst
+
offset
+
0x1c
]
;
ldd
[%
src
+
(
offset
)
+
0x00
],
%t0
; \
ldd
[%
src
+
(
offset
)
+
0x08
],
%t2
; \
ldd
[%
src
+
(
offset
)
+
0x10
],
%t4
; \
ldd
[%
src
+
(
offset
)
+
0x18
],
%t6
; \
st
%t0
,
[%
dst
+
(
offset
)
+
0x00
]
; \
st
%t1
,
[%
dst
+
(
offset
)
+
0x04
]
; \
st
%t2
,
[%
dst
+
(
offset
)
+
0x08
]
; \
st
%t3
,
[%
dst
+
(
offset
)
+
0x0c
]
; \
st
%t4
,
[%
dst
+
(
offset
)
+
0x10
]
; \
st
%t5
,
[%
dst
+
(
offset
)
+
0x14
]
; \
st
%t6
,
[%
dst
+
(
offset
)
+
0x18
]
; \
st
%t7
,
[%
dst
+
(
offset
)
+
0x1c
]
;
#define MOVE_BIGALIGNCHUNK(src, dst, offset, t0, t1, t2, t3, t4, t5, t6, t7) \
ldd
[%
src
+
offset
+
0x00
],
%t0
; \
ldd
[%
src
+
offset
+
0x08
],
%t2
; \
ldd
[%
src
+
offset
+
0x10
],
%t4
; \
ldd
[%
src
+
offset
+
0x18
],
%t6
; \
std
%t0
,
[%
dst
+
offset
+
0x00
]
; \
std
%t2
,
[%
dst
+
offset
+
0x08
]
; \
std
%t4
,
[%
dst
+
offset
+
0x10
]
; \
std
%t6
,
[%
dst
+
offset
+
0x18
]
;
ldd
[%
src
+
(
offset
)
+
0x00
],
%t0
; \
ldd
[%
src
+
(
offset
)
+
0x08
],
%t2
; \
ldd
[%
src
+
(
offset
)
+
0x10
],
%t4
; \
ldd
[%
src
+
(
offset
)
+
0x18
],
%t6
; \
std
%t0
,
[%
dst
+
(
offset
)
+
0x00
]
; \
std
%t2
,
[%
dst
+
(
offset
)
+
0x08
]
; \
std
%t4
,
[%
dst
+
(
offset
)
+
0x10
]
; \
std
%t6
,
[%
dst
+
(
offset
)
+
0x18
]
;
#define MOVE_LASTCHUNK(src, dst, offset, t0, t1, t2, t3) \
ldd
[%
src
-
offset
-
0x10
],
%t0
; \
ldd
[%
src
-
offset
-
0x08
],
%t2
; \
st
%t0
,
[%
dst
-
offset
-
0x10
]
; \
st
%t1
,
[%
dst
-
offset
-
0x0c
]
; \
st
%t2
,
[%
dst
-
offset
-
0x08
]
; \
st
%t3
,
[%
dst
-
offset
-
0x04
]
;
ldd
[%
src
-
(
offset
)
-
0x10
],
%t0
; \
ldd
[%
src
-
(
offset
)
-
0x08
],
%t2
; \
st
%t0
,
[%
dst
-
(
offset
)
-
0x10
]
; \
st
%t1
,
[%
dst
-
(
offset
)
-
0x0c
]
; \
st
%t2
,
[%
dst
-
(
offset
)
-
0x08
]
; \
st
%t3
,
[%
dst
-
(
offset
)
-
0x04
]
;
#define MOVE_HALFCHUNK(src, dst, offset, t0, t1, t2, t3) \
lduh
[%
src
+
offset
+
0x00
],
%t0
; \
lduh
[%
src
+
offset
+
0x02
],
%t1
; \
lduh
[%
src
+
offset
+
0x04
],
%t2
; \
lduh
[%
src
+
offset
+
0x06
],
%t3
; \
sth
%t0
,
[%
dst
+
offset
+
0x00
]
; \
sth
%t1
,
[%
dst
+
offset
+
0x02
]
; \
sth
%t2
,
[%
dst
+
offset
+
0x04
]
; \
sth
%t3
,
[%
dst
+
offset
+
0x06
]
;
lduh
[%
src
+
(
offset
)
+
0x00
],
%t0
; \
lduh
[%
src
+
(
offset
)
+
0x02
],
%t1
; \
lduh
[%
src
+
(
offset
)
+
0x04
],
%t2
; \
lduh
[%
src
+
(
offset
)
+
0x06
],
%t3
; \
sth
%t0
,
[%
dst
+
(
offset
)
+
0x00
]
; \
sth
%t1
,
[%
dst
+
(
offset
)
+
0x02
]
; \
sth
%t2
,
[%
dst
+
(
offset
)
+
0x04
]
; \
sth
%t3
,
[%
dst
+
(
offset
)
+
0x06
]
;
#define MOVE_SHORTCHUNK(src, dst, offset, t0, t1) \
ldub
[%
src
-
offset
-
0x02
],
%t0
; \
ldub
[%
src
-
offset
-
0x01
],
%t1
; \
stb
%t0
,
[%
dst
-
offset
-
0x02
]
; \
stb
%t1
,
[%
dst
-
offset
-
0x01
]
;
ldub
[%
src
-
(
offset
)
-
0x02
],
%t0
; \
ldub
[%
src
-
(
offset
)
-
0x01
],
%t1
; \
stb
%t0
,
[%
dst
-
(
offset
)
-
0x02
]
; \
stb
%t1
,
[%
dst
-
(
offset
)
-
0x01
]
;
.
text
.
align
4
...
...
arch/sparc64/Kconfig
View file @
423f8711
...
...
@@ -382,6 +382,7 @@ source "fs/Kconfig.binfmt"
config SUNOS_EMUL
bool "SunOS binary emulation"
depends on BINFMT_AOUT32
help
This allows you to run most SunOS binaries. If you want to do this,
say Y here and place appropriate files in /usr/gnemul/sunos. See
...
...
@@ -391,7 +392,7 @@ config SUNOS_EMUL
config SOLARIS_EMUL
tristate "Solaris binary emulation (EXPERIMENTAL)"
depends on EXPERIMENTAL
depends on
SPARC32_COMPAT &&
EXPERIMENTAL
help
This is experimental code which will enable you to run (many)
Solaris binaries on your SPARC Linux machine.
...
...
arch/sparc64/defconfig
View file @
423f8711
...
...
@@ -201,8 +201,6 @@ CONFIG_SUN_OPENPROMIO=m
CONFIG_SUN_MOSTEK_RTC=y
CONFIG_OBP_FLASH=m
# CONFIG_SUN_BPP is not set
# CONFIG_SUN_VIDEOPIX is not set
# CONFIG_SUN_AURORA is not set
#
# Memory Technology Devices (MTD)
...
...
@@ -346,10 +344,8 @@ CONFIG_SCSI_SATA_VIA=m
CONFIG_SCSI_SATA_VITESSE=m
# CONFIG_SCSI_BUSLOGIC is not set
CONFIG_SCSI_DMX3191D=m
# CONFIG_SCSI_EATA is not set
CONFIG_SCSI_EATA_PIO=m
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
CONFIG_SCSI_IPS=m
CONFIG_SCSI_INIA100=m
CONFIG_SCSI_PPA=m
...
...
@@ -377,7 +373,7 @@ CONFIG_SCSI_QLA2XXX=y
# CONFIG_SCSI_QLA6312 is not set
# CONFIG_SCSI_QLA6322 is not set
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_DC390T=m
# CONFIG_SCSI_DC390T is not set
CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_SUNESP=y
...
...
@@ -1132,12 +1128,15 @@ CONFIG_I2C_VOODOO3=m
#
CONFIG_I2C_SENSOR=m
CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_DS1621=m
CONFIG_SENSORS_FSCHER=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_IT87=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_LM77=m
CONFIG_SENSORS_LM78=m
CONFIG_SENSORS_LM80=m
CONFIG_SENSORS_LM83=m
...
...
@@ -1240,6 +1239,7 @@ CONFIG_BEFS_FS=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BFS_FS=m
CONFIG_EFS_FS=m
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
CONFIG_CRAMFS=m
CONFIG_VXFS_FS=m
CONFIG_HPFS_FS=m
...
...
@@ -1606,6 +1606,7 @@ CONFIG_USB_HPUSBSCSI=m
# CONFIG_USB_OV511 is not set
CONFIG_USB_PWC=m
# CONFIG_USB_SE401 is not set
CONFIG_USB_SN9C102=m
# CONFIG_USB_STV680 is not set
CONFIG_USB_W9968CF=m
...
...
arch/sparc64/kernel/entry.S
View file @
423f8711
...
...
@@ -1496,28 +1496,30 @@ sunos_getgid:
/
*
SunOS
's execv() call only specifies the argv argument, the
*
environment
settings
are
the
same
as
the
calling
processes
.
*/
.
globl
sunos_execv
,
sys_execve
,
sys32_execve
.
globl
sunos_execv
sys_execve
:
sethi
%
hi
(
sparc_execve
),
%
g1
ba
,
pt
%
xcc
,
execve_merge
or
%
g1
,
%
lo
(
sparc_execve
),
%
g1
#ifdef CONFIG_COMPAT
.
globl
sys_execve
sunos_execv
:
stx
%
g0
,
[%
sp
+
PTREGS_OFF
+
PT_V9_I2
]
.
globl
sys32_execve
sys32_execve
:
sethi
%
hi
(
sparc32_execve
),
%
g1
or
%
g1
,
%
lo
(
sparc32_execve
),
%
g1
#endif
execve_merge
:
flushw
jmpl
%
g1
,
%
g0
add
%
sp
,
PTREGS_OFF
,
%
o0
.
globl
sys_pipe
,
sys_sigpause
,
sys_nis_syscall
.
globl
sys_sigsuspend
,
sys_rt_sigsuspend
,
sys32_rt_sigsuspend
.
globl
sys_sigsuspend
,
sys_rt_sigsuspend
.
globl
sys_rt_sigreturn
.
globl
sys32_sigreturn
,
sys32_rt_sigreturn
.
globl
sys32_execve
,
sys_ptrace
.
globl
sys_sigaltstack
,
sys32_sigaltstack
.
globl
sys32_sigstack
.
globl
sys_ptrace
.
globl
sys_sigaltstack
.
align
32
sys_pipe
:
ba
,
pt
%
xcc
,
sparc_pipe
add
%
sp
,
PTREGS_OFF
,
%
o0
...
...
@@ -1528,12 +1530,15 @@ sys_memory_ordering:
add
%
sp
,
PTREGS_OFF
,
%
o1
sys_sigaltstack
:
ba
,
pt
%
xcc
,
do_sigaltstack
add
%
i6
,
STACK_BIAS
,
%
o2
#ifdef CONFIG_COMPAT
.
globl
sys32_sigstack
sys32_sigstack
:
ba
,
pt
%
xcc
,
do_sys32_sigstack
mov
%
i6
,
%
o2
.
globl
sys32_sigaltstack
sys32_sigaltstack
:
ba
,
pt
%
xcc
,
do_sys32_sigaltstack
mov
%
i6
,
%
o2
#endif
.
align
32
sys_sigsuspend
:
add
%
sp
,
PTREGS_OFF
,
%
o0
call
do_sigsuspend
...
...
@@ -1544,31 +1549,40 @@ sys_rt_sigsuspend: /* NOTE: %o0,%o1 have a correct value already */
call
do_rt_sigsuspend
add
%
o7
,
1
f
-
.
-
4
,
%
o7
nop
#ifdef CONFIG_COMPAT
.
globl
sys32_rt_sigsuspend
sys32_rt_sigsuspend
:
/
*
NOTE
:
%
o0
,%
o1
have
a
correct
value
already
*/
srl
%
o0
,
0
,
%
o0
add
%
sp
,
PTREGS_OFF
,
%
o2
call
do_rt_sigsuspend32
add
%
o7
,
1
f
-
.
-
4
,
%
o7
#endif
/
*
NOTE
:
%
o0
has
a
correct
value
already
*/
sys_sigpause
:
add
%
sp
,
PTREGS_OFF
,
%
o1
call
do_sigpause
add
%
o7
,
1
f
-
.
-
4
,
%
o7
nop
#ifdef CONFIG_COMPAT
.
globl
sys32_sigreturn
sys32_sigreturn
:
add
%
sp
,
PTREGS_OFF
,
%
o0
call
do_sigreturn32
add
%
o7
,
1
f
-
.
-
4
,
%
o7
nop
#endif
sys_rt_sigreturn
:
add
%
sp
,
PTREGS_OFF
,
%
o0
call
do_rt_sigreturn
add
%
o7
,
1
f
-
.
-
4
,
%
o7
nop
#ifdef CONFIG_COMPAT
.
globl
sys32_rt_sigreturn
sys32_rt_sigreturn
:
add
%
sp
,
PTREGS_OFF
,
%
o0
call
do_rt_sigreturn32
add
%
o7
,
1
f
-
.
-
4
,
%
o7
nop
#endif
sys_ptrace
:
add
%
sp
,
PTREGS_OFF
,
%
o0
call
do_ptrace
add
%
o7
,
1
f
-
.
-
4
,
%
o7
...
...
arch/sparc64/kernel/process.c
View file @
423f8711
...
...
@@ -12,6 +12,7 @@
#include <stdarg.h>
#include <linux/config.h>
#include <linux/errno.h>
#include <linux/module.h>
#include <linux/sched.h>
...
...
@@ -28,6 +29,7 @@
#include <linux/config.h>
#include <linux/reboot.h>
#include <linux/delay.h>
#include <linux/compat.h>
#include <linux/init.h>
#include <asm/oplib.h>
...
...
@@ -588,10 +590,13 @@ asmlinkage long sparc_do_fork(unsigned long clone_flags,
clone_flags
&=
~
CLONE_IDLETASK
;
#ifdef CONFIG_COMPAT
if
(
test_thread_flag
(
TIF_32BIT
))
{
parent_tid_ptr
=
compat_ptr
(
regs
->
u_regs
[
UREG_I2
]);
child_tid_ptr
=
compat_ptr
(
regs
->
u_regs
[
UREG_I4
]);
}
else
{
}
else
#endif
{
parent_tid_ptr
=
(
int
__user
*
)
regs
->
u_regs
[
UREG_I2
];
child_tid_ptr
=
(
int
__user
*
)
regs
->
u_regs
[
UREG_I4
];
}
...
...
arch/sparc64/kernel/sbus.c
View file @
423f8711
...
...
@@ -28,10 +28,10 @@
*
* On SYSIO, using an 8K page size we have 1GB of SBUS
* DMA space mapped. We divide this space into equally
* sized clusters.
Currently we allow clusters up to a
*
size of 1MB. If anything begins to generate DMA
*
mapping requests larger than this we will need to
*
increase things a bit
.
* sized clusters.
We allocate a DMA mapping from the
*
cluster that matches the order of the allocation, or
*
if the order is greater than the number of clusters,
*
we try to allocate from the last cluster
.
*/
#define NCLUSTERS 8UL
...
...
@@ -134,12 +134,17 @@ static void strbuf_flush(struct sbus_iommu *iommu, u32 base, unsigned long npage
static
iopte_t
*
alloc_streaming_cluster
(
struct
sbus_iommu
*
iommu
,
unsigned
long
npages
)
{
iopte_t
*
iopte
,
*
limit
,
*
first
;
unsigned
long
cnum
,
ent
,
flush_point
;
iopte_t
*
iopte
,
*
limit
,
*
first
,
*
cluster
;
unsigned
long
cnum
,
ent
,
nent
,
flush_point
,
found
;
cnum
=
0
;
nent
=
1
;
while
((
1UL
<<
cnum
)
<
npages
)
cnum
++
;
if
(
cnum
>=
NCLUSTERS
)
{
nent
=
1UL
<<
(
cnum
-
NCLUSTERS
);
cnum
=
NCLUSTERS
-
1
;
}
iopte
=
iommu
->
page_table
+
(
cnum
*
CLUSTER_NPAGES
);
if
(
cnum
==
0
)
...
...
@@ -152,22 +157,31 @@ static iopte_t *alloc_streaming_cluster(struct sbus_iommu *iommu, unsigned long
flush_point
=
iommu
->
alloc_info
[
cnum
].
flush
;
first
=
iopte
;
cluster
=
NULL
;
found
=
0
;
for
(;;)
{
if
(
iopte_val
(
*
iopte
)
==
0UL
)
{
if
((
iopte
+
(
1
<<
cnum
))
>=
limit
)
ent
=
0
;
else
ent
=
ent
+
1
;
iommu
->
alloc_info
[
cnum
].
next
=
ent
;
if
(
ent
==
flush_point
)
__iommu_flushall
(
iommu
);
break
;
found
++
;
if
(
!
cluster
)
cluster
=
iopte
;
}
else
{
/* Used cluster in the way */
cluster
=
NULL
;
found
=
0
;
}
if
(
found
==
nent
)
break
;
iopte
+=
(
1
<<
cnum
);
ent
++
;
if
(
iopte
>=
limit
)
{
iopte
=
(
iommu
->
page_table
+
(
cnum
*
CLUSTER_NPAGES
));
ent
=
0
;
/* Multiple cluster allocations must not wrap */
cluster
=
NULL
;
found
=
0
;
}
if
(
ent
==
flush_point
)
__iommu_flushall
(
iommu
);
...
...
@@ -175,8 +189,19 @@ static iopte_t *alloc_streaming_cluster(struct sbus_iommu *iommu, unsigned long
goto
bad
;
}
/* ent/iopte points to the last cluster entry we're going to use,
* so save our place for the next allocation.
*/
if
((
iopte
+
(
1
<<
cnum
))
>=
limit
)
ent
=
0
;
else
ent
=
ent
+
1
;
iommu
->
alloc_info
[
cnum
].
next
=
ent
;
if
(
ent
==
flush_point
)
__iommu_flushall
(
iommu
);
/* I've got your streaming cluster right here buddy boy... */
return
iopte
;
return
cluster
;
bad:
printk
(
KERN_EMERG
"sbus: alloc_streaming_cluster of npages(%ld) failed!
\n
"
,
...
...
@@ -186,15 +211,23 @@ static iopte_t *alloc_streaming_cluster(struct sbus_iommu *iommu, unsigned long
static
void
free_streaming_cluster
(
struct
sbus_iommu
*
iommu
,
u32
base
,
unsigned
long
npages
)
{
unsigned
long
cnum
,
ent
;
unsigned
long
cnum
,
ent
,
nent
;
iopte_t
*
iopte
;
cnum
=
0
;
nent
=
1
;
while
((
1UL
<<
cnum
)
<
npages
)
cnum
++
;
if
(
cnum
>=
NCLUSTERS
)
{
nent
=
1UL
<<
(
cnum
-
NCLUSTERS
);
cnum
=
NCLUSTERS
-
1
;
}
ent
=
(
base
&
CLUSTER_MASK
)
>>
(
IO_PAGE_SHIFT
+
cnum
);
iopte
=
iommu
->
page_table
+
((
base
-
MAP_BASE
)
>>
IO_PAGE_SHIFT
);
iopte_val
(
*
iopte
)
=
0UL
;
do
{
iopte_val
(
*
iopte
)
=
0UL
;
iopte
+=
1
<<
cnum
;
}
while
(
--
nent
);
/* If the global flush might not have caught this entry,
* adjust the flush point such that we will flush before
...
...
arch/sparc64/kernel/sparc64_ksyms.c
View file @
423f8711
...
...
@@ -350,9 +350,10 @@ EXPORT_SYMBOL(csum_partial);
EXPORT_SYMBOL
(
csum_partial_copy_sparc64
);
EXPORT_SYMBOL
(
ip_fast_csum
);
/* Moving data to/from userspace. */
/* Moving data to/from
/in
userspace. */
EXPORT_SYMBOL
(
__copy_to_user
);
EXPORT_SYMBOL
(
__copy_from_user
);
EXPORT_SYMBOL
(
__copy_in_user
);
EXPORT_SYMBOL
(
__strncpy_from_user
);
EXPORT_SYMBOL
(
__bzero_noasi
);
...
...
arch/sparc64/kernel/systbls.S
View file @
423f8711
...
...
@@ -15,6 +15,7 @@
.
text
.
align
4
#ifdef CONFIG_COMPAT
/
*
First
,
the
32
-
bit
Linux
native
syscall
table
.
*/
.
globl
sys_call_table32
...
...
@@ -77,6 +78,8 @@ sys_call_table32:
.
word
sys_mq_timedsend
,
sys_mq_timedreceive
,
compat_sys_mq_notify
,
compat_sys_mq_getsetattr
,
sys_ni_syscall
/*
280
*/
.
word
sys_ni_syscall
,
sys_ni_syscall
,
sys_ni_syscall
#endif /* CONFIG_COMPAT */
/
*
Now
the
64
-
bit
native
Linux
syscall
table
.
*/
.
align
4
...
...
@@ -85,7 +88,7 @@ sys_call_table64:
sys_call_table
:
/*
0
*/
.
word
sys_restart_syscall
,
sparc_exit
,
sys_fork
,
sys_read
,
sys_write
/*
5
*/
.
word
sys_open
,
sys_close
,
sys_wait4
,
sys_creat
,
sys_link
/*
10
*/
.
word
sys_unlink
,
s
unos_execv
,
sys_chdir
,
sys_chown
,
sys_mknod
/*
10
*/
.
word
sys_unlink
,
s
ys_nis_syscall
,
sys_chdir
,
sys_chown
,
sys_mknod
/*
15
*/
.
word
sys_chmod
,
sys_lchown
,
sparc_brk
,
sys_perfctr
,
sys_lseek
/*
20
*/
.
word
sys_getpid
,
sys_capget
,
sys_capset
,
sys_setuid
,
sys_getuid
/*
25
*/
.
word
sys_nis_syscall
,
sys_ptrace
,
sys_alarm
,
sys_sigaltstack
,
sys_nis_syscall
...
...
include/asm-sparc/pci.h
View file @
423f8711
...
...
@@ -154,6 +154,13 @@ static inline void pcibios_add_platform_entries(struct pci_dev *dev)
{
}
#define PCI_DMA_ERROR_CODE (~(dma_addr_t)0x0)
static
inline
int
pci_dma_mapping_error
(
dma_addr_t
dma_addr
)
{
return
(
dma_addr
==
PCI_DMA_ERROR_CODE
);
}
#endif
/* __KERNEL__ */
/* generic pci stuff */
...
...
include/asm-sparc64/siginfo.h
View file @
423f8711
...
...
@@ -14,8 +14,11 @@
#ifdef __KERNEL__
#include <linux/config.h>
#include <linux/compat.h>
#ifdef CONFIG_COMPAT
typedef
union
sigval32
{
int
sival_int
;
u32
sival_ptr
;
...
...
@@ -72,6 +75,7 @@ typedef struct siginfo32 {
}
_sigpoll
;
}
_sifields
;
}
siginfo_t32
;
#endif
/* CONFIG_COMPAT */
#endif
/* __KERNEL__ */
...
...
@@ -85,6 +89,8 @@ typedef struct siginfo32 {
#ifdef __KERNEL__
#ifdef CONFIG_COMPAT
typedef
struct
sigevent32
{
sigval_t32
sigev_value
;
int
sigev_signo
;
...
...
@@ -101,6 +107,8 @@ typedef struct sigevent32 {
extern
int
copy_siginfo_to_user32
(
siginfo_t32
__user
*
to
,
siginfo_t
*
from
);
#endif
/* CONFIG_COMPAT */
#endif
/* __KERNEL__ */
#endif
include/asm-sparc64/signal.h
View file @
423f8711
...
...
@@ -6,6 +6,7 @@
#ifdef __KERNEL__
#ifndef __ASSEMBLY__
#include <linux/config.h>
#include <linux/personality.h>
#include <linux/types.h>
#include <linux/compat.h>
...
...
@@ -208,12 +209,15 @@ struct __new_sigaction {
};
#ifdef __KERNEL__
#ifdef CONFIG_COMPAT
struct
__new_sigaction32
{
unsigned
sa_handler
;
unsigned
int
sa_flags
;
unsigned
sa_restorer
;
/* not used by Linux/SPARC yet */
compat_sigset_t
sa_mask
;
};
#endif
struct
k_sigaction
{
struct
__new_sigaction
sa
;
...
...
@@ -229,6 +233,8 @@ struct __old_sigaction {
};
#ifdef __KERNEL__
#ifdef CONFIG_COMPAT
struct
__old_sigaction32
{
unsigned
sa_handler
;
compat_old_sigset_t
sa_mask
;
...
...
@@ -237,6 +243,8 @@ struct __old_sigaction32 {
};
#endif
#endif
typedef
struct
sigaltstack
{
void
__user
*
ss_sp
;
int
ss_flags
;
...
...
@@ -244,11 +252,14 @@ typedef struct sigaltstack {
}
stack_t
;
#ifdef __KERNEL__
#ifdef CONFIG_COMPAT
typedef
struct
sigaltstack32
{
u32
ss_sp
;
int
ss_flags
;
compat_size_t
ss_size
;
}
stack_t32
;
#endif
struct
signal_deliver_cookie
{
int
restart_syscall
;
...
...
include/asm-sparc64/ttable.h
View file @
423f8711
...
...
@@ -123,7 +123,11 @@
#else
#define SUNOS_SYSCALL_TRAP TRAP(sunos_syscall)
#endif
#ifdef CONFIG_COMPAT
#define LINUX_32BIT_SYSCALL_TRAP SYSCALL_TRAP(linux_sparc_syscall32, sys_call_table32)
#else
#define LINUX_32BIT_SYSCALL_TRAP BTRAP(0x110)
#endif
#define LINUX_64BIT_SYSCALL_TRAP SYSCALL_TRAP(linux_sparc_syscall, sys_call_table64)
#define GETCC_TRAP TRAP(getcc)
#define SETCC_TRAP TRAP(setcc)
...
...
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