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
c0fcc4c7
Commit
c0fcc4c7
authored
Oct 09, 2002
by
Richard Henderson
Browse files
Options
Browse Files
Download
Plain Diff
Merge are.twiddle.net:/home/rth/BK/linus-2.5
into are.twiddle.net:/home/rth/BK/axp-2.5
parents
ff64a6e3
a1abbd62
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
664 additions
and
609 deletions
+664
-609
arch/alpha/Config.help
arch/alpha/Config.help
+15
-0
arch/alpha/Makefile
arch/alpha/Makefile
+8
-6
arch/alpha/boot/Makefile
arch/alpha/boot/Makefile
+3
-1
arch/alpha/kernel/Makefile
arch/alpha/kernel/Makefile
+3
-2
arch/alpha/kernel/alpha_ksyms.c
arch/alpha/kernel/alpha_ksyms.c
+0
-1
arch/alpha/kernel/entry.S
arch/alpha/kernel/entry.S
+5
-420
arch/alpha/kernel/osf_sys.c
arch/alpha/kernel/osf_sys.c
+128
-102
arch/alpha/kernel/process.c
arch/alpha/kernel/process.c
+5
-18
arch/alpha/kernel/setup.c
arch/alpha/kernel/setup.c
+14
-0
arch/alpha/kernel/systbls.S
arch/alpha/kernel/systbls.S
+433
-0
arch/alpha/lib/Makefile
arch/alpha/lib/Makefile
+10
-8
arch/alpha/lib/dbg_stackcheck.S
arch/alpha/lib/dbg_stackcheck.S
+0
-0
arch/alpha/lib/dbg_stackkill.S
arch/alpha/lib/dbg_stackkill.S
+0
-0
arch/alpha/mm/fault.c
arch/alpha/mm/fault.c
+20
-32
arch/alpha/vmlinux.lds.S
arch/alpha/vmlinux.lds.S
+5
-4
include/asm-alpha/pal.h
include/asm-alpha/pal.h
+1
-1
include/asm-alpha/unistd.h
include/asm-alpha/unistd.h
+14
-14
No files found.
arch/alpha/Config.help
View file @
c0fcc4c7
...
...
@@ -251,6 +251,10 @@ CONFIG_ALPHA_PRIMO
CONFIG_ALPHA_GAMMA
Say Y if you have an AS 2000 5/xxx or an AS 2100 5/xxx.
CONFIG_ALPHA_EV67
Is this a machine based on the EV67 core? If in doubt, select N here
and the machine will be treated as an EV6.
CONFIG_ALPHA_SRM
There are two different types of booting firmware on Alphas: SRM,
which is command line driven, and ARC, which uses menus and arrow
...
...
@@ -610,3 +614,14 @@ CONFIG_DEBUG_SPINLOCK
best used in conjunction with the NMI watchdog so that spinlock
deadlocks are also debuggable.
CONFIG_DEBUG_RWLOCK
If you say Y here then read-write lock processing will count how many
times it has tried to get the lock and issue an error message after
too many attempts. If you suspect a rwlock problem or a kernel
hacker asks for this option then say Y. Otherwise say N.
CONFIG_DEBUG_SEMAPHORE
If you say Y here then semaphore processing will issue lots of
verbose debugging messages. If you suspect a semaphore problem or a
kernel hacker asks for this option then say Y. Otherwise say N.
arch/alpha/Makefile
View file @
c0fcc4c7
...
...
@@ -99,30 +99,32 @@ export libs-y
MAKEBOOT
=
$(MAKE)
-C
arch
/alpha/boot
rawboot
:
rawboot
:
vmlinux
@
$(MAKEBOOT)
rawboot
boot
:
vmlinux
@
$(MAKEBOOT)
#
# My boot writes directly to a specific disk partition, I doubt most
# people will want to do that without changes..
#
msb my-special-boot
:
msb my-special-boot
:
vmlinux
@
$(MAKEBOOT)
msb
bootimage
:
bootimage
:
vmlinux
@
$(MAKEBOOT)
bootimage
srmboot
:
srmboot
:
vmlinux
@
$(MAKEBOOT)
srmboot
archclean
:
@
$(MAKE)
-C
arch
/alpha/kernel clean
@
$(MAKEBOOT)
clean
archmrproper
:
rm
-f
include/asm-alpha/asm_offsets.h
bootpfile
:
bootpfile
:
vmlinux
@
$(MAKEBOOT)
bootpfile
...
...
arch/alpha/boot/Makefile
View file @
c0fcc4c7
...
...
@@ -8,7 +8,9 @@
# Copyright (C) 1994 by Linus Torvalds
#
LINKFLAGS
=
-static
-T
bootloader.lds
#-N -relax
LINKFLAGS
=
-static
-T
bootloader.lds
-uvsprintf
#-N -relax
CFLAGS
:=
$(CFLAGS)
-I
$(TOPDIR)
/include
.S.s
:
$(CPP)
$(AFLAGS)
-traditional
-o
$*
.o
$<
...
...
arch/alpha/kernel/Makefile
View file @
c0fcc4c7
...
...
@@ -8,8 +8,9 @@ EXTRA_AFLAGS := $(CFLAGS)
export-objs
:=
alpha_ksyms.o
obj-y
:=
entry.o traps.o process.o init_task.o osf_sys.o irq.o irq_alpha.o
\
signal.o setup.o ptrace.o time.o semaphore.o alpha_ksyms.o
obj-y
:=
entry.o traps.o process.o init_task.o osf_sys.o irq.o
\
irq_alpha.o signal.o setup.o ptrace.o time.o semaphore.o
\
alpha_ksyms.o systbls.o
#
# FIXME!
...
...
arch/alpha/kernel/alpha_ksyms.c
View file @
c0fcc4c7
...
...
@@ -161,7 +161,6 @@ EXPORT_SYMBOL(sys_read);
EXPORT_SYMBOL
(
sys_lseek
);
EXPORT_SYMBOL
(
__kernel_execve
);
EXPORT_SYMBOL
(
sys_setsid
);
EXPORT_SYMBOL
(
sys_sync
);
EXPORT_SYMBOL
(
sys_wait4
);
/* Networking helper routines. */
...
...
arch/alpha/kernel/entry.S
View file @
c0fcc4c7
...
...
@@ -9,8 +9,7 @@
#include <asm/cache.h>
#include <asm/asm_offsets.h>
#include <asm/thread_info.h>
#define NR_SYSCALLS 381
#include <asm/unistd.h>
/*
*
stack
offsets
...
...
@@ -677,6 +676,7 @@ ret_success:
.
end
entSys
.
align
3
.
globl
sys_sigreturn
.
ent
sys_sigreturn
sys_sigreturn
:
mov
$
30
,
$
17
...
...
@@ -688,6 +688,7 @@ sys_sigreturn:
.
end
sys_sigreturn
.
align
3
.
globl
sys_rt_sigreturn
.
ent
sys_rt_sigreturn
sys_rt_sigreturn
:
mov
$
30
,
$
17
...
...
@@ -699,6 +700,7 @@ sys_rt_sigreturn:
.
end
sys_rt_sigreturn
.
align
3
.
globl
sys_sigsuspend
.
ent
sys_sigsuspend
sys_sigsuspend
:
mov
$
30
,
$
17
...
...
@@ -713,6 +715,7 @@ sys_sigsuspend:
.
end
sys_sigsuspend
.
align
3
.
globl
sys_rt_sigsuspend
.
ent
sys_rt_sigsuspend
sys_rt_sigsuspend
:
mov
$
30
,
$
18
...
...
@@ -725,421 +728,3 @@ sys_rt_sigsuspend:
lda
$
30
,
SWITCH_STACK_SIZE
+
16
(
$
30
)
ret
$
31
,(
$
26
),
1
.
end
sys_rt_sigsuspend
.
data
.
align
3
.
globl
sys_call_table
sys_call_table
:
.
quad
alpha_ni_syscall
/*
0
*/
.
quad
sys_exit
.
quad
sys_fork
.
quad
sys_read
.
quad
sys_write
.
quad
alpha_ni_syscall
/*
5
*/
.
quad
sys_close
.
quad
osf_wait4
.
quad
alpha_ni_syscall
.
quad
sys_link
.
quad
sys_unlink
/*
10
*/
.
quad
alpha_ni_syscall
.
quad
sys_chdir
.
quad
sys_fchdir
.
quad
sys_mknod
.
quad
sys_chmod
/*
15
*/
.
quad
sys_chown
.
quad
osf_brk
.
quad
alpha_ni_syscall
.
quad
sys_lseek
.
quad
sys_getxpid
/*
20
*/
.
quad
osf_mount
.
quad
sys_umount
.
quad
sys_setuid
.
quad
sys_getxuid
.
quad
alpha_ni_syscall
/*
25
*/
.
quad
sys_ptrace
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
30
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
sys_access
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
35
*/
.
quad
sys_sync
.
quad
sys_kill
.
quad
alpha_ni_syscall
.
quad
sys_setpgid
.
quad
alpha_ni_syscall
/*
40
*/
.
quad
sys_dup
.
quad
sys_pipe
.
quad
osf_set_program_attributes
.
quad
alpha_ni_syscall
.
quad
sys_open
/*
45
*/
.
quad
alpha_ni_syscall
.
quad
sys_getxgid
.
quad
osf_sigprocmask
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
50
*/
.
quad
sys_acct
.
quad
sys_sigpending
.
quad
alpha_ni_syscall
.
quad
sys_ioctl
.
quad
alpha_ni_syscall
/*
55
*/
.
quad
alpha_ni_syscall
.
quad
sys_symlink
.
quad
sys_readlink
.
quad
sys_execve
.
quad
sys_umask
/*
60
*/
.
quad
sys_chroot
.
quad
alpha_ni_syscall
.
quad
sys_getpgrp
.
quad
sys_getpagesize
.
quad
alpha_ni_syscall
/*
65
*/
.
quad
sys_vfork
.
quad
sys_newstat
.
quad
sys_newlstat
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
70
*/
.
quad
osf_mmap
.
quad
alpha_ni_syscall
.
quad
sys_munmap
.
quad
sys_mprotect
.
quad
sys_madvise
/*
75
*/
.
quad
sys_vhangup
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
sys_getgroups
/
*
map
BSD
's setpgrp to sys_setpgid for binary compatibility: */
.
quad
sys_setgroups
/*
80
*/
.
quad
alpha_ni_syscall
.
quad
sys_setpgid
.
quad
osf_setitimer
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
85
*/
.
quad
osf_getitimer
.
quad
sys_gethostname
.
quad
sys_sethostname
.
quad
sys_getdtablesize
.
quad
sys_dup2
/*
90
*/
.
quad
sys_newfstat
.
quad
sys_fcntl
.
quad
osf_select
.
quad
sys_poll
.
quad
sys_fsync
/*
95
*/
.
quad
sys_setpriority
.
quad
sys_socket
.
quad
sys_connect
.
quad
sys_accept
.
quad
osf_getpriority
/*
100
*/
.
quad
sys_send
.
quad
sys_recv
.
quad
sys_sigreturn
.
quad
sys_bind
.
quad
sys_setsockopt
/*
105
*/
.
quad
sys_listen
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
110
*/
.
quad
sys_sigsuspend
.
quad
osf_sigstack
.
quad
sys_recvmsg
.
quad
sys_sendmsg
.
quad
alpha_ni_syscall
/*
115
*/
.
quad
osf_gettimeofday
.
quad
osf_getrusage
.
quad
sys_getsockopt
.
quad
alpha_ni_syscall
#ifdef CONFIG_OSF4_COMPAT
.
quad
osf_readv
/*
120
*/
.
quad
osf_writev
#else
.
quad
sys_readv
/*
120
*/
.
quad
sys_writev
#endif
.
quad
osf_settimeofday
.
quad
sys_fchown
.
quad
sys_fchmod
.
quad
sys_recvfrom
/*
125
*/
.
quad
sys_setreuid
.
quad
sys_setregid
.
quad
sys_rename
.
quad
sys_truncate
.
quad
sys_ftruncate
/*
130
*/
.
quad
sys_flock
.
quad
sys_setgid
.
quad
sys_sendto
.
quad
sys_shutdown
.
quad
sys_socketpair
/*
135
*/
.
quad
sys_mkdir
.
quad
sys_rmdir
.
quad
osf_utimes
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
140
*/
.
quad
sys_getpeername
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
sys_getrlimit
.
quad
sys_setrlimit
/*
145
*/
.
quad
alpha_ni_syscall
.
quad
sys_setsid
.
quad
sys_quotactl
.
quad
alpha_ni_syscall
.
quad
sys_getsockname
/*
150
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
155
*/
.
quad
osf_sigaction
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
osf_getdirentries
.
quad
osf_statfs
/*
160
*/
.
quad
osf_fstatfs
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
osf_getdomainname
/*
165
*/
.
quad
sys_setdomainname
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
170
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
175
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
180
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
185
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
190
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
195
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
osf_swapon
.
quad
sys_msgctl
/*
200
*/
.
quad
sys_msgget
.
quad
sys_msgrcv
.
quad
sys_msgsnd
.
quad
sys_semctl
.
quad
sys_semget
/*
205
*/
.
quad
sys_semop
.
quad
osf_utsname
.
quad
sys_lchown
.
quad
osf_shmat
.
quad
sys_shmctl
/*
210
*/
.
quad
sys_shmdt
.
quad
sys_shmget
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
215
*/
.
quad
alpha_ni_syscall
.
quad
sys_msync
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
220
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
225
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
230
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
sys_getpgid
.
quad
sys_getsid
.
quad
sys_sigaltstack
/*
235
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
240
*/
.
quad
osf_sysinfo
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
osf_proplist_syscall
.
quad
alpha_ni_syscall
/*
245
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
250
*/
.
quad
osf_usleep_thread
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
sys_sysfs
.
quad
alpha_ni_syscall
/*
255
*/
.
quad
osf_getsysinfo
.
quad
osf_setsysinfo
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
260
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
265
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
270
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
275
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
280
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
285
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
290
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
295
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
linux
-
specific
system
calls
start
at
300
*/
.
quad
sys_bdflush
/*
300
*/
.
quad
sys_sethae
.
quad
sys_mount
.
quad
sys_old_adjtimex
.
quad
sys_swapoff
.
quad
sys_getdents
/*
305
*/
.
quad
alpha_create_module
.
quad
sys_init_module
.
quad
sys_delete_module
.
quad
sys_get_kernel_syms
.
quad
sys_syslog
/*
310
*/
.
quad
sys_reboot
.
quad
sys_clone
.
quad
sys_uselib
.
quad
sys_mlock
.
quad
sys_munlock
/*
315
*/
.
quad
sys_mlockall
.
quad
sys_munlockall
.
quad
sys_sysinfo
.
quad
sys_sysctl
.
quad
sys_ni_syscall
/*
320
*/
.
quad
sys_oldumount
.
quad
sys_swapon
.
quad
sys_times
.
quad
sys_personality
.
quad
sys_setfsuid
/*
325
*/
.
quad
sys_setfsgid
.
quad
sys_ustat
.
quad
sys_statfs
.
quad
sys_fstatfs
.
quad
sys_sched_setparam
/*
330
*/
.
quad
sys_sched_getparam
.
quad
sys_sched_setscheduler
.
quad
sys_sched_getscheduler
.
quad
sys_sched_yield
.
quad
sys_sched_get_priority_max
/*
335
*/
.
quad
sys_sched_get_priority_min
.
quad
sys_sched_rr_get_interval
.
quad
sys_ni_syscall
/*
sys_afs_syscall
*/
.
quad
sys_newuname
.
quad
sys_nanosleep
/*
340
*/
.
quad
sys_mremap
.
quad
sys_nfsservctl
.
quad
sys_setresuid
.
quad
sys_getresuid
.
quad
sys_pciconfig_read
/*
345
*/
.
quad
sys_pciconfig_write
.
quad
sys_query_module
.
quad
sys_prctl
.
quad
sys_pread64
.
quad
sys_pwrite64
/*
350
*/
.
quad
sys_rt_sigreturn
.
quad
sys_rt_sigaction
.
quad
sys_rt_sigprocmask
.
quad
sys_rt_sigpending
.
quad
sys_rt_sigtimedwait
/*
355
*/
.
quad
sys_rt_sigqueueinfo
.
quad
sys_rt_sigsuspend
.
quad
sys_select
.
quad
sys_gettimeofday
.
quad
sys_settimeofday
/*
360
*/
.
quad
sys_getitimer
.
quad
sys_setitimer
.
quad
sys_utimes
.
quad
sys_getrusage
.
quad
sys_wait4
/*
365
*/
.
quad
sys_adjtimex
.
quad
sys_getcwd
.
quad
sys_capget
.
quad
sys_capset
.
quad
sys_sendfile
/*
370
*/
.
quad
sys_setresgid
.
quad
sys_getresgid
.
quad
sys_ni_syscall
/*
sys_dipc
*/
.
quad
sys_pivot_root
.
quad
sys_mincore
/*
375
*/
.
quad
sys_pciconfig_iobase
.
quad
sys_getdents64
.
quad
sys_gettid
.
quad
sys_readahead
.
quad
sys_ni_syscall
/*
380
,
sys_security
*/
.
quad
sys_tkill
.
quad
sys_setxattr
.
quad
sys_lsetxattr
.
quad
sys_fsetxattr
.
quad
sys_getxattr
.
quad
sys_lgetxattr
.
quad
sys_fgetxattr
.
quad
sys_listxattr
.
quad
sys_llistxattr
.
quad
sys_flistxattr
/*
390
*/
.
quad
sys_removexattr
.
quad
sys_lremovexattr
.
quad
sys_fremovexattr
.
quad
sys_futex
.
quad
sys_sched_setaffinity
.
quad
sys_sched_getaffinity
.
quad
sys_ni_syscall
/*
397
,
tux
*/
.
quad
sys_io_setup
.
quad
sys_io_destroy
.
quad
sys_io_getevents
/*
400
*/
.
quad
sys_io_submit
.
quad
sys_io_cancel
.
quad
sys_ni_syscall
/*
403
,
sys_alloc_hugepages
*/
.
quad
sys_ni_syscall
/*
404
,
sys_free_hugepages
*/
.
quad
sys_exit_group
arch/alpha/kernel/osf_sys.c
View file @
c0fcc4c7
...
...
@@ -44,8 +44,9 @@
#include <asm/processor.h>
extern
int
do_pipe
(
int
*
);
extern
asmlinkage
unsigned
long
sys_brk
(
unsigned
long
);
extern
int
sys_getpriority
(
int
,
int
);
extern
asmlinkage
unsigned
long
sys_create_module
(
char
*
,
unsigned
long
);
/*
* Brk needs to return an error. Still support Linux's brk(0) query idiom,
...
...
@@ -53,7 +54,8 @@ extern asmlinkage unsigned long sys_brk(unsigned long);
* identical to OSF as we don't return 0 on success, but doing otherwise
* would require changes to libc. Hopefully this is good enough.
*/
asmlinkage
unsigned
long
osf_brk
(
unsigned
long
brk
)
asmlinkage
unsigned
long
osf_brk
(
unsigned
long
brk
)
{
unsigned
long
retval
=
sys_brk
(
brk
);
if
(
brk
&&
brk
!=
retval
)
...
...
@@ -64,9 +66,9 @@ asmlinkage unsigned long osf_brk(unsigned long brk)
/*
* This is pure guess-work..
*/
asmlinkage
int
osf_set_program_attributes
(
unsigned
long
text_start
,
unsigned
long
text_len
,
unsigned
long
bss_start
,
unsigned
long
bss_len
)
asmlinkage
int
osf_set_program_attributes
(
unsigned
long
text_start
,
unsigned
long
text_len
,
unsigned
long
bss_start
,
unsigned
long
bss_len
)
{
struct
mm_struct
*
mm
;
...
...
@@ -106,8 +108,9 @@ struct osf_dirent_callback {
int
error
;
};
static
int
osf_filldir
(
void
*
__buf
,
const
char
*
name
,
int
namlen
,
loff_t
offset
,
ino_t
ino
,
unsigned
int
d_type
)
static
int
osf_filldir
(
void
*
__buf
,
const
char
*
name
,
int
namlen
,
loff_t
offset
,
ino_t
ino
,
unsigned
int
d_type
)
{
struct
osf_dirent
*
dirent
;
struct
osf_dirent_callback
*
buf
=
(
struct
osf_dirent_callback
*
)
__buf
;
...
...
@@ -134,8 +137,9 @@ static int osf_filldir(void *__buf, const char *name, int namlen, loff_t offset,
return
0
;
}
asmlinkage
int
osf_getdirentries
(
unsigned
int
fd
,
struct
osf_dirent
*
dirent
,
unsigned
int
count
,
long
*
basep
)
asmlinkage
int
osf_getdirentries
(
unsigned
int
fd
,
struct
osf_dirent
*
dirent
,
unsigned
int
count
,
long
*
basep
)
{
int
error
;
struct
file
*
file
;
...
...
@@ -159,9 +163,9 @@ asmlinkage int osf_getdirentries(unsigned int fd, struct osf_dirent *dirent,
if
(
count
!=
buf
.
count
)
error
=
count
-
buf
.
count
;
out_putf:
out_putf:
fput
(
file
);
out:
out:
return
error
;
}
...
...
@@ -172,8 +176,9 @@ asmlinkage int osf_getdirentries(unsigned int fd, struct osf_dirent *dirent,
* Alpha syscall convention has no problem returning negative
* values:
*/
asmlinkage
int
osf_getpriority
(
int
which
,
int
who
,
int
a2
,
int
a3
,
int
a4
,
int
a5
,
struct
pt_regs
regs
)
asmlinkage
int
osf_getpriority
(
int
which
,
int
who
,
int
a2
,
int
a3
,
int
a4
,
int
a5
,
struct
pt_regs
regs
)
{
extern
int
sys_getpriority
(
int
,
int
);
int
prio
;
...
...
@@ -194,24 +199,24 @@ asmlinkage int osf_getpriority(int which, int who, int a2, int a3, int a4,
/*
* No need to acquire the kernel lock, we're local..
*/
asmlinkage
unsigned
long
sys_getxuid
(
int
a0
,
int
a1
,
int
a2
,
int
a3
,
int
a4
,
int
a5
,
struct
pt_regs
regs
)
asmlinkage
unsigned
long
sys_getxuid
(
int
a0
,
int
a1
,
int
a2
,
int
a3
,
int
a4
,
int
a5
,
struct
pt_regs
regs
)
{
struct
task_struct
*
tsk
=
current
;
(
&
regs
)
->
r20
=
tsk
->
euid
;
return
tsk
->
uid
;
}
asmlinkage
unsigned
long
sys_getxgid
(
int
a0
,
int
a1
,
int
a2
,
int
a3
,
int
a4
,
int
a5
,
struct
pt_regs
regs
)
asmlinkage
unsigned
long
sys_getxgid
(
int
a0
,
int
a1
,
int
a2
,
int
a3
,
int
a4
,
int
a5
,
struct
pt_regs
regs
)
{
struct
task_struct
*
tsk
=
current
;
(
&
regs
)
->
r20
=
tsk
->
egid
;
return
tsk
->
gid
;
}
asmlinkage
unsigned
long
sys_getxpid
(
int
a0
,
int
a1
,
int
a2
,
int
a3
,
int
a4
,
int
a5
,
struct
pt_regs
regs
)
asmlinkage
unsigned
long
sys_getxpid
(
int
a0
,
int
a1
,
int
a2
,
int
a3
,
int
a4
,
int
a5
,
struct
pt_regs
regs
)
{
struct
task_struct
*
tsk
=
current
;
...
...
@@ -226,9 +231,9 @@ asmlinkage unsigned long sys_getxpid(int a0, int a1, int a2, int a3, int a4,
return
tsk
->
tgid
;
}
asmlinkage
unsigned
long
osf_mmap
(
unsigned
long
addr
,
unsigned
long
len
,
unsigned
long
prot
,
unsigned
long
flags
,
unsigned
long
fd
,
unsigned
long
off
)
asmlinkage
unsigned
long
osf_mmap
(
unsigned
long
addr
,
unsigned
long
len
,
unsigned
long
prot
,
unsigned
long
flags
,
unsigned
long
fd
,
unsigned
long
off
)
{
struct
file
*
file
=
NULL
;
unsigned
long
ret
=
-
EBADF
;
...
...
@@ -249,7 +254,7 @@ asmlinkage unsigned long osf_mmap(unsigned long addr, unsigned long len,
up_write
(
&
current
->
mm
->
mmap_sem
);
if
(
file
)
fput
(
file
);
out:
out:
return
ret
;
}
...
...
@@ -271,7 +276,9 @@ struct osf_statfs {
__kernel_fsid_t
f_fsid
;
}
*
osf_stat
;
static
int
linux_to_osf_statfs
(
struct
statfs
*
linux_stat
,
struct
osf_statfs
*
osf_stat
,
unsigned
long
bufsiz
)
static
int
linux_to_osf_statfs
(
struct
statfs
*
linux_stat
,
struct
osf_statfs
*
osf_stat
,
unsigned
long
bufsiz
)
{
struct
osf_statfs
tmp_stat
;
...
...
@@ -291,7 +298,9 @@ static int linux_to_osf_statfs(struct statfs *linux_stat, struct osf_statfs *osf
return
copy_to_user
(
osf_stat
,
&
tmp_stat
,
bufsiz
)
?
-
EFAULT
:
0
;
}
static
int
do_osf_statfs
(
struct
dentry
*
dentry
,
struct
osf_statfs
*
buffer
,
unsigned
long
bufsiz
)
static
int
do_osf_statfs
(
struct
dentry
*
dentry
,
struct
osf_statfs
*
buffer
,
unsigned
long
bufsiz
)
{
struct
statfs
linux_stat
;
int
error
=
vfs_statfs
(
dentry
->
d_inode
->
i_sb
,
&
linux_stat
);
...
...
@@ -300,7 +309,8 @@ static int do_osf_statfs(struct dentry * dentry, struct osf_statfs *buffer, unsi
return
error
;
}
asmlinkage
int
osf_statfs
(
char
*
path
,
struct
osf_statfs
*
buffer
,
unsigned
long
bufsiz
)
asmlinkage
int
osf_statfs
(
char
*
path
,
struct
osf_statfs
*
buffer
,
unsigned
long
bufsiz
)
{
struct
nameidata
nd
;
int
retval
;
...
...
@@ -313,7 +323,8 @@ asmlinkage int osf_statfs(char *path, struct osf_statfs *buffer, unsigned long b
return
retval
;
}
asmlinkage
int
osf_fstatfs
(
unsigned
long
fd
,
struct
osf_statfs
*
buffer
,
unsigned
long
bufsiz
)
asmlinkage
int
osf_fstatfs
(
unsigned
long
fd
,
struct
osf_statfs
*
buffer
,
unsigned
long
bufsiz
)
{
struct
file
*
file
;
int
retval
;
...
...
@@ -342,10 +353,9 @@ struct cdfs_args {
char
*
devname
;
int
flags
;
uid_t
exroot
;
/*
* This has lots more here, which Linux handles with the option block
* but I'm too lazy to do the translation into ASCII.
*/
/* This has lots more here, which Linux handles with the option block
but I'm too lazy to do the translation into ASCII. */
};
struct
procfs_args
{
...
...
@@ -362,7 +372,8 @@ struct procfs_args {
* Just how long ago was it written? OTOH our UFS driver may be still
* unhappy with OSF UFS. [CHECKME]
*/
static
int
osf_ufs_mount
(
char
*
dirname
,
struct
ufs_args
*
args
,
int
flags
)
static
int
osf_ufs_mount
(
char
*
dirname
,
struct
ufs_args
*
args
,
int
flags
)
{
int
retval
;
struct
cdfs_args
tmp
;
...
...
@@ -377,11 +388,12 @@ static int osf_ufs_mount(char *dirname, struct ufs_args *args, int flags)
goto
out
;
retval
=
do_mount
(
devname
,
dirname
,
"ext2"
,
flags
,
NULL
);
putname
(
devname
);
out:
out:
return
retval
;
}
static
int
osf_cdfs_mount
(
char
*
dirname
,
struct
cdfs_args
*
args
,
int
flags
)
static
int
osf_cdfs_mount
(
char
*
dirname
,
struct
cdfs_args
*
args
,
int
flags
)
{
int
retval
;
struct
cdfs_args
tmp
;
...
...
@@ -396,11 +408,12 @@ static int osf_cdfs_mount(char *dirname, struct cdfs_args *args, int flags)
goto
out
;
retval
=
do_mount
(
devname
,
dirname
,
"iso9660"
,
flags
,
NULL
);
putname
(
devname
);
out:
out:
return
retval
;
}
static
int
osf_procfs_mount
(
char
*
dirname
,
struct
procfs_args
*
args
,
int
flags
)
static
int
osf_procfs_mount
(
char
*
dirname
,
struct
procfs_args
*
args
,
int
flags
)
{
struct
procfs_args
tmp
;
...
...
@@ -410,7 +423,8 @@ static int osf_procfs_mount(char *dirname, struct procfs_args *args, int flags)
return
do_mount
(
""
,
dirname
,
"proc"
,
flags
,
NULL
);
}
asmlinkage
int
osf_mount
(
unsigned
long
typenr
,
char
*
path
,
int
flag
,
void
*
data
)
asmlinkage
int
osf_mount
(
unsigned
long
typenr
,
char
*
path
,
int
flag
,
void
*
data
)
{
int
retval
=
-
EINVAL
;
char
*
name
;
...
...
@@ -435,12 +449,13 @@ asmlinkage int osf_mount(unsigned long typenr, char *path, int flag, void *data)
printk
(
"osf_mount(%ld, %x)
\n
"
,
typenr
,
flag
);
}
putname
(
name
);
out:
out:
unlock_kernel
();
return
retval
;
}
asmlinkage
int
osf_utsname
(
char
*
name
)
asmlinkage
int
osf_utsname
(
char
*
name
)
{
int
error
;
...
...
@@ -458,12 +473,13 @@ asmlinkage int osf_utsname(char *name)
goto
out
;
error
=
0
;
out:
out:
up_read
(
&
uts_sem
);
return
error
;
}
asmlinkage
int
osf_swapon
(
const
char
*
path
,
int
flags
,
int
lowat
,
int
hiwat
)
asmlinkage
int
osf_swapon
(
const
char
*
path
,
int
flags
,
int
lowat
,
int
hiwat
)
{
int
ret
;
...
...
@@ -474,35 +490,36 @@ asmlinkage int osf_swapon(const char *path, int flags, int lowat, int hiwat)
return
ret
;
}
asmlinkage
unsigned
long
sys_getpagesize
(
void
)
asmlinkage
unsigned
long
sys_getpagesize
(
void
)
{
return
PAGE_SIZE
;
}
asmlinkage
unsigned
long
sys_getdtablesize
(
void
)
asmlinkage
unsigned
long
sys_getdtablesize
(
void
)
{
return
NR_OPEN
;
}
asmlinkage
int
sys_pipe
(
int
a0
,
int
a1
,
int
a2
,
int
a3
,
int
a4
,
int
a5
,
struct
pt_regs
regs
)
asmlinkage
int
sys_pipe
(
int
a0
,
int
a1
,
int
a2
,
int
a3
,
int
a4
,
int
a5
,
struct
pt_regs
regs
)
{
int
fd
[
2
];
int
error
;
int
fd
[
2
],
error
;
error
=
do_pipe
(
fd
);
if
(
error
)
goto
out
;
(
&
regs
)
->
r20
=
fd
[
1
];
error
=
fd
[
0
];
out:
if
(
!
error
)
{
regs
.
r20
=
fd
[
1
];
error
=
fd
[
0
];
}
return
error
;
}
/*
* For compatibility with OSF/1 only. Use utsname(2) instead.
*/
asmlinkage
int
osf_getdomainname
(
char
*
name
,
int
namelen
)
asmlinkage
int
osf_getdomainname
(
char
*
name
,
int
namelen
)
{
unsigned
len
;
int
i
,
error
;
...
...
@@ -522,12 +539,12 @@ asmlinkage int osf_getdomainname(char *name, int namelen)
break
;
}
up_read
(
&
uts_sem
);
out:
out:
return
error
;
}
asmlinkage
long
osf_shmat
(
int
shmid
,
void
*
shmaddr
,
int
shmflg
)
asmlinkage
long
osf_shmat
(
int
shmid
,
void
*
shmaddr
,
int
shmflg
)
{
unsigned
long
raddr
;
long
err
;
...
...
@@ -541,7 +558,7 @@ asmlinkage long osf_shmat(int shmid, void *shmaddr, int shmflg)
* non-negative longs!
*/
err
=
raddr
;
out:
out:
unlock_kernel
();
return
err
;
}
...
...
@@ -612,7 +629,8 @@ enum pl_code {
PL_DEL
=
5
,
PL_FDEL
=
6
};
asmlinkage
long
osf_proplist_syscall
(
enum
pl_code
code
,
union
pl_args
*
args
)
asmlinkage
long
osf_proplist_syscall
(
enum
pl_code
code
,
union
pl_args
*
args
)
{
long
error
;
int
*
min_buf_size_ptr
;
...
...
@@ -655,7 +673,8 @@ asmlinkage long osf_proplist_syscall(enum pl_code code, union pl_args *args)
return
error
;
}
asmlinkage
int
osf_sigstack
(
struct
sigstack
*
uss
,
struct
sigstack
*
uoss
)
asmlinkage
int
osf_sigstack
(
struct
sigstack
*
uss
,
struct
sigstack
*
uoss
)
{
unsigned
long
usp
=
rdusp
();
unsigned
long
oss_sp
=
current
->
sas_ss_sp
+
current
->
sas_ss_size
;
...
...
@@ -691,7 +710,7 @@ asmlinkage int osf_sigstack(struct sigstack *uss, struct sigstack *uoss)
}
error
=
0
;
out:
out:
return
error
;
}
...
...
@@ -702,32 +721,28 @@ asmlinkage int osf_sigstack(struct sigstack *uss, struct sigstack *uoss)
* create_module() because it's one of the few system calls
* that return kernel addresses (which are negative).
*/
asmlinkage
unsigned
long
alpha_create_module
(
char
*
module_name
,
unsigned
long
size
,
int
a3
,
int
a4
,
int
a5
,
int
a6
,
struct
pt_regs
regs
)
asmlinkage
unsigned
long
alpha_create_module
(
char
*
module_name
,
unsigned
long
size
,
int
a3
,
int
a4
,
int
a5
,
int
a6
,
struct
pt_regs
regs
)
{
asmlinkage
unsigned
long
sys_create_module
(
char
*
,
unsigned
long
);
long
retval
;
lock_kernel
();
retval
=
sys_create_module
(
module_name
,
size
);
/*
* we get either a module address or an error number,
* and we know the error number is a small negative
* number, while the address is always negative but
* much larger.
*/
if
(
retval
+
1000
>
0
)
goto
out
;
/* tell entry.S:syscall_error that this is NOT an error: */
regs
.
r0
=
0
;
out:
unlock_kernel
();
/* We get either a module address or an error number, and we know
the error number is a small negative number, while the address
is always negative but much larger. */
if
(
retval
+
1000
<
0
)
regs
.
r0
=
0
;
unlock_kernel
();
return
retval
;
}
asmlinkage
long
osf_sysinfo
(
int
command
,
char
*
buf
,
long
count
)
asmlinkage
long
osf_sysinfo
(
int
command
,
char
*
buf
,
long
count
)
{
static
char
*
sysinfo_table
[]
=
{
system_utsname
.
sysname
,
...
...
@@ -761,13 +776,13 @@ asmlinkage long osf_sysinfo(int command, char *buf, long count)
else
err
=
0
;
up_read
(
&
uts_sem
);
out:
out:
return
err
;
}
asmlinkage
unsigned
long
osf_getsysinfo
(
unsigned
long
op
,
void
*
buffer
,
unsigned
long
nbytes
,
int
*
start
,
void
*
arg
)
asmlinkage
unsigned
long
osf_getsysinfo
(
unsigned
long
op
,
void
*
buffer
,
unsigned
long
nbytes
,
int
*
start
,
void
*
arg
)
{
unsigned
long
w
;
struct
percpu_struct
*
cpu
;
...
...
@@ -823,9 +838,9 @@ asmlinkage unsigned long osf_getsysinfo(unsigned long op, void *buffer,
return
-
EOPNOTSUPP
;
}
asmlinkage
unsigned
long
osf_setsysinfo
(
unsigned
long
op
,
void
*
buffer
,
unsigned
long
nbytes
,
int
*
start
,
void
*
arg
)
asmlinkage
unsigned
long
osf_setsysinfo
(
unsigned
long
op
,
void
*
buffer
,
unsigned
long
nbytes
,
int
*
start
,
void
*
arg
)
{
switch
(
op
)
{
case
SSI_IEEE_FP_CONTROL
:
{
...
...
@@ -925,21 +940,24 @@ struct itimerval32
struct
timeval32
it_value
;
};
static
inline
long
get_tv32
(
struct
timeval
*
o
,
struct
timeval32
*
i
)
static
inline
long
get_tv32
(
struct
timeval
*
o
,
struct
timeval32
*
i
)
{
return
(
!
access_ok
(
VERIFY_READ
,
i
,
sizeof
(
*
i
))
||
(
__get_user
(
o
->
tv_sec
,
&
i
->
tv_sec
)
|
__get_user
(
o
->
tv_usec
,
&
i
->
tv_usec
)));
}
static
inline
long
put_tv32
(
struct
timeval32
*
o
,
struct
timeval
*
i
)
static
inline
long
put_tv32
(
struct
timeval32
*
o
,
struct
timeval
*
i
)
{
return
(
!
access_ok
(
VERIFY_WRITE
,
o
,
sizeof
(
*
o
))
||
(
__put_user
(
i
->
tv_sec
,
&
o
->
tv_sec
)
|
__put_user
(
i
->
tv_usec
,
&
o
->
tv_usec
)));
}
static
inline
long
get_it32
(
struct
itimerval
*
o
,
struct
itimerval32
*
i
)
static
inline
long
get_it32
(
struct
itimerval
*
o
,
struct
itimerval32
*
i
)
{
return
(
!
access_ok
(
VERIFY_READ
,
i
,
sizeof
(
*
i
))
||
(
__get_user
(
o
->
it_interval
.
tv_sec
,
&
i
->
it_interval
.
tv_sec
)
|
...
...
@@ -948,7 +966,8 @@ static inline long get_it32(struct itimerval *o, struct itimerval32 *i)
__get_user
(
o
->
it_value
.
tv_usec
,
&
i
->
it_value
.
tv_usec
)));
}
static
inline
long
put_it32
(
struct
itimerval32
*
o
,
struct
itimerval
*
i
)
static
inline
long
put_it32
(
struct
itimerval32
*
o
,
struct
itimerval
*
i
)
{
return
(
!
access_ok
(
VERIFY_WRITE
,
o
,
sizeof
(
*
o
))
||
(
__put_user
(
i
->
it_interval
.
tv_sec
,
&
o
->
it_interval
.
tv_sec
)
|
...
...
@@ -964,7 +983,8 @@ jiffies_to_timeval32(unsigned long jiffies, struct timeval32 *value)
value
->
tv_sec
=
jiffies
/
HZ
;
}
asmlinkage
int
osf_gettimeofday
(
struct
timeval32
*
tv
,
struct
timezone
*
tz
)
asmlinkage
int
osf_gettimeofday
(
struct
timeval32
*
tv
,
struct
timezone
*
tz
)
{
if
(
tv
)
{
struct
timeval
ktv
;
...
...
@@ -979,7 +999,8 @@ asmlinkage int osf_gettimeofday(struct timeval32 *tv, struct timezone *tz)
return
0
;
}
asmlinkage
int
osf_settimeofday
(
struct
timeval32
*
tv
,
struct
timezone
*
tz
)
asmlinkage
int
osf_settimeofday
(
struct
timeval32
*
tv
,
struct
timezone
*
tz
)
{
struct
timeval
ktv
;
struct
timezone
ktz
;
...
...
@@ -996,7 +1017,8 @@ asmlinkage int osf_settimeofday(struct timeval32 *tv, struct timezone *tz)
return
do_sys_settimeofday
(
tv
?
&
ktv
:
NULL
,
tz
?
&
ktz
:
NULL
);
}
asmlinkage
int
osf_getitimer
(
int
which
,
struct
itimerval32
*
it
)
asmlinkage
int
osf_getitimer
(
int
which
,
struct
itimerval32
*
it
)
{
struct
itimerval
kit
;
int
error
;
...
...
@@ -1008,8 +1030,8 @@ asmlinkage int osf_getitimer(int which, struct itimerval32 *it)
return
error
;
}
asmlinkage
int
osf_setitimer
(
int
which
,
struct
itimerval32
*
in
,
struct
itimerval32
*
out
)
asmlinkage
int
osf_setitimer
(
int
which
,
struct
itimerval32
*
in
,
struct
itimerval32
*
out
)
{
struct
itimerval
kin
,
kout
;
int
error
;
...
...
@@ -1031,7 +1053,8 @@ asmlinkage int osf_setitimer(int which, struct itimerval32 *in,
}
asmlinkage
int
osf_utimes
(
const
char
*
filename
,
struct
timeval32
*
tvs
)
asmlinkage
int
osf_utimes
(
const
char
*
filename
,
struct
timeval32
*
tvs
)
{
char
*
kfilename
;
struct
timeval
ktvs
[
2
];
...
...
@@ -1136,9 +1159,9 @@ osf_select(int n, fd_set *inp, fd_set *outp, fd_set *exp,
set_fd_set
(
n
,
outp
->
fds_bits
,
fds
.
res_out
);
set_fd_set
(
n
,
exp
->
fds_bits
,
fds
.
res_ex
);
out:
out:
kfree
(
bits
);
out_nofds:
out_nofds:
return
ret
;
}
...
...
@@ -1161,7 +1184,8 @@ struct rusage32 {
long
ru_nivcsw
;
/* involuntary " */
};
asmlinkage
int
osf_getrusage
(
int
who
,
struct
rusage32
*
ru
)
asmlinkage
int
osf_getrusage
(
int
who
,
struct
rusage32
*
ru
)
{
struct
rusage32
r
;
...
...
@@ -1198,8 +1222,8 @@ asmlinkage int osf_getrusage(int who, struct rusage32 *ru)
return
copy_to_user
(
ru
,
&
r
,
sizeof
(
r
))
?
-
EFAULT
:
0
;
}
asmlinkage
int
osf_wait4
(
pid_t
pid
,
int
*
ustatus
,
int
options
,
struct
rusage32
*
ur
)
asmlinkage
int
osf_wait4
(
pid_t
pid
,
int
*
ustatus
,
int
options
,
struct
rusage32
*
ur
)
{
if
(
!
ur
)
{
return
sys_wait4
(
pid
,
ustatus
,
options
,
NULL
);
...
...
@@ -1245,7 +1269,8 @@ asmlinkage int osf_wait4(pid_t pid, int *ustatus, int options,
* seems to be a timeval pointer, and I suspect the second
* one is the time remaining.. Ho humm.. No documentation.
*/
asmlinkage
int
osf_usleep_thread
(
struct
timeval32
*
sleep
,
struct
timeval32
*
remain
)
asmlinkage
int
osf_usleep_thread
(
struct
timeval32
*
sleep
,
struct
timeval32
*
remain
)
{
struct
timeval
tmp
;
unsigned
long
ticks
;
...
...
@@ -1268,7 +1293,7 @@ asmlinkage int osf_usleep_thread(struct timeval32 *sleep, struct timeval32 *rema
}
return
0
;
fault:
fault:
return
-
EFAULT
;
}
...
...
@@ -1302,7 +1327,8 @@ struct timex32 {
int
:
32
;
int
:
32
;
int
:
32
;
int
:
32
;
};
asmlinkage
int
sys_old_adjtimex
(
struct
timex32
*
txc_p
)
asmlinkage
int
sys_old_adjtimex
(
struct
timex32
*
txc_p
)
{
struct
timex
txc
;
int
ret
;
...
...
arch/alpha/kernel/process.c
View file @
c0fcc4c7
...
...
@@ -191,26 +191,13 @@ machine_power_off(void)
common_shutdown
(
LINUX_REBOOT_CMD_POWER_OFF
,
NULL
);
}
/* Used by sysrq-p, among others. I don't believe r9-r15 are ever
saved in the context it's used. */
void
show_regs
(
struct
pt_regs
*
regs
)
show_regs
(
struct
pt_regs
*
regs
)
{
printk
(
"
\n
"
);
printk
(
"Pid: %d, comm: %20s
\n
"
,
current
->
pid
,
current
->
comm
);
printk
(
"ps: %04lx pc: [<%016lx>] CPU %d %s
\n
"
,
regs
->
ps
,
regs
->
pc
,
smp_processor_id
(),
print_tainted
());
printk
(
"rp: [<%016lx>] sp: %p
\n
"
,
regs
->
r26
,
regs
+
1
);
printk
(
" r0: %016lx r1: %016lx r2: %016lx r3: %016lx
\n
"
,
regs
->
r0
,
regs
->
r1
,
regs
->
r2
,
regs
->
r3
);
printk
(
" r4: %016lx r5: %016lx r6: %016lx r7: %016lx
\n
"
,
regs
->
r4
,
regs
->
r5
,
regs
->
r6
,
regs
->
r7
);
printk
(
" r8: %016lx r16: %016lx r17: %016lx r18: %016lx
\n
"
,
regs
->
r8
,
regs
->
r16
,
regs
->
r17
,
regs
->
r18
);
printk
(
"r19: %016lx r20: %016lx r21: %016lx r22: %016lx
\n
"
,
regs
->
r19
,
regs
->
r20
,
regs
->
r21
,
regs
->
r22
);
printk
(
"r23: %016lx r24: %016lx r25: %016lx r26: %016lx
\n
"
,
regs
->
r23
,
regs
->
r24
,
regs
->
r25
,
regs
->
r26
);
printk
(
"r27: %016lx r28: %016lx r29: %016lx hae: %016lx
\n
"
,
regs
->
r27
,
regs
->
r28
,
regs
->
gp
,
regs
->
hae
);
dik_show_regs
(
regs
,
0
);
}
/*
...
...
arch/alpha/kernel/setup.c
View file @
c0fcc4c7
...
...
@@ -37,6 +37,11 @@
#include <linux/blk.h>
#endif
#ifdef CONFIG_MAGIC_SYSRQ
#include <linux/sysrq.h>
#include <linux/reboot.h>
#endif
#include <linux/notifier.h>
extern
struct
notifier_block
*
panic_notifier_list
;
static
int
alpha_panic_event
(
struct
notifier_block
*
,
unsigned
long
,
void
*
);
...
...
@@ -539,6 +544,15 @@ setup_arch(char **cmdline_p)
register_srm_console
();
}
#ifdef CONFIG_MAGIC_SYSRQ
/* If we're using SRM, make sysrq-b halt back to the prom,
not auto-reboot. */
if
(
alpha_using_srm
)
{
struct
sysrq_key_op
*
op
=
__sysrq_get_key_op
(
'b'
);
op
->
handler
=
(
void
*
)
machine_halt
;
}
#endif
/*
* Indentify and reconfigure for the current system.
*/
...
...
arch/alpha/kernel/systbls.S
0 → 100644
View file @
c0fcc4c7
/*
*
arch
/
alpha
/
kernel
/
systbls
.
S
*
*
The
system
call
table
.
*/
#include <asm/unistd.h>
.
data
.
align
3
.
globl
sys_call_table
sys_call_table
:
.
quad
alpha_ni_syscall
/*
0
*/
.
quad
sys_exit
.
quad
sys_fork
.
quad
sys_read
.
quad
sys_write
.
quad
alpha_ni_syscall
/*
5
*/
.
quad
sys_close
.
quad
osf_wait4
.
quad
alpha_ni_syscall
.
quad
sys_link
.
quad
sys_unlink
/*
10
*/
.
quad
alpha_ni_syscall
.
quad
sys_chdir
.
quad
sys_fchdir
.
quad
sys_mknod
.
quad
sys_chmod
/*
15
*/
.
quad
sys_chown
.
quad
osf_brk
.
quad
alpha_ni_syscall
.
quad
sys_lseek
.
quad
sys_getxpid
/*
20
*/
.
quad
osf_mount
.
quad
sys_umount
.
quad
sys_setuid
.
quad
sys_getxuid
.
quad
alpha_ni_syscall
/*
25
*/
.
quad
sys_ptrace
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
30
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
sys_access
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
35
*/
.
quad
sys_sync
.
quad
sys_kill
.
quad
alpha_ni_syscall
.
quad
sys_setpgid
.
quad
alpha_ni_syscall
/*
40
*/
.
quad
sys_dup
.
quad
sys_pipe
.
quad
osf_set_program_attributes
.
quad
alpha_ni_syscall
.
quad
sys_open
/*
45
*/
.
quad
alpha_ni_syscall
.
quad
sys_getxgid
.
quad
osf_sigprocmask
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
50
*/
.
quad
sys_acct
.
quad
sys_sigpending
.
quad
alpha_ni_syscall
.
quad
sys_ioctl
.
quad
alpha_ni_syscall
/*
55
*/
.
quad
alpha_ni_syscall
.
quad
sys_symlink
.
quad
sys_readlink
.
quad
sys_execve
.
quad
sys_umask
/*
60
*/
.
quad
sys_chroot
.
quad
alpha_ni_syscall
.
quad
sys_getpgrp
.
quad
sys_getpagesize
.
quad
alpha_ni_syscall
/*
65
*/
.
quad
sys_vfork
.
quad
sys_newstat
.
quad
sys_newlstat
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
70
*/
.
quad
osf_mmap
.
quad
alpha_ni_syscall
.
quad
sys_munmap
.
quad
sys_mprotect
.
quad
sys_madvise
/*
75
*/
.
quad
sys_vhangup
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
sys_getgroups
/
*
map
BSD
's setpgrp to sys_setpgid for binary compatibility: */
.
quad
sys_setgroups
/*
80
*/
.
quad
alpha_ni_syscall
.
quad
sys_setpgid
.
quad
osf_setitimer
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
85
*/
.
quad
osf_getitimer
.
quad
sys_gethostname
.
quad
sys_sethostname
.
quad
sys_getdtablesize
.
quad
sys_dup2
/*
90
*/
.
quad
sys_newfstat
.
quad
sys_fcntl
.
quad
osf_select
.
quad
sys_poll
.
quad
sys_fsync
/*
95
*/
.
quad
sys_setpriority
.
quad
sys_socket
.
quad
sys_connect
.
quad
sys_accept
.
quad
osf_getpriority
/*
100
*/
.
quad
sys_send
.
quad
sys_recv
.
quad
sys_sigreturn
.
quad
sys_bind
.
quad
sys_setsockopt
/*
105
*/
.
quad
sys_listen
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
110
*/
.
quad
sys_sigsuspend
.
quad
osf_sigstack
.
quad
sys_recvmsg
.
quad
sys_sendmsg
.
quad
alpha_ni_syscall
/*
115
*/
.
quad
osf_gettimeofday
.
quad
osf_getrusage
.
quad
sys_getsockopt
.
quad
alpha_ni_syscall
#ifdef CONFIG_OSF4_COMPAT
.
quad
osf_readv
/*
120
*/
.
quad
osf_writev
#else
.
quad
sys_readv
/*
120
*/
.
quad
sys_writev
#endif
.
quad
osf_settimeofday
.
quad
sys_fchown
.
quad
sys_fchmod
.
quad
sys_recvfrom
/*
125
*/
.
quad
sys_setreuid
.
quad
sys_setregid
.
quad
sys_rename
.
quad
sys_truncate
.
quad
sys_ftruncate
/*
130
*/
.
quad
sys_flock
.
quad
sys_setgid
.
quad
sys_sendto
.
quad
sys_shutdown
.
quad
sys_socketpair
/*
135
*/
.
quad
sys_mkdir
.
quad
sys_rmdir
.
quad
osf_utimes
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
140
*/
.
quad
sys_getpeername
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
sys_getrlimit
.
quad
sys_setrlimit
/*
145
*/
.
quad
alpha_ni_syscall
.
quad
sys_setsid
.
quad
sys_quotactl
.
quad
alpha_ni_syscall
.
quad
sys_getsockname
/*
150
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
155
*/
.
quad
osf_sigaction
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
osf_getdirentries
.
quad
osf_statfs
/*
160
*/
.
quad
osf_fstatfs
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
osf_getdomainname
/*
165
*/
.
quad
sys_setdomainname
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
170
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
175
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
180
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
185
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
190
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
195
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
osf_swapon
.
quad
sys_msgctl
/*
200
*/
.
quad
sys_msgget
.
quad
sys_msgrcv
.
quad
sys_msgsnd
.
quad
sys_semctl
.
quad
sys_semget
/*
205
*/
.
quad
sys_semop
.
quad
osf_utsname
.
quad
sys_lchown
.
quad
osf_shmat
.
quad
sys_shmctl
/*
210
*/
.
quad
sys_shmdt
.
quad
sys_shmget
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
215
*/
.
quad
alpha_ni_syscall
.
quad
sys_msync
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
220
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
225
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
230
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
sys_getpgid
.
quad
sys_getsid
.
quad
sys_sigaltstack
/*
235
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
240
*/
.
quad
osf_sysinfo
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
osf_proplist_syscall
.
quad
alpha_ni_syscall
/*
245
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
250
*/
.
quad
osf_usleep_thread
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
sys_sysfs
.
quad
alpha_ni_syscall
/*
255
*/
.
quad
osf_getsysinfo
.
quad
osf_setsysinfo
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
260
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
265
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
270
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
275
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
280
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
285
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
290
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
295
*/
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
.
quad
alpha_ni_syscall
/*
linux
-
specific
system
calls
start
at
300
*/
.
quad
sys_bdflush
/*
300
*/
.
quad
sys_sethae
.
quad
sys_mount
.
quad
sys_old_adjtimex
.
quad
sys_swapoff
.
quad
sys_getdents
/*
305
*/
.
quad
alpha_create_module
.
quad
sys_init_module
.
quad
sys_delete_module
.
quad
sys_get_kernel_syms
.
quad
sys_syslog
/*
310
*/
.
quad
sys_reboot
.
quad
sys_clone
.
quad
sys_uselib
.
quad
sys_mlock
.
quad
sys_munlock
/*
315
*/
.
quad
sys_mlockall
.
quad
sys_munlockall
.
quad
sys_sysinfo
.
quad
sys_sysctl
.
quad
sys_ni_syscall
/*
320
*/
.
quad
sys_oldumount
.
quad
sys_swapon
.
quad
sys_times
.
quad
sys_personality
.
quad
sys_setfsuid
/*
325
*/
.
quad
sys_setfsgid
.
quad
sys_ustat
.
quad
sys_statfs
.
quad
sys_fstatfs
.
quad
sys_sched_setparam
/*
330
*/
.
quad
sys_sched_getparam
.
quad
sys_sched_setscheduler
.
quad
sys_sched_getscheduler
.
quad
sys_sched_yield
.
quad
sys_sched_get_priority_max
/*
335
*/
.
quad
sys_sched_get_priority_min
.
quad
sys_sched_rr_get_interval
.
quad
sys_ni_syscall
/*
sys_afs_syscall
*/
.
quad
sys_newuname
.
quad
sys_nanosleep
/*
340
*/
.
quad
sys_mremap
.
quad
sys_nfsservctl
.
quad
sys_setresuid
.
quad
sys_getresuid
.
quad
sys_pciconfig_read
/*
345
*/
.
quad
sys_pciconfig_write
.
quad
sys_query_module
.
quad
sys_prctl
.
quad
sys_pread64
.
quad
sys_pwrite64
/*
350
*/
.
quad
sys_rt_sigreturn
.
quad
sys_rt_sigaction
.
quad
sys_rt_sigprocmask
.
quad
sys_rt_sigpending
.
quad
sys_rt_sigtimedwait
/*
355
*/
.
quad
sys_rt_sigqueueinfo
.
quad
sys_rt_sigsuspend
.
quad
sys_select
.
quad
sys_gettimeofday
.
quad
sys_settimeofday
/*
360
*/
.
quad
sys_getitimer
.
quad
sys_setitimer
.
quad
sys_utimes
.
quad
sys_getrusage
.
quad
sys_wait4
/*
365
*/
.
quad
sys_adjtimex
.
quad
sys_getcwd
.
quad
sys_capget
.
quad
sys_capset
.
quad
sys_sendfile
/*
370
*/
.
quad
sys_setresgid
.
quad
sys_getresgid
.
quad
sys_ni_syscall
/*
sys_dipc
*/
.
quad
sys_pivot_root
.
quad
sys_mincore
/*
375
*/
.
quad
sys_pciconfig_iobase
.
quad
sys_getdents64
.
quad
sys_gettid
.
quad
sys_readahead
.
quad
sys_ni_syscall
/*
380
,
sys_security
*/
.
quad
sys_tkill
.
quad
sys_setxattr
.
quad
sys_lsetxattr
.
quad
sys_fsetxattr
.
quad
sys_getxattr
/*
385
*/
.
quad
sys_lgetxattr
.
quad
sys_fgetxattr
.
quad
sys_listxattr
.
quad
sys_llistxattr
.
quad
sys_flistxattr
/*
390
*/
.
quad
sys_removexattr
.
quad
sys_lremovexattr
.
quad
sys_fremovexattr
.
quad
sys_futex
.
quad
sys_sched_setaffinity
/*
395
*/
.
quad
sys_sched_getaffinity
.
quad
sys_ni_syscall
/*
397
,
tux
*/
.
quad
sys_io_setup
.
quad
sys_io_destroy
.
quad
sys_io_getevents
/*
400
*/
.
quad
sys_io_submit
.
quad
sys_io_cancel
.
quad
sys_ni_syscall
/*
403
,
sys_alloc_hugepages
*/
.
quad
sys_ni_syscall
/*
404
,
sys_free_hugepages
*/
.
quad
sys_exit_group
.
size
sys_call_table
,
.
-
sys_call_table
.
type
sys_call_table
,
@
object
/*
Remember
to
update
everything
,
kids
.
*/
.
ifne
(.
-
sys_call_table
)
-
(
NR_SYSCALLS
*
8
)
.
err
.
endif
arch/alpha/lib/Makefile
View file @
c0fcc4c7
...
...
@@ -51,14 +51,16 @@ obj-$(CONFIG_SMP) += dec_and_lock.o
include
$(TOPDIR)/Rules.make
__divqu.o
:
$(ev6)divide.S
$(CC)
$(AFLAGS)
-DDIV
-c
-o
__divqu.o
$(ev6)
divide.S
$(obj)/__divqu.o
:
$(obj)/
$(ev6)divide.S
$(CC)
$(AFLAGS)
-DDIV
-c
-o
$(obj)
/__divqu.o
$(obj)
/
$(ev6)
divide.S
__remqu.o
:
$(ev6)divide.S
$(CC)
$(AFLAGS)
-DREM
-c
-o
__remqu.o
$(ev6)
divide.S
$(obj)/__remqu.o
:
$(obj)/
$(ev6)divide.S
$(CC)
$(AFLAGS)
-DREM
-c
-o
$(obj)
/__remqu.o
$(obj)
/
$(ev6)
divide.S
__divlu.o
:
$(ev6)divide.S
$(CC)
$(AFLAGS)
-DDIV
-DINTSIZE
-c
-o
__divlu.o
$(ev6)
divide.S
$(obj)/__divlu.o
:
$(obj)/$(ev6)divide.S
$(CC)
$(AFLAGS)
-DDIV
-DINTSIZE
\
-c
-o
$(obj)
/__divlu.o
$(obj)
/
$(ev6)
divide.S
__remlu.o
:
$(ev6)divide.S
$(CC)
$(AFLAGS)
-DREM
-DINTSIZE
-c
-o
__remlu.o
$(ev6)
divide.S
$(obj)/__remlu.o
:
$(obj)/$(ev6)divide.S
$(CC)
$(AFLAGS)
-DREM
-DINTSIZE
\
-c
-o
$(obj)
/__remlu.o
$(obj)
/
$(ev6)
divide.S
arch/alpha/lib/stackcheck.S
→
arch/alpha/lib/
dbg_
stackcheck.S
View file @
c0fcc4c7
File moved
arch/alpha/lib/stackkill.S
→
arch/alpha/lib/
dbg_
stackkill.S
View file @
c0fcc4c7
File moved
arch/alpha/mm/fault.c
View file @
c0fcc4c7
...
...
@@ -125,11 +125,10 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
goto
bad_area
;
if
(
expand_stack
(
vma
,
address
))
goto
bad_area
;
/*
* Ok, we have a good vm_area for this memory access, so
* we can handle it..
*/
good_area:
/* Ok, we have a good vm_area for this memory access, so
we can handle it. */
good_area:
if
(
cause
<
0
)
{
if
(
!
(
vma
->
vm_flags
&
VM_EXEC
))
goto
bad_area
;
...
...
@@ -143,11 +142,9 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
}
survive:
/*
* If for any reason at all we couldn't handle the fault,
* make sure we exit gracefully rather than endlessly redo
* the fault.
*/
/* If for any reason at all we couldn't handle the fault,
make sure we exit gracefully rather than endlessly redo
the fault. */
fault
=
handle_mm_fault
(
mm
,
vma
,
address
,
cause
>
0
);
up_read
(
&
mm
->
mmap_sem
);
...
...
@@ -155,14 +152,11 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
goto
out_of_memory
;
if
(
fault
==
0
)
goto
do_sigbus
;
return
;
/*
* Something tried to access memory that isn't in our memory map..
* Fix it, but check if it's kernel or user first..
*/
bad_area:
/* Something tried to access memory that isn't in our memory map.
Fix it, but check if it's kernel or user first. */
bad_area:
up_read
(
&
mm
->
mmap_sem
);
if
(
user_mode
(
regs
))
{
...
...
@@ -170,7 +164,7 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
return
;
}
no_context:
no_context:
/* Are we prepared to handle this fault as an exception? */
if
((
fixup
=
search_exception_table
(
regs
->
pc
,
regs
->
gp
))
!=
0
)
{
unsigned
long
newpc
;
...
...
@@ -183,20 +177,16 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
return
;
}
/*
* Oops. The kernel tried to access some bad page. We'll have to
* terminate things with extreme prejudice.
*/
/* Oops. The kernel tried to access some bad page. We'll have to
terminate things with extreme prejudice. */
printk
(
KERN_ALERT
"Unable to handle kernel paging request at "
"virtual address %016lx
\n
"
,
address
);
die_if_kernel
(
"Oops"
,
regs
,
cause
,
(
unsigned
long
*
)
regs
-
16
);
do_exit
(
SIGKILL
);
/*
* We ran out of memory, or some other thing happened to us that made
* us unable to handle the page fault gracefully.
*/
out_of_memory:
/* We ran out of memory, or some other thing happened to us that
made us unable to handle the page fault gracefully. */
out_of_memory:
if
(
current
->
pid
==
1
)
{
yield
();
down_read
(
&
mm
->
mmap_sem
);
...
...
@@ -208,18 +198,16 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
goto
no_context
;
do_exit
(
SIGKILL
);
do_sigbus:
/*
* Send a sigbus, regardless of whether we were in kernel
* or user mode.
*/
do_sigbus:
/* Send a sigbus, regardless of whether we were in kernel
or user mode. */
force_sig
(
SIGBUS
,
current
);
if
(
!
user_mode
(
regs
))
goto
no_context
;
return
;
#ifdef CONFIG_ALPHA_LARGE_VMALLOC
vmalloc_fault:
vmalloc_fault:
if
(
user_mode
(
regs
))
{
force_sig
(
SIGSEGV
,
current
);
return
;
...
...
arch/alpha/vmlinux.lds.S
View file @
c0fcc4c7
...
...
@@ -58,10 +58,11 @@ SECTIONS
__initcall_end
=
.
;
}
.
=
ALIGN
(
64
)
;
__per_cpu_start
=
.
;
.
data.percpu
:
{
*(
.
data
.
percpu
)
}
__per_cpu_end
=
.
;
.
data.percpu
ALIGN
(
64
)
:
{
__per_cpu_start
=
.
;
*(.
data.percpu
)
__per_cpu_end
=
.
;
}
/
*
The
initial
task
and
kernel
stack
*/
.
data.
init_thread
ALIGN
(
2
*
8192
)
:
{
...
...
include/asm-alpha/pal.h
View file @
c0fcc4c7
...
...
@@ -45,7 +45,7 @@
#define PAL_wrperfmon 57
#define PAL_rdusp 58
#define PAL_whami 60
#define PAL_rtsys 61
#define PAL_r
e
tsys 61
#define PAL_rti 63
#endif
/* __ALPHA_PAL_H */
include/asm-alpha/unistd.h
View file @
c0fcc4c7
...
...
@@ -331,19 +331,19 @@
#define __NR_removexattr 391
#define __NR_lremovexattr 392
#define __NR_fremovexattr 393
#define __NR_futex 394
#define __NR_sched_setaffinity 395
#define __NR_sched_getaffinity 396
#define __NR_tuxcall 397
#define __NR_io_setup 398
#define __NR_io_destroy 399
#define __NR_io_getevents 400
#define __NR_io_submit 401
#define __NR_io_cancel 402
#define __NR_alloc_hugepages 403
#define __NR_free_hugepages 404
#define __NR_exit_group 405
#define __NR_futex
394
#define __NR_sched_setaffinity
395
#define __NR_sched_getaffinity
396
#define __NR_tuxcall
397
#define __NR_io_setup
398
#define __NR_io_destroy
399
#define __NR_io_getevents
400
#define __NR_io_submit
401
#define __NR_io_cancel
402
#define __NR_alloc_hugepages
403
#define __NR_free_hugepages
404
#define __NR_exit_group
405
#define NR_SYSCALLS 406
#if defined(__GNUC__)
...
...
@@ -598,7 +598,7 @@ static inline pid_t waitpid(int pid, int * wait_stat, int flags)
return
sys_wait4
(
pid
,
wait_stat
,
flags
,
NULL
);
}
#endif
#endif
/* __KERNEL_SYSCALLS__ */
/*
* "Conditional" syscalls
...
...
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