summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-02-10pc64: return up in RUSER (BP) for devproc kregs filecinap_lenrek
2014-02-10cc: emit right acid format for addresscinap_lenrek
we could use 'A' here but then it would require the new acid.
2014-02-10acid: update acid libraries for amd64cinap_lenrek
2014-02-09acid: make 'a' and 'A' format to have the same size as mach->szaddrcinap_lenrek
to make it easier to write portable acid code, we introduce 'A' format in the same meaning as in db(1): A Print the value of dot in hexadecimal. Dot is unaffected. both 'a' (symbolic) and 'A' will both have 64 or 32 bit size depending on the mach, so pointer array indexing works the same.
2014-02-09pc64: pass Ureg* argument in BP to userspace note handlercinap_lenrek
2014-02-09acid: fix memory corruption due to gccinap_lenrek
we cannot call gc() in execute() because it will gc anonyous intermediate results which happens when we construct a list and the elements are calculated by calling a function thru ocall() which calls execute(). also, the _thiscmd symbol; which is used to keep a reference to a statement so it wont get garbage collected; does not work as yyparse() is recursive (include statements). we add execrec() function which *only* gets called from yyparse() when evaluating a statement. it will keep a stack on the _thiscmd symbol handling the yyparse() recursion. we also only call gc() in execrec() before calling execute(). so execute() will never gc() while evaluating a statement which prevents the intermediate results from getting collected.
2014-02-08pc64: handle negative file offsets when accessing kernel memory with devproccinap_lenrek
file offset is 64 bit signed integer, negative offsets are invalid and rejected by the kernel. to still access kernel memory on amd64, we unconditionally clear the sign bit of the 64 bit offset in libmach and devproc sign extends the offset back to a 64 bit address.
2014-02-08mtrr: fix mistakecinap_lenrek
2014-02-08jpg: center image in screencinap_lenrek
when using the jpg(1) programs interactively, draw the image in the center of it. this avoids wasting space with always on borders on small windows and looks better when used in fullscreen.
2014-02-08reuse mtrr slots with default memory typecinap_lenrek
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.