Commit graph

46 commits

Author SHA1 Message Date
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
Robert Morris ac090078c6 xx 2010-08-30 10:13:49 -04:00
Robert Morris 8d8d6c7be3 we don't need CR0_WP 2010-08-30 06:48:48 -04:00
Robert Morris 5ab868fd90 set only PG and WP in vminit; the rest don't seem to be needed and are confusing 2010-08-30 06:38:58 -04:00
Robert Morris 789b508d53 uptime() sys call for benchmarking
increase PHYSTOP
2010-08-11 14:34:45 -04:00
Robert Morris 83d2db91f7 allow sbrk(-x) to de-allocate user memory 2010-08-10 17:08:41 -04:00
Robert Morris c4cc10da7e fix corner cases in exec of ELF
put an invalid page below the stack
have fork() handle invalid pages
2010-08-06 11:12:18 -04:00
Robert Morris 1afc9d3fca add some comments
find out the hard way why user and kernel must have separate segment descriptors
2010-08-05 21:16:55 -04:00
Robert Morris c99599784e remove some unused vm #defines
fix corner cases with alignment when mapping kernel ELF file
2010-08-05 16:00:59 -04:00
Robert Morris 2cf6b32d4d move jkstack to main.c
replace jstack with asm()s
2010-08-05 14:15:03 -04:00
Robert Morris eb18645f17 fix allocuvm() to handle sbrk() with non-page-granularity argument
(maybe this never worked, but it works now)
2010-08-05 12:10:54 -04:00
Frans Kaashoek b738a4f1a2 kill TLB shoot down code 2010-07-28 14:38:05 -04:00
Frans Kaashoek de40730dad more cleanup 2010-07-26 08:10:02 -04:00
Frans Kaashoek 30f5bf0548 some cleanup 2010-07-25 20:30:21 -04:00
Frans Kaashoek b364c4b881 oops, vm.c 2010-07-23 12:52:35 -04:00