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