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
Kirill Smelkov
linux
Commits
b2fdea4f
Commit
b2fdea4f
authored
Aug 14, 2003
by
David Mosberger
Browse files
Options
Browse Files
Download
Plain Diff
Merge tiger.hpl.hp.com:/data1/bk/vanilla/linux-2.6.0-test3
into tiger.hpl.hp.com:/data1/bk/lia64/to-linus-2.5
parents
ca377000
65cc6cd6
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
206 additions
and
93 deletions
+206
-93
arch/ia64/ia32/sys_ia32.c
arch/ia64/ia32/sys_ia32.c
+8
-4
arch/ia64/kernel/efivars.c
arch/ia64/kernel/efivars.c
+82
-16
include/asm-ia64/sn/nodepda.h
include/asm-ia64/sn/nodepda.h
+2
-1
include/asm-ia64/unistd.h
include/asm-ia64/unistd.h
+114
-72
No files found.
arch/ia64/ia32/sys_ia32.c
View file @
b2fdea4f
...
@@ -1374,7 +1374,7 @@ msgctl32 (int first, int second, void *uptr)
...
@@ -1374,7 +1374,7 @@ msgctl32 (int first, int second, void *uptr)
break
;
break
;
old_fs
=
get_fs
();
old_fs
=
get_fs
();
set_fs
(
KERNEL_DS
);
set_fs
(
KERNEL_DS
);
err
=
sys_msgctl
(
first
,
second
,
&
m64
);
err
=
sys_msgctl
(
first
,
second
,
(
struct
msqid_ds
*
)
&
m64
);
set_fs
(
old_fs
);
set_fs
(
old_fs
);
break
;
break
;
...
@@ -1382,7 +1382,7 @@ msgctl32 (int first, int second, void *uptr)
...
@@ -1382,7 +1382,7 @@ msgctl32 (int first, int second, void *uptr)
case
MSG_STAT
:
case
MSG_STAT
:
old_fs
=
get_fs
();
old_fs
=
get_fs
();
set_fs
(
KERNEL_DS
);
set_fs
(
KERNEL_DS
);
err
=
sys_msgctl
(
first
,
second
,
(
void
*
)
&
m64
);
err
=
sys_msgctl
(
first
,
second
,
(
struct
msqid_ds
*
)
&
m64
);
set_fs
(
old_fs
);
set_fs
(
old_fs
);
if
(
version
==
IPC_64
)
{
if
(
version
==
IPC_64
)
{
...
@@ -1518,7 +1518,7 @@ shmctl32 (int first, int second, void *uptr)
...
@@ -1518,7 +1518,7 @@ shmctl32 (int first, int second, void *uptr)
break
;
break
;
old_fs
=
get_fs
();
old_fs
=
get_fs
();
set_fs
(
KERNEL_DS
);
set_fs
(
KERNEL_DS
);
err
=
sys_shmctl
(
first
,
second
,
&
s64
);
err
=
sys_shmctl
(
first
,
second
,
(
struct
shmid_ds
*
)
&
s64
);
set_fs
(
old_fs
);
set_fs
(
old_fs
);
break
;
break
;
...
@@ -1526,7 +1526,7 @@ shmctl32 (int first, int second, void *uptr)
...
@@ -1526,7 +1526,7 @@ shmctl32 (int first, int second, void *uptr)
case
SHM_STAT
:
case
SHM_STAT
:
old_fs
=
get_fs
();
old_fs
=
get_fs
();
set_fs
(
KERNEL_DS
);
set_fs
(
KERNEL_DS
);
err
=
sys_shmctl
(
first
,
second
,
(
void
*
)
&
s64
);
err
=
sys_shmctl
(
first
,
second
,
(
struct
shmid_ds
*
)
&
s64
);
set_fs
(
old_fs
);
set_fs
(
old_fs
);
if
(
err
<
0
)
if
(
err
<
0
)
break
;
break
;
...
@@ -1694,6 +1694,10 @@ sys32_time (int *tloc)
...
@@ -1694,6 +1694,10 @@ sys32_time (int *tloc)
return
i
;
return
i
;
}
}
asmlinkage
long
compat_sys_wait4
(
compat_pid_t
pid
,
compat_uint_t
*
stat_addr
,
int
options
,
struct
compat_rusage
*
ru
);
asmlinkage
long
asmlinkage
long
sys32_waitpid
(
int
pid
,
unsigned
int
*
stat_addr
,
int
options
)
sys32_waitpid
(
int
pid
,
unsigned
int
*
stat_addr
,
int
options
)
{
{
...
...
arch/ia64/kernel/efivars.c
View file @
b2fdea4f
...
@@ -168,13 +168,12 @@ efivar_create_proc_entry(unsigned long variable_name_size,
...
@@ -168,13 +168,12 @@ efivar_create_proc_entry(unsigned long variable_name_size,
efi_char16_t
*
variable_name
,
efi_char16_t
*
variable_name
,
efi_guid_t
*
vendor_guid
)
efi_guid_t
*
vendor_guid
)
{
{
int
i
,
short_name_size
=
variable_name_size
/
sizeof
(
efi_char16_t
)
+
38
;
int
i
,
short_name_size
=
variable_name_size
/
sizeof
(
efi_char16_t
)
+
38
;
char
*
short_name
;
char
*
short_name
;
efivar_entry_t
*
new_efivar
;
efivar_entry_t
*
new_efivar
;
short_name
=
kmalloc
(
short_name_size
+
1
,
GFP_KERNEL
);
short_name
=
kmalloc
(
short_name_size
+
1
,
GFP_KERNEL
);
new_efivar
=
kmalloc
(
sizeof
(
efivar_entry_t
),
GFP_KERNEL
);
new_efivar
=
kmalloc
(
sizeof
(
efivar_entry_t
),
GFP_KERNEL
);
if
(
!
short_name
||
!
new_efivar
)
{
if
(
!
short_name
||
!
new_efivar
)
{
if
(
short_name
)
kfree
(
short_name
);
if
(
short_name
)
kfree
(
short_name
);
...
@@ -210,9 +209,9 @@ efivar_create_proc_entry(unsigned long variable_name_size,
...
@@ -210,9 +209,9 @@ efivar_create_proc_entry(unsigned long variable_name_size,
new_efivar
->
entry
->
read_proc
=
efivar_read
;
new_efivar
->
entry
->
read_proc
=
efivar_read
;
new_efivar
->
entry
->
write_proc
=
efivar_write
;
new_efivar
->
entry
->
write_proc
=
efivar_write
;
spin_lock
(
&
efivars_lock
);
spin_lock
(
&
efivars_lock
);
list_add
(
&
new_efivar
->
list
,
&
efivar_list
);
list_add
(
&
new_efivar
->
list
,
&
efivar_list
);
spin_unlock
(
&
efivars_lock
);
spin_unlock
(
&
efivars_lock
);
return
0
;
return
0
;
}
}
...
@@ -283,7 +282,7 @@ efivar_write(struct file *file, const char *buffer,
...
@@ -283,7 +282,7 @@ efivar_write(struct file *file, const char *buffer,
if
(
!
var_data
)
if
(
!
var_data
)
return
-
ENOMEM
;
return
-
ENOMEM
;
if
(
copy_from_user
(
var_data
,
buffer
,
size
))
{
if
(
copy_from_user
(
var_data
,
buffer
,
size
))
{
kfree
(
var_data
);
kfree
(
var_data
);
return
-
EFAULT
;
return
-
EFAULT
;
}
}
...
@@ -344,12 +343,73 @@ efivar_write(struct file *file, const char *buffer,
...
@@ -344,12 +343,73 @@ efivar_write(struct file *file, const char *buffer,
return
size
;
return
size
;
}
}
/*
* The EFI system table contains pointers to the SAL system table,
* HCDP, ACPI, SMBIOS, etc, that may be useful to applications.
*/
static
ssize_t
efi_systab_read
(
struct
file
*
file
,
char
*
buffer
,
size_t
count
,
loff_t
*
ppos
)
{
void
*
data
;
u8
*
proc_buffer
;
ssize_t
size
,
length
;
int
ret
;
const
int
max_nr_entries
=
7
;
/* num ptrs to tables we could expose */
const
int
max_line_len
=
80
;
if
(
!
efi
.
systab
)
return
0
;
proc_buffer
=
kmalloc
(
max_nr_entries
*
max_line_len
,
GFP_KERNEL
);
if
(
!
proc_buffer
)
return
-
ENOMEM
;
length
=
0
;
if
(
efi
.
mps
)
length
+=
sprintf
(
proc_buffer
+
length
,
"MPS=0x%lx
\n
"
,
__pa
(
efi
.
mps
));
if
(
efi
.
acpi20
)
length
+=
sprintf
(
proc_buffer
+
length
,
"ACPI20=0x%lx
\n
"
,
__pa
(
efi
.
acpi20
));
if
(
efi
.
acpi
)
length
+=
sprintf
(
proc_buffer
+
length
,
"ACPI=0x%lx
\n
"
,
__pa
(
efi
.
acpi
));
if
(
efi
.
smbios
)
length
+=
sprintf
(
proc_buffer
+
length
,
"SMBIOS=0x%lx
\n
"
,
__pa
(
efi
.
smbios
));
if
(
efi
.
sal_systab
)
length
+=
sprintf
(
proc_buffer
+
length
,
"SAL=0x%lx
\n
"
,
__pa
(
efi
.
sal_systab
));
if
(
efi
.
hcdp
)
length
+=
sprintf
(
proc_buffer
+
length
,
"HCDP=0x%lx
\n
"
,
__pa
(
efi
.
hcdp
));
if
(
efi
.
boot_info
)
length
+=
sprintf
(
proc_buffer
+
length
,
"BOOTINFO=0x%lx
\n
"
,
__pa
(
efi
.
boot_info
));
if
(
*
ppos
>=
length
)
{
ret
=
0
;
goto
out
;
}
data
=
proc_buffer
+
file
->
f_pos
;
size
=
length
-
file
->
f_pos
;
if
(
size
>
count
)
size
=
count
;
if
(
copy_to_user
(
buffer
,
data
,
size
))
{
ret
=
-
EFAULT
;
goto
out
;
}
*
ppos
+=
size
;
ret
=
size
;
out:
kfree
(
proc_buffer
);
return
ret
;
}
static
struct
proc_dir_entry
*
efi_systab_entry
;
static
struct
file_operations
efi_systab_fops
=
{
.
read
=
efi_systab_read
,
};
static
int
__init
static
int
__init
efivars_init
(
void
)
efivars_init
(
void
)
{
{
efi_status_t
status
;
efi_status_t
status
;
efi_guid_t
vendor_guid
;
efi_guid_t
vendor_guid
;
efi_char16_t
*
variable_name
=
kmalloc
(
1024
,
GFP_KERNEL
);
efi_char16_t
*
variable_name
=
kmalloc
(
1024
,
GFP_KERNEL
);
...
@@ -357,13 +417,17 @@ efivars_init(void)
...
@@ -357,13 +417,17 @@ efivars_init(void)
printk
(
KERN_INFO
"EFI Variables Facility v%s
\n
"
,
EFIVARS_VERSION
);
printk
(
KERN_INFO
"EFI Variables Facility v%s
\n
"
,
EFIVARS_VERSION
);
/* Since efi.c happens before procfs is available,
/* Since efi.c happens before procfs is available,
we create the directory here if it doesn't
we create the directory here if it doesn't
already exist. There's probably a better way
already exist. There's probably a better way
to do this.
to do this.
*/
*/
if
(
!
efi_dir
)
if
(
!
efi_dir
)
efi_dir
=
proc_mkdir
(
"efi"
,
NULL
);
efi_dir
=
proc_mkdir
(
"efi"
,
NULL
);
efi_systab_entry
=
create_proc_entry
(
"systab"
,
S_IRUSR
|
S_IRGRP
,
efi_dir
);
if
(
efi_systab_entry
)
efi_systab_entry
->
proc_fops
=
&
efi_systab_fops
;
efi_vars_dir
=
proc_mkdir
(
"vars"
,
efi_dir
);
efi_vars_dir
=
proc_mkdir
(
"vars"
,
efi_dir
);
...
@@ -407,7 +471,9 @@ efivars_exit(void)
...
@@ -407,7 +471,9 @@ efivars_exit(void)
struct
list_head
*
pos
,
*
n
;
struct
list_head
*
pos
,
*
n
;
efivar_entry_t
*
efivar
;
efivar_entry_t
*
efivar
;
spin_lock
(
&
efivars_lock
);
spin_lock
(
&
efivars_lock
);
if
(
efi_systab_entry
)
remove_proc_entry
(
efi_systab_entry
->
name
,
efi_dir
);
list_for_each_safe
(
pos
,
n
,
&
efivar_list
)
{
list_for_each_safe
(
pos
,
n
,
&
efivar_list
)
{
efivar
=
efivar_entry
(
pos
);
efivar
=
efivar_entry
(
pos
);
remove_proc_entry
(
efivar
->
entry
->
name
,
efi_vars_dir
);
remove_proc_entry
(
efivar
->
entry
->
name
,
efi_vars_dir
);
...
...
include/asm-ia64/sn/nodepda.h
View file @
b2fdea4f
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
#include <linux/config.h>
#include <linux/config.h>
#include <asm/sn/sgi.h>
#include <asm/sn/sgi.h>
#include <asm/irq.h>
#include <asm/irq.h>
#include <asm/topology.h>
#include <asm/sn/intr.h>
#include <asm/sn/intr.h>
#include <asm/sn/router.h>
#include <asm/sn/router.h>
#include <asm/sn/pda.h>
#include <asm/sn/pda.h>
...
@@ -127,7 +128,7 @@ typedef struct irqpda_s irqpda_t;
...
@@ -127,7 +128,7 @@ typedef struct irqpda_s irqpda_t;
* Check if given a compact node id the corresponding node has all the
* Check if given a compact node id the corresponding node has all the
* cpus disabled.
* cpus disabled.
*/
*/
#define is_headless_node(cnode) (!
test_bit(cnode, &node_has_active_cpus
))
#define is_headless_node(cnode) (!
node_to_cpumask(cnode
))
/*
/*
* Check if given a node vertex handle the corresponding node has all the
* Check if given a node vertex handle the corresponding node has all the
...
...
include/asm-ia64/unistd.h
View file @
b2fdea4f
...
@@ -257,96 +257,138 @@
...
@@ -257,96 +257,138 @@
extern
long
__ia64_syscall
(
long
a0
,
long
a1
,
long
a2
,
long
a3
,
long
a4
,
long
nr
);
extern
long
__ia64_syscall
(
long
a0
,
long
a1
,
long
a2
,
long
a3
,
long
a4
,
long
nr
);
#
define _syscall0(type,name) \
#
ifdef __KERNEL_SYSCALLS__
type \
name (void) \
#include <linux/string.h>
{ \
#include <linux/signal.h>
register long dummy1 __asm__ ("out0"); \
#include <asm/ptrace.h>
register long dummy2 __asm__ ("out1"); \
#include <linux/stringify.h>
register long dummy3 __asm__ ("out2"); \
register long dummy4 __asm__ ("out3"); \
static
inline
long
register long dummy5 __asm__ ("out4"); \
open
(
const
char
*
name
,
int
mode
,
int
flags
)
\
{
return __ia64_syscall(dummy1, dummy2, dummy3, dummy4, dummy5, \
extern
long
sys_open
(
const
char
*
,
int
,
int
);
__NR_##name); \
return
sys_open
(
name
,
mode
,
flags
);
}
}
#define _syscall1(type,name,type1,arg1) \
static
inline
long
type \
dup
(
int
fd
)
name (type1 arg1) \
{
{ \
extern
long
sys_dup
(
int
);
register long dummy2 __asm__ ("out1"); \
return
sys_dup
(
fd
);
register long dummy3 __asm__ ("out2"); \
register long dummy4 __asm__ ("out3"); \
register long dummy5 __asm__ ("out4"); \
\
return __ia64_syscall((long) arg1, dummy2, dummy3, dummy4, \
dummy5, __NR_##name); \
}
}
#define _syscall2(type,name,type1,arg1,type2,arg2) \
static
inline
long
type \
close
(
int
fd
)
name (type1 arg1, type2 arg2) \
{
{ \
extern
long
sys_close
(
unsigned
int
);
register long dummy3 __asm__ ("out2"); \
return
sys_close
(
fd
);
register long dummy4 __asm__ ("out3"); \
register long dummy5 __asm__ ("out4"); \
\
return __ia64_syscall((long) arg1, (long) arg2, dummy3, dummy4, \
dummy5, __NR_##name); \
}
}
#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
static
inline
off_t
type \
lseek
(
int
fd
,
off_t
off
,
int
whence
)
name (type1 arg1, type2 arg2, type3 arg3) \
{
{ \
extern
off_t
sys_lseek
(
int
,
off_t
,
int
);
register long dummy4 __asm__ ("out3"); \
return
sys_lseek
(
fd
,
off
,
whence
);
register long dummy5 __asm__ ("out4"); \
\
return __ia64_syscall((long) arg1, (long) arg2, (long) arg3, \
dummy4, dummy5, __NR_##name); \
}
}
#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
static
inline
long
type \
_exit
(
int
value
)
name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
{
{ \
extern
long
sys_exit
(
int
);
register long dummy5 __asm__ ("out4"); \
return
sys_exit
(
value
);
\
return __ia64_syscall((long) arg1, (long) arg2, (long) arg3, \
(long) arg4, dummy5, __NR_##name); \
}
}
#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
#define exit(x) _exit(x)
type \
name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
static
inline
long
{ \
write
(
int
fd
,
const
char
*
buf
,
size_t
nr
)
return __ia64_syscall((long) arg1, (long) arg2, (long) arg3, \
{
(long) arg4, (long) arg5, __NR_##name); \
extern
long
sys_write
(
int
,
const
char
*
,
size_t
);
return
sys_write
(
fd
,
buf
,
nr
);
}
}
#ifdef __KERNEL_SYSCALLS__
static
inline
long
read
(
int
fd
,
char
*
buf
,
size_t
nr
)
{
extern
long
sys_read
(
int
,
char
*
,
size_t
);
return
sys_read
(
fd
,
buf
,
nr
);
}
struct
rusage
;
static
inline
_syscall0
(
pid_t
,
setsid
)
static
inline
long
static
inline
_syscall3
(
int
,
write
,
int
,
fd
,
const
char
*
,
buf
,
off_t
,
count
)
setsid
(
void
)
static
inline
_syscall3
(
int
,
read
,
int
,
fd
,
char
*
,
buf
,
off_t
,
count
)
{
static
inline
_syscall3
(
off_t
,
lseek
,
int
,
fd
,
off_t
,
offset
,
int
,
count
)
extern
long
sys_setsid
(
void
);
static
inline
_syscall1
(
int
,
dup
,
int
,
fd
)
return
sys_setsid
();
static
inline
_syscall3
(
int
,
execve
,
const
char
*
,
file
,
char
**
,
argv
,
char
**
,
envp
)
}
static
inline
_syscall3
(
int
,
open
,
const
char
*
,
file
,
int
,
flag
,
int
,
mode
)
static
inline
_syscall1
(
int
,
close
,
int
,
fd
)
static
inline
pid_t
static
inline
_syscall4
(
pid_t
,
wait4
,
pid_t
,
pid
,
int
*
,
wait_stat
,
int
,
options
,
struct
rusage
*
,
rusage
)
waitpid
(
int
pid
,
int
*
wait_stat
,
int
flags
)
static
inline
_syscall2
(
pid_t
,
clone
,
unsigned
long
,
flags
,
void
*
,
sp
);
{
extern
asmlinkage
long
sys_wait4
(
pid_t
,
unsigned
int
*
,
int
,
struct
rusage
*
);
struct
rusage
;
return
sys_wait4
(
pid
,
wait_stat
,
flags
,
NULL
);
}
#define __NR__exit __NR_exit
static
inline
_syscall1
(
int
,
_exit
,
int
,
exitcode
)
static
inline
int
execve
(
const
char
*
filename
,
char
*
const
av
[],
char
*
const
ep
[])
{
register
long
r8
asm
(
"r8"
);
register
long
r10
asm
(
"r10"
);
register
long
r15
asm
(
"r15"
)
=
__NR_execve
;
register
long
out0
asm
(
"out0"
)
=
(
long
)
filename
;
register
long
out1
asm
(
"out1"
)
=
(
long
)
av
;
register
long
out2
asm
(
"out2"
)
=
(
long
)
ep
;
asm
volatile
(
"break "
__stringify
(
__BREAK_SYSCALL
)
";;
\n\t
"
:
"=r"
(
r8
),
"=r"
(
r10
),
"=r"
(
r15
),
"=r"
(
out0
),
"=r"
(
out1
),
"=r"
(
out2
)
:
"2"
(
r15
),
"3"
(
out0
),
"4"
(
out1
),
"5"
(
out2
)
:
"memory"
,
"out3"
,
"out4"
,
"out5"
,
"out6"
,
"out7"
,
/* Non-stacked integer registers, minus r8, r10, r15, r13 */
"r2"
,
"r3"
,
"r9"
,
"r11"
,
"r12"
,
"r14"
,
"r16"
,
"r17"
,
"r18"
,
"r19"
,
"r20"
,
"r21"
,
"r22"
,
"r23"
,
"r24"
,
"r25"
,
"r26"
,
"r27"
,
"r28"
,
"r29"
,
"r30"
,
"r31"
,
/* Predicate registers. */
"p6"
,
"p7"
,
"p8"
,
"p9"
,
"p10"
,
"p11"
,
"p12"
,
"p13"
,
"p14"
,
"p15"
,
/* Non-rotating fp registers. */
"f6"
,
"f7"
,
"f8"
,
"f9"
,
"f10"
,
"f11"
,
"f12"
,
"f13"
,
"f14"
,
"f15"
,
/* Branch registers. */
"b6"
,
"b7"
);
return
r8
;
}
static
inline
pid_t
static
inline
pid_t
waitpid
(
int
pid
,
int
*
wait_stat
,
int
flags
)
clone
(
unsigned
long
flags
,
void
*
sp
)
{
{
return
wait4
(
pid
,
wait_stat
,
flags
,
NULL
);
register
long
r8
asm
(
"r8"
);
register
long
r10
asm
(
"r10"
);
register
long
r15
asm
(
"r15"
)
=
__NR_clone
;
register
long
out0
asm
(
"out0"
)
=
(
long
)
flags
;
register
long
out1
asm
(
"out1"
)
=
(
long
)
sp
;
long
retval
;
/* clone clobbers current, hence the "r13" in the clobbers list */
asm
volatile
(
"break "
__stringify
(
__BREAK_SYSCALL
)
";;
\n\t
"
:
"=r"
(
r8
),
"=r"
(
r10
),
"=r"
(
r15
),
"=r"
(
out0
),
"=r"
(
out1
)
:
"2"
(
r15
),
"3"
(
out0
),
"4"
(
out1
)
:
"memory"
,
"out0"
,
"out1"
,
"out2"
,
"out3"
,
"out4"
,
"out5"
,
"out6"
,
"out7"
,
"r13"
,
/* Non-stacked integer registers, minus r8, r10, r15, r13 */
"r2"
,
"r3"
,
"r9"
,
"r11"
,
"r12"
,
"r14"
,
"r16"
,
"r17"
,
"r18"
,
"r19"
,
"r20"
,
"r21"
,
"r22"
,
"r23"
,
"r24"
,
"r25"
,
"r26"
,
"r27"
,
"r28"
,
"r29"
,
"r30"
,
"r31"
,
/* Predicate registers. */
"p6"
,
"p7"
,
"p8"
,
"p9"
,
"p10"
,
"p11"
,
"p12"
,
"p13"
,
"p14"
,
"p15"
,
/* Non-rotating fp registers. */
"f6"
,
"f7"
,
"f8"
,
"f9"
,
"f10"
,
"f11"
,
"f12"
,
"f13"
,
"f14"
,
"f15"
,
/* Branch registers. */
"b6"
,
"b7"
);
retval
=
r8
;
return
retval
;;
}
}
#endif
/* __KERNEL_SYSCALLS__ */
#endif
/* __KERNEL_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