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
c7387f9f
Commit
c7387f9f
authored
Mar 22, 2003
by
Anton Blanchard
Browse files
Options
Browse Files
Download
Plain Diff
Merge samba.org:/scratch/anton/sfr into samba.org:/scratch/anton/export
parents
9fde88ec
42048a0c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
25 additions
and
19 deletions
+25
-19
arch/ppc64/Makefile
arch/ppc64/Makefile
+5
-7
arch/ppc64/boot/Makefile
arch/ppc64/boot/Makefile
+3
-3
arch/ppc64/kernel/process.c
arch/ppc64/kernel/process.c
+7
-1
include/asm-ppc64/pgtable.h
include/asm-ppc64/pgtable.h
+10
-8
No files found.
arch/ppc64/Makefile
View file @
c7387f9f
...
...
@@ -13,10 +13,10 @@
# Adjusted for PPC64 by Tom Gall
#
KERNELLOAD
=
0xc000000000000000
KERNELLOAD
:
=
0xc000000000000000
LDFLAGS
:=
-m
elf64ppc
LDFLAGS_vmlinux
=
-Bstatic
-e
$(KERNELLOAD)
-Ttext
$(KERNELLOAD)
LDFLAGS_vmlinux
:
=
-Bstatic
-e
$(KERNELLOAD)
-Ttext
$(KERNELLOAD)
LDFLAGS_BLOB
:=
--format
binary
--oformat
elf64-powerpc
CFLAGS
+=
-msoft-float
-pipe
-Wno-uninitialized
-mminimal-toc
\
-mtraceback
=
full
-mcpu
=
power4
...
...
@@ -29,21 +29,19 @@ core-y += arch/ppc64/mm/
core-$(CONFIG_XMON)
+=
arch
/ppc64/xmon/
drivers-$(CONFIG_OPROFILE)
+=
arch
/ppc64/oprofile/
makeboot
=
$(Q)$(MAKE)
-f
scripts/Makefile.build
obj
=
arch
/ppc64/boot
$(1)
boot
:=
arch
/ppc64/boot
boottarget-$(CONFIG_PPC_PSERIES)
:=
zImage zImage.initrd
boottarget-$(CONFIG_PPC_ISERIES)
:=
vmlinux.sminitrd vmlinux.initrd vmlinux.sm
$(boottarget-y)
:
vmlinux
$(
call
makeboot,arch/ppc64/boot/
$@
)
$(
Q)$(MAKE)
$(build)
=
$(boot)
$(boot)
/
$@
%_config
:
arch/ppc64/configs/%_defconfig
rm
-f
.config
arch
/ppc64/defconfig
cp
-f
arch
/ppc64/configs/
$
(
@:config
=
defconfig
)
arch
/ppc64/defconfig
archclean
:
$(Q)$(MAKE)
-f
scripts/Makefile.clean
obj
=
arch
/ppc64/boot
archmrproper
:
$(Q)$(MAKE)
$(clean)
=
$(boot)
prepare
:
include/asm-ppc64/offsets.h
...
...
arch/ppc64/boot/Makefile
View file @
c7387f9f
...
...
@@ -79,7 +79,7 @@ $(obj)/vmlinux.initrd: vmlinux $(obj)/addRamDisk $(obj)/ramdisk.image.gz System.
$(obj)/vmlinux.sminitrd
:
$(obj)/vmlinux.sm $(obj)/addRamDisk $(obj)/ramdisk.image.gz FORCE
$(
call
if_changed,ramdisk
)
$(obj)/sysmap.o
:
System.map $(obj)/piggyback
$(obj)/sysmap.o
:
System.map $(obj)/piggyback
FORCE
$(
call
if_changed,piggy
)
addsection
=
$(BOOTOBJCOPY)
$(1)
\
...
...
@@ -92,7 +92,7 @@ quiet_cmd_addnote = ADDNOTE $@
quiet_cmd_piggy
=
PIGGY
$@
cmd_piggy
=
$(obj)
/piggyback
$
(
@:.o
=)
<
$<
|
$(BOOTAS)
-o
$@
$(call gz-sec, $(required))
:
$(obj)/kernel-%.gz: %
$(call gz-sec, $(required))
:
$(obj)/kernel-%.gz: %
FORCE
$(
call
if_changed,gzip
)
$(obj)/kernel-initrd.gz
:
$(obj)/ramdisk.image.gz
...
...
@@ -101,7 +101,7 @@ $(obj)/kernel-initrd.gz: $(obj)/ramdisk.image.gz
$(call src-sec, $(required) $(initrd))
:
$(obj)/kernel-%.c: $(obj)/kernel-%.gz
touch
$@
$(call obj-sec, $(required) $(initrd))
:
$(obj)/kernel-%.o: $(obj)/kernel-%.c
$(call obj-sec, $(required) $(initrd))
:
$(obj)/kernel-%.o: $(obj)/kernel-%.c
FORCE
$(
call
if_changed_dep,bootcc
)
$(
call
addsection,
$@
)
...
...
arch/ppc64/kernel/process.c
View file @
c7387f9f
...
...
@@ -208,6 +208,12 @@ copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
}
else
{
childregs
->
gpr
[
1
]
=
usp
;
p
->
thread
.
regs
=
childregs
;
if
(
clone_flags
&
CLONE_SETTLS
)
{
if
(
test_thread_flag
(
TIF_32BIT
))
childregs
->
gpr
[
2
]
=
childregs
->
gpr
[
6
];
else
childregs
->
gpr
[
13
]
=
childregs
->
gpr
[
6
];
}
}
childregs
->
gpr
[
3
]
=
0
;
/* Result from fork() */
sp
-=
STACK_FRAME_OVERHEAD
;
...
...
@@ -304,7 +310,7 @@ int sys_clone(unsigned long clone_flags, unsigned long p2, unsigned long p3,
if
(
clone_flags
&
(
CLONE_PARENT_SETTID
|
CLONE_CHILD_SETTID
|
CLONE_CHILD_CLEARTID
))
{
parent_tidptr
=
p3
;
child_tidptr
=
p
4
;
child_tidptr
=
p
5
;
if
(
test_thread_flag
(
TIF_32BIT
))
{
parent_tidptr
&=
0xffffffff
;
child_tidptr
&=
0xffffffff
;
...
...
include/asm-ppc64/pgtable.h
View file @
c7387f9f
...
...
@@ -83,9 +83,7 @@
#define _PAGE_WRITETHRU 0x040UL
/* W: cache write-through */
#define _PAGE_DIRTY 0x080UL
/* C: page changed */
#define _PAGE_ACCESSED 0x100UL
/* R: page referenced */
#if 0
#define _PAGE_HPTENOIX 0x200UL /* software: pte HPTE slot unknown */
#endif
#define _PAGE_FILE 0x200UL
/* software: pte holds file offset */
#define _PAGE_HASHPTE 0x400UL
/* software: pte has an associated HPTE */
#define _PAGE_EXEC 0x800UL
/* software: i-cache coherence required */
#define _PAGE_SECONDARY 0x8000UL
/* software: HPTE is in secondary group */
...
...
@@ -234,6 +232,7 @@ static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_RW;}
static
inline
int
pte_exec
(
pte_t
pte
)
{
return
pte_val
(
pte
)
&
_PAGE_EXEC
;}
static
inline
int
pte_dirty
(
pte_t
pte
)
{
return
pte_val
(
pte
)
&
_PAGE_DIRTY
;}
static
inline
int
pte_young
(
pte_t
pte
)
{
return
pte_val
(
pte
)
&
_PAGE_ACCESSED
;}
static
inline
int
pte_file
(
pte_t
pte
)
{
return
pte_val
(
pte
)
&
_PAGE_FILE
;}
static
inline
void
pte_uncache
(
pte_t
pte
)
{
pte_val
(
pte
)
|=
_PAGE_NO_CACHE
;
}
static
inline
void
pte_cache
(
pte_t
pte
)
{
pte_val
(
pte
)
&=
~
_PAGE_NO_CACHE
;
}
...
...
@@ -349,11 +348,14 @@ struct vm_area_struct;
extern
void
update_mmu_cache
(
struct
vm_area_struct
*
,
unsigned
long
,
pte_t
);
/* Encode and de-code a swap entry */
#define __swp_type(entry) (((entry).val >> 1) & 0x3f)
#define __swp_offset(entry) ((entry).val >> 8)
#define __swp_entry(type, offset) ((swp_entry_t) { ((type) << 1) | ((offset) << 8) })
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) >> PTE_SHIFT })
#define __swp_entry_to_pte(x) ((pte_t) { (x).val << PTE_SHIFT })
#define __swp_type(entry) (((entry).val >> 1) & 0x3f)
#define __swp_offset(entry) ((entry).val >> 8)
#define __swp_entry(type, offset) ((swp_entry_t) { ((type) << 1) | ((offset) << 8) })
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) >> PTE_SHIFT })
#define __swp_entry_to_pte(x) ((pte_t) { (x).val << PTE_SHIFT })
#define pte_to_pgoff(pte) (pte_val(pte) >> PTE_SHIFT)
#define pgoff_to_pte(off) ((pte_t) {((off) << PTE_SHIFT)|_PAGE_FILE})
#define PTE_FILE_MAX_BITS (BITS_PER_LONG - PTE_SHIFT)
/*
* kern_addr_valid is intended to indicate whether an address is a valid
...
...
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