summaryrefslogtreecommitdiff
path: root/sysfile.c
AgeCommit message (Collapse)AuthorFilesLines
2011-08-29Revert "Introduce and use sleeplocks instead of BUSY flags"Frans Kaashoek1-1/+0
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 3a5fa7ed9020eaf8ab843a16d26db7393b2ec072. Conflicts: defs.h file.c file.h
2011-08-26Introduce and use sleeplocks instead of BUSY flagsFrans Kaashoek1-0/+1
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-15avoid deadlock by calling begin_trans() before locking any inodesRobert Morris1-4/+10
2011-08-12log write() dataRobert Morris1-3/+27
usertest for big write()s push begin_trans/commit_trans down into syscalls
2011-01-11make new code like old codeRuss Cox1-1/+1
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.
2010-09-27copyout() copies data to a va in a pagetable, for exec() &cRobert Morris1-1/+1
usertest that passes too many arguments, break exec
2010-07-02Initial version of single-cpu xv6 with page tablesFrans Kaashoek1-3/+2
2009-08-30assorted fixes:Russ Cox1-9/+9
* rename c/cp to cpu/proc * rename cpu.context to cpu.scheduler * fix some comments * formatting for printout
2009-08-08shuffle and tweak for formatting.Russ Cox1-1/+0
pdf has very good page breaks now. would be a good copy for fall 2009.
2009-07-11rearrangements and cleanup for textRuss Cox1-35/+33
2009-05-31simplifyrsc1-22/+13
2008-10-17try harder to get directory refcounts rightkolya1-2/+8
2008-10-16make mkdir crash-safer, as noticed by many students on midtermkolya1-7/+11
2007-09-27believe it or not, this was workingrsc1-6/+6
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-08-28spaces around else for rtmrsc1-1/+1
2007-08-28more consistent spacingrsc1-1/+1
2007-08-28remove _ from pipe; be like filersc1-1/+1
2007-08-27make code match commentrsc1-1/+1
2007-08-27make code match commentrsc1-1/+1
2007-08-27delete unnecessary #include linesrsc1-7/+2
2007-08-27oopsrsc1-0/+1
2007-08-27nitsrsc1-17/+7
2007-08-27fileincref -> filedup (consistent with idup)rsc1-1/+1
2007-08-24shuffle for formattingrsc1-18/+19
2007-08-24remove unused variablersc1-1/+1
2007-08-24Remove struct uinode.rsc1-52/+61
Remove type arg to mknod (assume T_DEV).
2007-08-22PDF at http://am.lcs.mit.edu/~rsc/xv6.pdfrsc1-103/+211
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-21ARGMAX -> MAXARGSrsc1-3/+3
2007-08-21Various cleanup:rsc1-187/+32
- 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-20checkpoint - simpler namei interfacersc1-31/+36
2007-08-10avoid assignments in declarationsrsc1-1/+1
2007-08-10Make cp a magic symbol.rsc1-6/+1
2007-08-09oopsrsc1-1/+1
2007-08-09try to use cp only for curproc[cpu()]rsc1-11/+12
2007-08-08save process name for debuggingrsc1-2/+8
2006-09-07fix ide, pit interfacesrsc1-1/+1
2006-09-07fix pipe bugrsc1-0/+2
2006-09-07refactor syscall codersc1-186/+142
2006-09-06wrap long linesrsc1-2/+6
2006-09-06fd_* => file_*rsc1-13/+13
2006-09-06fd.* -> file.*rsc1-1/+1
2006-09-06struct fd -> struct filersc1-19/+19
2006-09-06split syscall.c into sysfile.c and sysproc.crsc1-0/+477