Commit graph

159 commits

Author SHA1 Message Date
Frans Kaashoek
c383612a7d Thanks to Wolfgang Keller <nubok@users.noreply.github.com> 2017-01-30 20:07:42 -05:00
Frans Kaashoek
2adb7c21dc Move retry loop/sleep/wakeup in bio.c into sleeping locks 2016-09-11 20:17:22 -04:00
Frans Kaashoek
6670d3b5e0 Straight replacement of B_BUSY with a sleeping lock. 2016-09-11 17:24:04 -04:00
Peter H. Froehlich
2c60b7f31f Removed useless function and prototypes. 2016-08-18 11:09:04 -04:00
Frans Kaashoek
8320d61be5 Pick up where i left off in april:
- move log into metadata part of disk, so that marking
that the log's blocks are in use falls out for free
- superblock describes the whole disk (sizes and offets)
- sizes and offsets are computed in one place (mkfs) and
the rest of the code refers to the superblock for these values,
instead of recomputing them.
2015-06-27 12:39:13 -04:00
Cody Cutler
aae4e7490f cmosgetdate() for system-call homework
the day of reckoning has come for the debug port "Shutdown" hack.

instead of mucking with ACPI or using a new hack, the student will now write
sys_date() using the cmosgetdate() helper.
2014-09-12 18:09:51 -04:00
Robert Morris
71453f72f2 a start at concurrent FS system calls 2014-08-27 17:15:30 -04:00
Frans Kaashoek
432acbaf9e Merge branch 'master' of git+ssh://amsterdam.csail.mit.edu/home/am0/6.828/xv6 2012-08-22 20:20:17 -04:00
Frans Kaashoek
4ce832ddd2 Remove unused argument to setupkvm (thanks to Peter Froehlich) 2012-08-22 20:19:37 -04:00
Frans Kaashoek
70c555574a Remove unused argument from lapicinit (thanks to Peter Froehlich) 2012-08-22 20:13:43 -04:00
Austin Clements
9d59eb0151 Make fetchint and fetchstr use proc instead of taking a struct proc
Previously, these were inconsistent: they used their struct proc
argument for bounds checking, but always copied the argument from the
current address space (and hence the current process).  Drop the
struct proc argument and always use the current proc.

Suggested by Carmi Merimovich.
2012-02-17 23:20:13 -05:00
Robert Morris
c092540e39 eliminate enter_alloc -- use kalloc for everything 2011-09-13 13:14:52 -04:00
Austin Clements
2eb214c9db clear_pte_u -> clearpteu 2011-09-02 14:37:04 -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
Frans Kaashoek
1ddfbbb194 Revert "Introduce and use sleeplocks instead of BUSY flags"
My changes have a race with re-used bufs and the code doesn't seem to get shorter
Keep the changes that fixed ip->off race

This reverts commit 3a5fa7ed90.

Conflicts:

	defs.h
	file.c
	file.h
2011-08-29 17:18:40 -04:00
Austin Clements
a7061b4f97 Style nits; indentation and tabs 2011-08-29 16:12:01 -04:00
Frans Kaashoek
3a5fa7ed90 Introduce and use sleeplocks instead of BUSY flags
Remove I_BUSY, B_BUSY, and intrans defs and usages
One spinlock per buf to avoid ugly loop in bget
fix race in filewrite (don't update f->off after releasing lock)
2011-08-26 10:08:29 -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
9aa0337dc1 Map kernel high
Very important to give qemu memory through PHYSTOP :(
2011-07-29 07:31:27 -04:00
Frans Kaashoek
13a96baefc Dirt simple logging
Passes usertests and stressfs
Seems to recover correctly in a number of simple cases
2011-07-27 20:35:46 -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
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
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
588644f472 Consistent style in defs.h 2010-09-02 19:01:25 -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
f53e6110be Simplify inituvm and userinit by assuming initcode fits on a page 2010-09-02 15:42:25 -04:00
Austin Clements
c7c21467c3 Oops. Broke the build when I rearranged proc.c 2010-09-02 14:30:06 -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
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
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
30f5bf0548 some cleanup 2010-07-25 20:30:21 -04:00
Frans Kaashoek
4714c20521 Checkpoint page-table version for SMP
Includes code for TLB shootdown (which actually seems unnecessary for xv6)
2010-07-23 07:41:13 -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
Austin Clements
2c536bff67 Remove memcpy prototypes at Russ' request to prevent code from calling
memcpy directly.
2009-10-07 13:06:55 -04:00
Austin Clements
6639ce56d9 Provide memcpy for compatibility with older versions of gcc 2009-10-07 12:05:56 -04:00
Russ Cox
48755214c9 assorted fixes:
* rename c/cp to cpu/proc
 * rename cpu.context to cpu.scheduler
 * fix some comments
 * formatting for printout
2009-08-30 23:02:08 -07:00
Russ Cox
0aef891495 shuffle and tweak for formatting.
pdf has very good page breaks now.
would be a good copy for fall 2009.
2009-08-08 01:07:30 -07:00
Russ Cox
2c5f7aba38 initproc, usegment, swtch tweaks 2009-07-11 19:28:29 -07:00
rsc
215738336a move fork into proc.c 2009-05-31 00:38:51 +00:00