Peter H. Froehlich
e916d668f7
Fix unsigned conversion bug.
...
Since readi() returns -1 for errors, checking with < against an unsigned
value is inadvisable. Checking with != works as intended however.
2017-01-30 19:31:24 -05:00
Frans Kaashoek
33188666da
Delete two left-over print statements
2016-09-14 21:13:09 -04:00
Frans Kaashoek
6670d3b5e0
Straight replacement of B_BUSY with a sleeping lock.
2016-09-11 17:24:04 -04:00
MikeCAT
5625ae4973
add check for wrapping of address + size in exec()
2016-08-25 07:09:46 -04:00
MikeCAT
67a7f9597e
add alignment check of virtual address to exec()
2016-08-25 07:09:10 -04:00
Robert Morris
71453f72f2
a start at concurrent FS system calls
2014-08-27 17:15:30 -04:00
Robert Morris
2c56547272
every iput() and namei() must be inside a transaction
2014-08-04 13:06:48 -04:00
Frans Kaashoek
4ce832ddd2
Remove unused argument to setupkvm (thanks to Peter Froehlich)
2012-08-22 20:19:37 -04:00
Austin Clements
549c62cc1c
I can't do math; fix bug introduced in 5a9761
2011-09-03 10:21:51 -04:00
Austin Clements
5a97613bab
Fit exec on a page. Again
2011-09-02 15:27:41 -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
fa81545f1c
Make elf proghdr fields match what objdump prints
2011-08-17 20:23:36 -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
Russ Cox
cf4b1ad90b
xv6: formatting, cleanup, rev5 (take 2)
2011-02-19 21:17:55 -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
2ea6c764c3
even more fabulous exec
2010-09-29 14:12:26 -04:00
Robert Morris
06feabecee
check exec() arg length
...
fix double iunlockput
2010-09-27 16:17:57 -04: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
05d66b0629
my comment is wrong, exec handles BSS fine
2010-09-19 13:47:52 -04:00
Robert Morris
4587b35847
exec questions
2010-09-19 07:18:42 -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
b1d41d6788
Remove the stack guard page. Processes are now contiguous from 0 to proc->sz, which means our syscall argument validation is correct. Add a pointer validation test and remove the stack test, which tested for the guard page.
2010-09-01 16:46:37 -04:00
Austin Clements
5efca9054f
Tab police
2010-09-01 00:32:27 -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
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
40889627ba
Initial version of single-cpu xv6 with page tables
2010-07-02 14:51:53 -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
b3bebfce8a
exec tweaks
2009-07-13 09:34:45 -07:00
rsc
90bab90832
exec sanity check
2009-05-31 02:11:27 +00:00
rsc
19333efb9e
Some proc cleanup, moving some of copyproc into allocproc.
...
Also, an experiment: use "thread-local" storage for c and cp
instead of the #define macro for curproc[cpu()].
2009-05-31 00:28:45 +00:00
rsc
71d5bf4d08
oops - broke arg counting
2007-08-30 18:19:52 +00:00
rsc
c1bfbfa2f7
oops
2007-08-28 02:39:40 +00:00
rsc
558ab49f13
delete unnecessary #include lines
2007-08-27 23:26:33 +00:00
rsc
629c1fe743
Edit exec.
...
Do not commit to new memory image until
nothing can go wrong, avoiding bad2 case.
Be sure to allocate enough stack space for argv.
Load executable before initializing stack, to
keep ELF loops together.
Make argv loop clearer.
2007-08-27 15:17:40 +00:00
rsc
07090dd705
Remove struct uinode.
...
Remove type arg to mknod (assume T_DEV).
2007-08-24 20:54:23 +00:00
rsc
eaea18cb9c
PDF at http://am.lcs.mit.edu/~rsc/xv6.pdf
...
Various changes made while offline.
+ bwrite sector argument is redundant; use b->sector.
+ reformatting of files for nicer PDF page breaks
+ distinguish between locked, unlocked inodes in type signatures
+ change FD_FILE to FD_INODE
+ move userinit (nee proc0init) to proc.c
+ move ROOTDEV to param.h
+ always parenthesize sizeof argument
2007-08-22 06:01:32 +00:00
rsc
f32f3638f4
Various cleanup:
...
- Got rid of dummy proc[0]. Now proc[0] is init.
- Added initcode.S to exec /init, so that /init is
just a regular binary.
- Moved exec out of sysfile to exec.c
- Moved code dealing with fs guts (like struct inode)
from sysfile.c to fs.c. Code dealing with system call
arguments stays in sysfile.c
- Refactored directory routines in fs.c; should be simpler.
- Changed iget to return *unlocked* inode structure.
This solves the lookup-then-use race in namei
without introducing deadlocks.
It also enabled getting rid of the dummy proc[0].
2007-08-21 19:22:08 +00:00