Commit graph

64 commits

Author SHA1 Message Date
Stephen Tu
ff2783442e Correct a security bug in copyuvm()
copyuvm() should not allow new copied pages to inherit more
permissions than the original pages.
2013-03-04 16:16:54 -05:00
Robert Morris
792d83cad1 nits 2012-08-28 14:11:23 -04:00
Frans Kaashoek
3fb7eceea7 Runoff still complaints these lines are too long, but it is now ok on printout 2012-08-22 21:24:13 -04:00
Frans Kaashoek
4ce832ddd2 Remove unused argument to setupkvm (thanks to Peter Froehlich) 2012-08-22 20:19:37 -04:00
Robert Morris
c092540e39 eliminate enter_alloc -- use kalloc for everything 2011-09-13 13:14:52 -04:00
Robert Morris
7e7cb106d0 more regular kmap[] and description 2011-09-13 12:28:45 -04:00
Austin Clements
dd4438b4fe Nuke data.S, since we do have a custom linker script. 2011-09-02 14:51:55 -04:00
Austin Clements
6f3ca059f2 Oops, dropped a paren 2011-09-02 14:37:42 -04:00
Austin Clements
2eb214c9db clear_pte_u -> clearpteu 2011-09-02 14:37:04 -04:00
Austin Clements
91aa0f3296 Move copy_pte_u; fits vm.c in one less column and aligns proc.h 2011-09-02 14:35:58 -04:00
Austin Clements
9e4272c14e Cleanup comments and fit setupkvm on same page as kmap, which aligns lots of other things 2011-09-02 14:34:29 -04:00
Austin Clements
14835ec987 Style 2011-09-02 14:28:44 -04:00
Austin Clements
cf7b670293 Make mappages fit on the page 2011-09-02 14:11:16 -04:00
Austin Clements
052e18485d Skip missing page directories in deallocuvm
Previously, deallocuvm scanned from 0 to KERNBASE in one page
increments, which had a noticable effect on boot time.  Now it skips
over missing page directories.
2011-09-01 21:29:09 -04:00
Robert Morris
371ab7fa96 inaccessible page under the user stack page, to help exec deal w/ too-large args 2011-09-01 13:25:34 -04:00
Robert Morris
62e3b8a92c Merge branch 'master' of git+ssh://amsterdam.csail.mit.edu/home/am0/6.828/xv6
Conflicts:
	vm.c
2011-09-01 12:03:49 -04:00
Robert Morris
5a23692444 fix usertests to correctly test what happens when you call
exec() with arguments that don't fit on a single page.
2011-09-01 12:02:49 -04:00
Frans Kaashoek
e25b74ca80 Fix layout issues for printed version 2011-09-01 10:25:20 -04:00
Austin Clements
a7061b4f97 Style nits; indentation and tabs 2011-08-29 16:12:01 -04:00
Frans Kaashoek
6f2327580f Eliminate USERTOP; no use for it. 2011-08-24 10:24:40 -04:00
Frans Kaashoek
5f069dcf2f Switch back to #define for PHYSTOP. Using the E820 to retrieve the memory map is too complicated (must be done in 16-bit real-mode, probably enlarged bootblock beyond 512 bytes, and a #define requires less explanation). 2011-08-16 20:23:17 -04:00
Frans Kaashoek
c3dcf47966 Clean up memlayout.h
Get rid of last instances of linear address and "la"
Get ready for detecting physical memory dynamically
2011-08-16 15:47:22 -04:00
Frans Kaashoek
d9818bdd7d Make Austin happier
2011
2011-08-15 20:21:14 -04:00
Frans Kaashoek
a4b213cf49 Avoid "boot" in xv6 2011-08-15 20:11:13 -04:00
Frans Kaashoek
bd71a45046 Make AP processors boot using bootpgdir
Remove device mapping from bootpgdir
Remove unnecessary vmenable
Set CPUS back to 2 in Makefile
Passes all usertests
2011-08-11 12:25:10 -04:00
Frans Kaashoek
8a9933a200 Tiny bit of cleanup 2011-08-09 21:56:43 -04:00
Frans Kaashoek
5460667c9c x 2011-08-09 21:49:13 -04:00
Frans Kaashoek
66ba8079c7 Use static page table for boot, mapping first 4Mbyte; no more segment trick
Allocate proper kernel page table immediately in main using boot allocator
Remove pginit
Simplify address space layout a tiny bit
More to come (e.g., superpages to simplify static table)
2011-08-09 21:37:35 -04:00
Frans Kaashoek
6479766334 Adjust sbrk test for large user address spaces
All tests pass
2011-08-07 23:03:48 -04:00
Frans Kaashoek
547c28fc1e Don't map IO space in the user part of the address space
Passes all tests now (but need to update usertests to allow for more than 640k)
2011-07-31 21:27:02 -04:00
Frans Kaashoek
9aa0337dc1 Map kernel high
Very important to give qemu memory through PHYSTOP :(
2011-07-29 07:31:27 -04:00
Russ Cox
cf4b1ad90b xv6: formatting, cleanup, rev5 (take 2) 2011-02-19 21:17:55 -05:00
Russ Cox
417c37115e more trivial cleanup 2011-01-11 13:51:40 -05:00
Russ Cox
1a81e38b17 make new code like old code
Variable declarations at top of function,
separate from initialization.

Use == 0 instead of ! for checking pointers.

Consistent spacing around {, *, casts.

Declare 0-parameter functions as (void) not ().

Integer valued functions return -1 on failure, 0 on success.
2011-01-11 13:01:13 -05:00
Robert Morris
4655d42e3b copyout() copies data to a va in a pagetable, for exec() &c
usertest that passes too many arguments, break exec
2010-09-27 16:14:33 -04:00
Robert Morris
a9183883b8 map kernel instructions r/o 2010-09-20 06:00:22 -04:00
Robert Morris
faad047ab2 change some comments, maybe more informative
delete most comments from bootother.S (since copy of bootasm.S)
ksegment() -> seginit()
move more stuff from main() to mainc()
2010-09-13 15:34:44 -04:00
Austin Clements
79cd8b3eed Simplify allocuvm/deallocuvm to operate in a contiguous memory model. This makes their interface match up better with proc->sz and also simplifies the callers (it even gets the main body of exec on one page). 2010-09-02 18:28:36 -04:00
Austin Clements
9a4670a138 Comment inituvm and loaduvm 2010-09-02 16:39:55 -04:00
Austin Clements
93a1e4cb07 Fix comment capitalization 2010-09-02 16:36:38 -04:00
Austin Clements
f25a3f9a41 Rearrange vm.c so it's in logical order and prints nicely. Shorten a few functions in uninteresting ways to make them fit. 2010-09-02 16:23:15 -04:00
Austin Clements
f53e6110be Simplify inituvm and userinit by assuming initcode fits on a page 2010-09-02 15:42:25 -04:00
Austin Clements
b3cfd7fc37 Simplify freevm using deallocuvm 2010-09-02 15:18:19 -04:00
Austin Clements
d3ecf3eb44 Slight simplification of copyuvm. We could simplify other things now that processes are contiguous, but we'd have to think harder about the error paths. 2010-09-01 17:14:58 -04:00
Austin Clements
b0751a3e9b Space police 2010-09-01 00:41:25 -04:00
Austin Clements
5efca9054f Tab police 2010-09-01 00:32:27 -04:00
Austin Clements
ba04b3e70e Fix similar leak in copyuvm 2010-09-01 00:27:12 -04:00
Austin Clements
dd645ef119 Cleanup if allocuvm fails to alloc. Add a test. 2010-08-31 21:49:49 -04:00
Robert Morris
8d774afb2d no more pminit, or ELF header at 0x10000
kinit() knows about end and PHYSTOP
map all of kernel read/write (rather than r/o instructions)
thanks, austin
2010-08-31 15:39:25 -04:00
Robert Morris
7d7dc9331b kalloc/kfree now only a page at a time
do not keep sorted contiguous free list
2010-08-31 12:54:47 -04:00