Commit Graph

63 Commits

Author SHA1 Message Date
Austin Clements d73dd097a5 Fix compile error on newer gcc's 2011-09-30 15:28:33 -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
Robert Morris 5a23692444 fix usertests to correctly test what happens when you call
exec() with arguments that don't fit on a single page.
2011-09-01 12:02:49 -04:00
Robert Morris 5e08357827 enterpgdir -> entrypgdir 2011-08-30 20:50:19 -04:00
Robert Morris 327cc21fba make dirlookup and dirlink more similar 2011-08-19 13:30:57 -04:00
Robert Morris 5053dd6a6d avoid deadlock by calling begin_trans() before locking any inodes 2011-08-15 12:44:20 -04:00
Robert Morris 2e59046362 log write() data
usertest for big write()s
push begin_trans/commit_trans down into syscalls
2011-08-12 09:25:39 -04:00
Frans Kaashoek 11b7438b10 Speedup sbrk tst a bit (forking 100Mbyte processes is slow) 2011-08-08 09:20:29 -04:00
Frans Kaashoek 6479766334 Adjust sbrk test for large user address spaces
All tests pass
2011-08-07 23:03:48 -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 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 a9183883b8 map kernel instructions r/o 2010-09-20 06:00:22 -04:00
Robert Morris 05d66b0629 my comment is wrong, exec handles BSS fine 2010-09-19 13:47:52 -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 b0751a3e9b Space police 2010-09-01 00:41:25 -04:00
Austin Clements dd645ef119 Cleanup if allocuvm fails to alloc. Add a test. 2010-08-31 21:49: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 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
rsc 34295f461a group locks into structs they protect.
few naming nits.
2009-05-31 05:12:21 +00:00
rsc d522571068 make slow bigdir last test 2007-09-27 12:29:06 +00:00
rsc 666f58c711 believe it or not, this was working
the macro expansion of "char *cp;" turned into
char *(curproc[cpu()]);  which declares a dynamically
sized array of char* called curproc.

so then &cp == &(curproc[cpu()]) was actually a
stack variable as "expected".  it was one past the
end of the array, but the implicit alloca allocated
more than was necessary.

do not tell me that making cp a #define was a bad idea.
there are worse problems to fix.  more on that later.
2007-09-27 05:13:10 +00:00
rsc 56c1a151d2 debugging prints 2007-09-26 23:24:23 +00:00
rsc e0e7d07e5a test that fork fails gracefully 2007-08-24 20:20:23 +00:00
rtm 2036534834 add missing iput() at end of _namei() 2007-08-24 14:56:17 +00:00
rtm b55513796f oops, O_CREATE doesn't truncate, so holes can't exist, thus no bug 2007-08-24 12:55:15 +00:00
rtm 3d5f21ee1f test concurrent open/unlink of same file (ok)
test files with holes (not ok)
2007-08-24 12:19:13 +00:00
rsc c88bf235fe check unlink of non-empty directory 2007-08-22 02:21:22 +00:00
rsc 2d61a40b20 bug in usertests! 2007-08-20 21:00:20 +00:00
rsc 5e03dd86c8 add test for rm . 2007-08-10 17:53:09 +00:00
rsc dca5b5ca2e avoid assignments in declarations 2007-08-10 17:17:42 +00:00
rsc c664dd5d23 missing void 2007-08-08 09:32:39 +00:00
rsc 115e177400 standardize on not using unsigned keyword 2007-08-08 09:30:48 +00:00
rsc f3c393ba9f fix tests 2006-09-07 20:06:08 +00:00
rsc 0517a730db remove bogus test 2006-09-07 15:31:40 +00:00
rsc 6c8acf9e04 check super-long lookups 2006-09-07 15:15:46 +00:00
kaashoek a64cd81342 one regression test program 2006-09-07 13:23:41 +00:00
rsc 9e9bcaf143 standardize various * conventions 2006-09-06 17:27:19 +00:00
rtm dfcc5b997c prune unneeded panics and debug output 2006-08-29 19:06:37 +00:00
rtm 3b95801add i broke sbrk, fix it 2006-08-29 17:01:40 +00:00
kaashoek 74493bf446 kill user process when it generates an unhandled trap (e.g., 13)
fix bug in test code of malloc
2006-08-25 00:43:17 +00:00
kaashoek 81d5219998 bug in sbrk
test malloc
2006-08-24 19:24:36 +00:00
kaashoek 8787cd01df chdir
cd in shell
nits in mkdir, ls, etc.
2006-08-19 23:41:34 +00:00
rtm 350e63f7a9 no more proc[] entry per cpu for idle loop
each cpu[] has its own gdt and tss
no per-proc gdt or tss, re-write cpu's in scheduler (you win, cliff)
main0() switches to cpu[0].mpstack
2006-08-15 22:18:20 +00:00
rtm 211ff0c67e namei returns locked parent dir inode for create / unlink
don't hold fd table lock across idecref() (latter does block i/o)
idecref calls iput() in case last ref -> freeing inode
dir size is 512 * # blocks, so readi/writei &c work
unlink deletes dirent even if ip->nlink > 0
2006-08-13 12:22:44 +00:00
rtm 9e5970d596 link() 2006-08-13 02:12:44 +00:00
rtm cd93074e5b LRU disk cache replacement 2006-08-12 22:34:13 +00:00
rtm 14938f9392 buffer cache, fifo replacement 2006-08-12 17:17:35 +00:00