summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-06-08teg2: move syscall.$O and syscallfmt.$O targets from config to mkfilecinap_lenrek
2014-06-08kw: move syscall.$O target from config to mkfilecinap_lenrek
2014-06-08omap4: update for new syscall interface and syscallfmtcinap_lenrek
2014-06-07dougfacts: remove html corruption and end file with newlinestanley lieber
2014-06-07pc64: remove unneeded parens in pmap()cinap_lenrek
2014-06-07mergecinap_lenrek
2014-06-07pc64: implement checkmmu() debug functioncinap_lenrek
2014-06-07sdvirtio: experimental support for virtio-scsicinap_lenrek
2014-06-07file: djvuftrvxmtrx
2014-06-06fortunes: i believe any successful Plan 9 distro will need to provide some ↵stanley lieber
transparency in the change review process. -- Skip Tavakkolian
2014-06-06file: detect NES and SEGA rom files, fix newlinecinap_lenrek
2014-06-05mergecinap_lenrek
2014-06-05kernel: dont use atomic increment for Proc.nlocks, maintain Lock.m for ↵cinap_lenrek
lock(), use uintptr intstead of long for pc values change Proc.nlocks from Ref to int and just use normal increment and decrelemt as done in erik quanstros 9atom. It is not clear why we used atomic increment in the fist place as even if we get preempted by interrupt and scheduled before we write back the incremented value, it shouldnt be a problem and we'll just continue where we left off as our process is the only one that can write to it. Yoann Padioleau found that the Mach pointer Lock.m wasnt maintained consistently for lock() vs canlock() and ilock(). Fixed. Use uintptr instead of ulong for maxlockpc, maxilockpc and ilockpc debug variables.
2014-06-05g: add *.cppftrvxmtrx
2014-06-05pc64: dont trap _xinc()/_xdec() overflow/underflow, delete unused atomic ↵cinap_lenrek
functions
2014-06-04webfs: explicitely unmount old /mnt/web (thanks BurnZeZ)cinap_lenrek
webfs forks the namespace to isolate itself from its mount point which has the side effect that it captures the mount of previous instances of webfs mounted on /mnt/web. explicitely unmount the mountpoint in our namespace copy to drop the reference.
2014-06-04nusbrc: dont fork usb drivers into backgroundcinap_lenrek
probing needs to run synchronous to avoid races with other readers of /dev/usbevent.
2014-06-03nusb/usbd: cleanupcinap_lenrek
2014-06-03kernel: remove wrong and needles mapsize check in newseg() (thanks Yoann ↵cinap_lenrek
Padioleau)
2014-06-03nusb/usbd: serialize /dev/usbevent processingcinap_lenrek
when there are multiple readers of /dev/usbevent, we have to serialize the processing to make sure that only one driver is opening the devices control endpoint at a time. to do this, we assume the device is busy after reading the event file until the next read or clunk on the same fid. to mark a device busy, we set the dev->aux pointer to the fid processing a event. And the Event structure takes a reference to the device producing the event. the problem arised from cdc ethernet and nusb/serial sharing the same device class, and we need to run the particular driver to figure out if the device can be used. doing this concurrently fails because devusb allows only one open per endpoint.
2014-06-01pc64: fix for unsigned comparsion of (top - base) >= sizecinap_lenrek
the rounding of base can make it above top, so have to use signed comparsion.
2014-06-01pc64: use 2MB pages for preallocpages()cinap_lenrek
2014-06-01pc64: allocate palloc.pages from upagescinap_lenrek
the palloc.pages array takes arround 5% of the upages which gives us: 16GB = ~0.8GB 32GB = ~1.6GB 64GB = ~3.2GB we only have 2GB of address space above KZERO so this will not work for long. instead, pageinit() was altered to accept a preallocated memory in palloc.pages. and preallocpages() in pc64/main.c allocates the in upages memory, mapping it in the VMAP area (which has 512GB). the drawback is that we cannot poke at Page structures now from /proc/n/mem as the VMAP area is not accessible from it.
2014-06-01games/nes: support Battle City two players mode with joypadsftrvxmtrx
2014-05-306a, 6c, 6l: fix copy propagationAram Hăvărneanu
Without an explicit signal for a truncation, copy propagation will sometimes propagate a 32-bit truncation and end up overwriting uses of the original 64-bit value. This was independently discovered and fixed in Go. See: http://golang.org/issue/1315 https://codereview.appspot.com/6002043/ Thanks Charles Forsyth for tips and advice.
2014-05-30we look for strings.c, it is broken, this strings.c will make us go.cinap_lenrek
2014-05-29pc, pc64: simplify reboot codecinap_lenrek
as we do system reset and reboot only from boot processor cpu0 now, theres no need for active.rebooting conditional variable. mpshutdown() will unconditionally park application processors and and cpu0 boots the new kernel or calls mpshutdown() causing system reset.
2014-05-29pc: initiate machine reset only from boot processors in mpshutdown()cinap_lenrek
in vmware, mpshutdown() used to hang in i8042reset() when not called from the boot processor, so instead of reseting from first cpu that acquires the shutdown lock, we park all application processors and let the boot processor do the reset.
2014-05-29games/md: bug fixesaiju
2014-05-29ape/stdio: set errno to EMFILE when running out of streamscinap_lenrek
2014-05-27games/snes: originwindow confuses the cataiju
2014-05-26page(1): orcinap_lenrek
2014-05-26page(1): minuscinap_lenrek
2014-05-26page(1): theres no -r option, nor multipage restrictionscinap_lenrek
2014-05-26mergeaiju
2014-05-26games/md: moonwalker!aiju
2014-05-26pc64: fix ulongs for address of devarchs realmodemem filecinap_lenrek
2014-05-26devproc: handle 64bit address writes to /proc/n/mem filescinap_lenrek
procwrite() did truncate the offset to 32bit ulong. introduce off2addr() function that does the sign extension hack and use it conststently for Qmem reads and writes.
2014-05-26mergecinap_lenrek
2014-05-26kernel: simplify fdclose()cinap_lenrek
2014-05-26devproc: fix close and closefiles procctlcinap_lenrek
for the CMclose procctl, the fd number was not bounds checked before indexing in the Fgrp.fd array. for the CMclosefiles, we looped fd from 0..maxfd-1, but need to loop from 0..maxfd as maxfd is inclusive.
2014-05-25games/md: small cpu and vdp bug fixesaiju
2014-05-25pc64: cleanup mmuzapcinap_lenrek
2014-05-25games/md: first bug fixesaiju
2014-05-25added crude version of games/mdaiju
2014-05-24libauth: dont print blobs in auth_proxy error stringscinap_lenrek
2014-05-24cpu: remove duplicate environment and chdir($home) code (thanks qrstuv)cinap_lenrek
newns() (called by auth_chuid()) already prepares the environment variables and puts us in a sane working directory (as specified by the namespace file).
2014-05-24kernel: fix read size calculation in pio() demand loadcinap_lenrek
on amd64, the text segment is aligned and padded to 2MB, but segment granularity is 4K which can give us page faults that are beyond the highest file offset. this is perfectly valid, but was not handled correctly in pio().
2014-05-23libc: avoid static table and supurious reads in nsec()cinap_lenrek
use two per process memory slots, one for the pid and one for the fd instead of a global table avoiding the case when the table gets full. instead of calling pread() on the cached fd (dangerous as it has side effects when the fd was not closed), we check if the cached fd is still good using fd2path() when called the first time in this process.
2014-05-20libc: revert nsec() change, bring back filedescriptor cachingcinap_lenrek
theres big performance regression with this using cwfs. cwfs calls time() to update atime on every read/write which now causes walks on /dev. reverting to the previous version for now. in the long run, we'll use new _nsec() syscall but this has to wait for a later release once new kernels are established.