summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-02-08aux/vga: fix format string error with 6ccinap_lenrek
2014-02-08pc64: bump segment limit to 64GBcinap_lenrek
2014-02-07pc64: dont reuse mtrr slots that are above 4GBcinap_lenrek
we used to override/reuse mtrr slots over 4GB as the kernel wasnt able to use that memory. pc64 can.
2014-02-06pc64: ensure user pc is never set to a non-canonical address through ↵mischief
setregisters on intel processors, a general protection exception is fired if a non-canonical address is loaded into PC during SYSRET. this will cause the kernel to panic. see http://www.kb.cert.org/vuls/id/649219 and the intel software developer manual for more information.
2014-02-07pc64: fix devcons format strings for memory sizescinap_lenrek
2014-02-07cwfs: limit memsize() to 1GB until pool can handle huge allocationscinap_lenrek
2014-02-07pc64: fix poolsummary() string formatcinap_lenrek
2014-02-06pool: use uintptr for pool sizecinap_lenrek
note, arenas and blocks still use ulong for sizes. so we have to check for overflow when attempting to merge arenas.
2014-02-06pc64: fix note handlingcinap_lenrek
2014-02-06pc64: fix kmap()cinap_lenrek
kmapindex has to be per process, not per mach, as the process can be switched to another processor while the mapping is established. to bootstrap the first process, we have to temporarily set up so the kmap MMU's can be attached to the process. previously we assumed that the first two pages for the initial process where below 2GB and could be accessed with KADDR() directly. with 16GB machine, all the 2GB above KZERO are dedicated to the kernel so the user pages returned by newpage() need to be mapped.
2014-02-05have to use NULL instead of nil for ape programs...cinap_lenrek
2014-02-05pc64: dont 4 byte align stack pointer for amd64 in sysexec()cinap_lenrek
2014-02-05fix wrong type for terminating nil argument for execl()cinap_lenrek
we have to use (void*)0 instead of (int)0 otherwise the upper bits are uninitialized on amd64.
2014-02-04libpanel: remove pointless pointer castsmischief
2014-02-05mergecinap_lenrek
2014-02-05mothra: better handling of malformed search regexcinap_lenrek
2014-02-04libpanel: fix pointer casts and format stringsmischief
2014-02-05mothra: dont panic on invalid regular expression in searchboxcinap_lenrek
2014-02-03/lib/face/48x48x4/.dict: fix typosstanley lieber
2014-02-03pc64: fix up pointer calculations and enable sdvirtio disk drivermischief
2014-02-04pc64: remove cinaps cga screen interrupt debugger, was experiment...cinap_lenrek
2014-02-04pc64: dont dump user registers on exception, was experiment...cinap_lenrek
2014-02-04hjfs: fix wrong channel size for syncb (fixes amd64 crash)cinap_lenrek
2014-02-04doom: port to amd64cinap_lenrek
2014-02-03realemu: cleanup opidivcinap_lenrek
no need for switch here, just calculate the values. also fixes 6l warning about uninitialized min/max (compiler assumes none of the case statements could match).
2014-02-03libmach: change mach pgsize back from 4K to 2MB for amd64cinap_lenrek
the Mach page size is used to calculate segment alignment. its not the real effective page size used by the kernel. this fixes acid.
2014-02-03ipmux: fix 6c complaintscinap_lenrek
2014-02-03mergecinap_lenrek
2014-02-03kernel: dont double ptemap size in newseg()cinap_lenrek
this doubling affects all segment types, not just bss. (tho text/data are usually small...) and theres no telling if the segment will actually grow in the future justifying the reduction of memmove overhead in ibrk(). some ape programs are approaching the 16mb ssegmap size so that code might trigger. removing the smarts...
2014-02-03pc/pc64: move common code to pc/devarch.ccinap_lenrek
2014-02-03pc64: implement shutdown and idlehandscinap_lenrek
just copies from pc kernel. should refactor into common pc code.
2014-02-02mergemischief
2014-02-02pc64: enable sdide drivermischief
2014-02-02acid: fix memory leak in fundefs (from 9atom)mischief
2014-02-03libdraw: fix typo: 0xfffff -> 0xffffcinap_lenrek
2014-02-03libdraw: work arround devdraw truncating screenid as 16bitcinap_lenrek
2014-02-03devdraw: screenid is BGLONG, not BGSHORTcinap_lenrek
2014-02-02pc64: track per process kmap page tables in separate MMU list.cinap_lenrek
we have to keep kmap page tables in ther own list because user tables are subject to (virtual) tlb flushing. we never free kmap page tables except in mmurelease() where we just link the kmap mmu list in front of the user mmus and call mmufree() which will free all the mmu's of the process.
2014-02-02malloctag: only store lower 32bit of malloc tag, fix getrealloctagcinap_lenrek
as erik quanstro suggests, theres not much of a point in storing the full 64bit pc as one cannot get a code segment bigger than 4G and amd64 makes it hard to use a pc that isnt 64bit sign extension of 32bit. instead, we only store ulong (as originally), but sign extend back when returning in getmalloctag() and getrealloctag(). getrealloctag() used to be broken. its now fixed.
2014-02-02kernel: fix bogus free in sysexec.cinap_lenrek
we free the wrong pointer in the waserror() block.
2014-02-02newuser: dont bark when we cannot bind $home/bin/$objtype after /bin, create ↵cinap_lenrek
$home/bin/amd64
2014-02-02kernel: do not pass user address of fd[2] array to newfd2()cinap_lenrek
access to user memory can pagefault and newfd2() holds fgrp spinlock while writing to it. make temporary copy on the stack in syspipe().
2014-02-02kernel: use uintptr when appropriate in syssegflush()cinap_lenrek
2014-02-02pc64: dont dump registers for user process on pagefault error, was experimentcinap_lenrek
2014-02-02pc64: no need to flush tlb in kunmap(), was experimentcinap_lenrek
2014-02-02add acid library for amd64cinap_lenrek
2014-02-02pc64: fix mmu structure leakage, implement global poolcinap_lenrek
2014-02-02pc64: print only 8 hex chars dumpstack sp/pccinap_lenrek
kernel addresses are sign extended to 64 bit. upper bits are not really helpfull.
2014-02-02mallocalign: make sure alignptr offset is modulo align when -offset > aligncinap_lenrek
2014-02-02pc64: fix vmapcinap_lenrek
VMAP address calculation was all wrong resulting in vmaps get mapped into KZERO map.