Commit Graph

46 Commits

Author SHA1 Message Date
Robert Morris c092540e39 eliminate enter_alloc -- use kalloc for everything 2011-09-13 13:14:52 -04:00
Frans Kaashoek 3682474f77 delete dead code 2011-08-21 21:14:29 -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 a4b213cf49 Avoid "boot" in xv6 2011-08-15 20:11: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 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 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 4587b35847 exec questions 2010-09-19 07:18:42 -04:00
Robert Morris 23c3e52c2f Merge branch 'master' of git+ssh://amsterdam.csail.mit.edu/home/am0/6.828/xv6 2010-08-31 19:21:52 -04:00
Robert Morris 3597d5dc70 oops. last minute simplicifaction to kalloc(). 2010-08-31 19:21:33 -04:00
Austin Clements 5048762c7e Page break kalloc.c 2010-08-31 17:52:03 -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 789b508d53 uptime() sys call for benchmarking
increase PHYSTOP
2010-08-11 14:34:45 -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
Frans Kaashoek af03ab142d a few nits
passes all tests on two-processor smp
2010-07-23 12:52:50 -04:00
Frans Kaashoek 74c82bc158 nits 2010-07-02 17:45:37 -04:00
Frans Kaashoek 40889627ba Initial version of single-cpu xv6 with page tables 2010-07-02 14:51:53 -04:00
Russ Cox f9a06440ab rearrangements and cleanup for text 2009-07-11 19:26:01 -07:00
rsc 34295f461a group locks into structs they protect.
few naming nits.
2009-05-31 05:12:21 +00:00
rsc 558ab49f13 delete unnecessary #include lines 2007-08-27 23:26:33 +00:00
rsc e0240674f5 make kfree loop same as kalloc 2007-08-27 12:50:36 +00:00
rtm 902b13f5d6 simplify ide queuing
nits in comments
2007-08-24 19:32:36 +00:00
rsc 4bc5056c19 formatting, simplify 2007-08-14 19:05:48 +00:00
rsc 3d145283a2 tweak kalloc 2007-08-10 17:02:36 +00:00
rsc b6095304b7 Make cp a magic symbol. 2007-08-10 16:37:27 +00:00
kaashoek 8e1d1ec934 some comment changes 2006-09-08 14:36:44 +00:00
rsc 31085bb416 more comments 2006-09-07 14:12:30 +00:00
rsc d4c64e5d43 writeable => writable 2006-09-06 18:06:04 +00:00
rsc f552738889 no /* */ comments 2006-09-06 17:50:20 +00:00
rsc 9e9bcaf143 standardize various * conventions 2006-09-06 17:27:19 +00:00
rtm 82537b7156 nits 2006-09-04 11:52:36 +00:00
rtm 2aa4c3bc29 complain if no disk 1
lots of cleanup
2006-08-30 18:55:06 +00:00
rtm 5be0039ce9 interrupts could be recursive since lapic_eoi() called before rti
so fast interrupts overflow the kernel stack
fix: cli() before lapic_eoi()
2006-08-10 22:08:14 +00:00
rtm 32630628a9 open() 2006-07-29 09:35:02 +00:00
rsc b5ee516575 add uint and standardize on typedefs instead of unsigned 2006-07-17 01:52:13 +00:00
rsc c54c79267f nitpicks 2006-07-17 01:25:22 +00:00
rsc 84d79573da more idiomatic c 2006-07-16 16:05:37 +00:00
rtm 8148b6ee53 i think my cmpxchg use was wrong in acquire
nesting cli/sti: release shouldn't always enable interrupts
separate setup of lapic from starting of other cpus, so cpu() works earlier
flag to disable locking in console output
make locks work even when curproc==0
(still crashes in clock interrupt)
2006-07-12 11:15:38 +00:00
rtm 4e8f237be8 no more big kernel lock
succeeds at usertests.c pipe test
2006-07-12 01:48:35 +00:00
rtm b548df152b pre-empt both user and kernel, in clock interrupt
usertest.c tests pre-emption
kill()
2006-07-11 17:39:45 +00:00
rtm 8b4e2a08fe swtch saves callee-saved registers
swtch idles on per-CPU stack, not on calling process's stack
fix pipe bugs
usertest.c tests pipes, fork, exit, close
2006-07-01 21:26:01 +00:00
rtm 55e95b16db import 2006-06-12 15:22:12 +00:00