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