summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-06-04libaml: various fixes found by plhkcinap_lenrek
- fix bogus execution of Else{} blocks - always allocate Env in amleval() - add Sleep() and Stall() instructions - keep package size for packages with empty body
2013-06-03time: fix -older t for relative times to current time (thanks arisawa for ↵cinap_lenrek
pointing out) from test(1): f -older t True if file f is older than (modified before) time t. If t is a integer followed by the letters y(years), M(months), d(days), h(hours), m(minutes), or s(seconds), it represents current time minus the specified time. If there is no letter, it represents seconds since epoch. You can also concatenate mixed units. For example, 3d12h means three days and twelve hours ago. this means *without* [y M d h m s] unit, t is *absolute* time in seconds since epoch.
2013-06-02grabrfc: fix null list in concatination when no $dom, just use $sysnamecinap_lenrek
2013-06-02grabrfc: +xcinap_lenrek
2013-06-01fgui: check if fd is valid before entering new keyppatience0
2013-06-02aux/wpa: make sure essid is configured, dont make factotum ask for essidcinap_lenrek
2013-06-02mergecinap_lenrek
2013-06-02nusb/kb: map button 4 to middle button 2 (for logitech 5 button mouse)cinap_lenrek
2013-06-01hjfs: ignore atime on wstatppatience0
2013-06-01auth(2): auth_getkey only takes a single argument: char *paramsppatience0
2013-06-01hgignore: ignore /lib/firmwareppatience0
2013-06-01readgif, readjpg: fix incorrect malloc arguments: use sizeof(Rawimage*) ↵ppatience0
instead of sizeof(Rawimage**) and 2*sizeof(Rawimage*) instead of sizeof(Header) readtga: switch calloc arguments: nelem is supposed to first, elsize second
2013-06-018c: apply charles forsyth's 8c-cgen64-mul-savereg patch (from sources)cinap_lenrek
If 64-bit multiply has to save both AX and DX, it could load the wrong value into DX; also, biggen shouldn't allocate either AX or DX as temporaries when using the template for MUL.
2013-06-01usbdwc: sync with sources (Raspberry Pi Model A support)cinap_lenrek
2013-06-01inst/ndbsetup: allow setting sysname more than oncecinap_lenrek
In the installation, if you run the ndbsetup task n times (n > 1), the installed /lib/ndb/local will have n sys= entries. The problem is that ndb(8) will use the first sys= entry found, but one would expect that the last configuration in the ndbsetup task would be the active one. Remove any previous entry in ndbsetup before adding new one.
2013-06-01mothra: implement link buttonscinap_lenrek
a button embedded in a <a> link tag should follow the link when clicked.
2013-06-01ether82557: panic() if receive buffer allocation fails on initcinap_lenrek
2013-06-01ether83815: dont raise error() from etherresetcinap_lenrek
can't raise error() without process context. use panic() instead.
2013-05-31/lib/1oct1993: Reprinted with corrections, October 2012stanley lieber
2013-05-31pool: do poolcheck when free nodes get corrupted instead of assertcinap_lenrek
doing poolcheck should give us better context to figure out what memory blocks / owners corrupted the blocks after free. this is for hunting down a memory corruption seen in connection with usb serial.
2013-05-29fixed a segfault in auth/as because it didn't check to see if argv[0] and ↵mveety
argv[1] actually had things in them
2013-05-30hjfs: deal with ORCLOSE in chancreat()cinap_lenrek
ORCLOSE was effectively ignored for Tcreate. just setting CHRCLOSE flag on chan should fix it.
2013-05-30mergecinap_lenrek
2013-05-30mergecinap_lenrek
2013-05-30kernel: do all fp state fork from procfork() (like pc kernel)cinap_lenrek
this simplifies the arm ports and keeps all the stuff in one place instead of spreading it thru notify(), trap() and syscall() functions and prevents useless fp state copying for kernel procs. also make sure to save fp in notify while still splhi().
2013-05-30pc kernel: simulate FXSAVE/FXRSTOR tag-byte from x87 tag-word, copy fp state ↵cinap_lenrek
across fork the tag-word is not compatible between x87 and sse, have to convert properly for emulation to work. we now copy fp state across fork (again!) to preserve FCW and MXCSR registers. this might not be neccesary as we could probably just get the current value for the curren process and avoid the fpsave() call, but become conservative again.
2013-05-30libmach: fix reversed F0-F7 register ordercinap_lenrek
2013-05-29ircrc: target is more important (especially in winwatch)ftrvxmtrx
2013-05-28io, seg: we should exits(nil) at the end of mainppatience0
2013-05-27mothra: clicking on the url scroll bar, snarfing, or saving a hit when no ↵ppatience0
urls have been loaded (right after running mothra) would crash. this was due to use of w->url and selection when they are actually nil. to fix this, make genwww return 0 if w->url is nil and output an error message when attempting to access selection if it's nil. the problem with the w->url fix is that after clicking on the url scroll bar, an empty url history row could be highlighted by clicking on it. fix this by making sure lp->lo is not less than zero.
2013-05-27tojpg: GREY[1248] images should be grayscaleppatience0
2013-05-28mergecinap_lenrek
2013-05-28kernel: sysrfork abortioncinap_lenrek
when we fail to fork resources for the child due to resource exhaustion, make the half forked child process call pexit() to free the resources that where allocated and error out.
2013-05-26tojpg: add jpeg encoderppatience0
2013-05-27kernel: make imagereclaim() skip notext pages (prevent it from blowing the ↵cinap_lenrek
mount cache) imagereclaim would happily uncache pages from the mountcache (port/cache.c) without ever getting a Image* released from it. simple fix, just check for p->image->notext but make sure todo it under the page lock :)
2013-05-27mergecinap_lenrek
2013-05-27kernel: dont copy fpsave on fork, simplify freeing waitq in pexit(), remove ↵cinap_lenrek
unused semlock from Proc sturcure
2013-05-27devfs/devsd: fix waserror() and unused variable compiler problemcinap_lenrek
the compiler optimizes setting unused variables out, which is problematic if they are used in waserror() handler which the compiler isnt aware of. rearrange the code to avoid this problem.
2013-05-27kernel: closechanq errorcinap_lenrek
catch potential interrupt error from kproc(). this can happen when we run out of processes, then newproc() will call rsrcwait() which does tsleep(). if the process gets a note, this might raise a interrupt error.
2013-05-27kernel: image reclaim pausescinap_lenrek
get a bit more verbose about process image exhaustion and make imagreclaim() try to get at least one image on the freelist. use rsrcwait() to notify the state, and call freebroken() in case imagereclaim() couldnt free any images.
2013-05-27kernel: fix sysexec() error handling compiler problem, sysrendez() busyloopcinap_lenrek
the variables elem and file0 and commited are explicitely set to avoid that they get freed in ther waserror() handlers. but it turns out the compiler optimizes this out as he thinks the variables arent used any further. (the compiler is not aware of the waserror() / longjmp() semantics). rearrange the code to account for this. instead of using a local variable to check for point of no return (commited), we use up->seg[SSEG] to figure it out. for file0 and elem, we just rearrange the code. elem can be checked in the error handler if it was already assigned to up->text, and file0 is just free()'d after the poperror(). remove silly busy loop in sysrendez. it is not needed. dequeueproc() will make sure that the process has come to rest.
2013-05-26keep fpregs always in sse (FXSAVE) format, adapt libmach and acid files for ↵cinap_lenrek
new format we now always use the new FXSAVE format in FPsave structure and fpregs file, converting back and forth in fpx87save() and fpx87restore(). document that fprestore() is a destructive operation now. change fp register definition in libmach and adapt fpr() acid funciton. avoid unneccesary copy of fpstate and fpsave in sysfork(). functions including syscalls do not preserve the fp registers and copying fpstate from the current process would mean we had to fpsave(&up->fpsave); first. simply not doing it, new process starts in FPinit state.
2013-05-26add leading dot for explicit domain in webcookies, bump redirection limit to ↵cinap_lenrek
12 in webfs
2013-05-25graphics(2): remove non existing char *mousedir argument from geninitdraw ↵cinap_lenrek
(from sources / geninitdraw-no-mousedir patch)
2013-05-25libdraw: fix agefont crash when display == nil (from sources / ↵cinap_lenrek
agefont-nodisplay patch) If you run this: {for (i in `{seq 1 70000}) echo '½•α·'} | mc | wc mc will eventually suicide. The error comes from /sys/src/libdraw/font.c:/^agefont which assumes it has a display. Normally, this is set up by geninitdraw (usually via initdraw), but mc.c avoids that to avoid the screen redraws (flicker, at a minimum, but worse in long-running cases). graphics(2) does not prohibit this use, so I made the least intrusive change to make it work.
2013-05-25kernel: fix floating point exceptions (was broken by sse kernel changes)cinap_lenrek
the fpenv() instruction stores in x87 format, using mathstate() would interpret fpsave as FPssestate in case it was enabled! instead, pass the status word and fppc explicitely to mathnote() in matherror(). get rid of m->fpsavealign buffer, as we can just use FPssesave struct which has enougth padding so rounding up base pointer will not overflow.
2013-05-21kernel: cleanup /sys/src/9/pc/mkfile PORT= and OBJ= listscinap_lenrek
2013-05-21kernel: prevent alarm(2) from returning instantly when the tick timer wraps. ↵cinap_lenrek
(from erik quanstros alarmwrap patch)
2013-05-21wifi: properly size internal wifi input processing queuecinap_lenrek
we only used wifi->iq to process management frames only, now its also used to forward encrypted data frames, so size it accordingly.
2013-05-21mergecinap_lenrek