summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-04-22hjfs: preserve newlines in commit message (thanks BurnZeZ)cinap_lenrek
2015-04-17gs: avoid 6c type propagation / constant folding issue for set_cb_end()cinap_lenrek
6c changed "- cmd_lagest_size + 1" into a *unsigned* 32bit constant. which got added to 64bit pointer making pcb->limit > pcb->end resulting in errors for partial commands in the buffer. removing the parentesis propagates the operation to 64bit.
2015-04-17games/doom: fix mipscinap_lenrek
2015-04-16kernel: leave shared, physical and fixed segments alone in killbig()cinap_lenrek
2015-04-16kernel: cannot interrupt segmentio commandscinap_lenrek
once we submit a command to segmentio process, we have to wait for it to complete even if we got interrupted.
2015-04-16kernel: avoid posting note to kernel process in faulterror()cinap_lenrek
the intend of posting a note to the faulting process is to interrupt the syscall to give the note handler a chance to handle it. kernel processes however, have no note handlers and all the postnote() does is set up->notepending which will make the next attempt to sleep raise an Eintr[] error. this is harmless, but usually not what we want.
2015-04-16cc: catch non constant pointer initializerscinap_lenrek
char FOO[] = "abc"; /* ok */ char *BAR = FOO; /* ok */ char *BAZ = BAR; /* wrong */
2015-04-16sokoban: fix non constant inializercinap_lenrek
2015-04-16kernel: pass segio error string by pointercinap_lenrek
there's no need to waste space for a error buffer in the Segio structure, as the segmentio kproc will be waiting for the next command after an error and will not overwite it until we issue another command.
2015-04-16kernel: add segio() function for reading/writing segmentscinap_lenrek
devproc's procctlmemio() did not handle physical segment types correctly, as it assumed it can just kmap() the page in question and write to it. physical segments however need to be mapped uncached but kmap() will always map cached as it assumes normal memory. on some machines with aliasing memory with different cache attributes leads to undefined behaviour! we borrow the code from devsegment and provide a generic segio() function to read and write user segments which handles all the cases without using kmap by just spawning a kproc that attaches the segment that needs to be read from or written to. fault() will setup the right mmu attributes for us. it will also properly flush pages for segments that maintain instruction cache when written. however, tlb's have to be flushed separately. segio() is used for devsegment and devproc now, which also allows for simplification of fixfault() as there is no special error handling case anymore as fixfault() is now called from faulting process *only*. reads from /proc/$pid/mem can now span multiple pages.
2015-04-15upas/smtp: cleanup mkfilecinap_lenrek
no need to list headers explicitely as they are implied by $HFILES.
2015-04-13segment: don't store pointers in a longcinap_lenrek
2015-04-13segment: fix read/write g->dlen race, avoid copying kernel memory, qlockcinap_lenrek
code like "return g->dlen;" is wrong as we do not hold the qlock of the global segment. another process could come in and override g->dlen making us return the wrong byte count. avoid copying when we already got a kernel address (kernel memory is the same on processes) which is the case with bread()/bwrite(). this is the same optimization that devsd does. also avoid allocating/freeing and copying while holding the qlock. when we copy to/from user memory, we might fault preventing others from accessing the segment while fault handling is in progress.
2015-04-13zynq: invalidate cache before booting cpu1cinap_lenrek
sometimes, machine would crash on boot because of data cache inconsistency. invalidating the cache before booting cpu1 fixes it.
2015-04-12segment: speed up fixedseg() doing single pass over freelistcinap_lenrek
walking the freelist for every page is too slow. as we are freeing a range, we can do a single pass unlinking all pages in our range and at the end, check if all pages where freed, if not put the pages that we did free back and retry, otherwise we'r done.
2015-04-12segment(3): document fixed segment creationcinap_lenrek
2015-04-12mergeaiju
2015-04-12mergecinap_lenrek
2015-04-12segment: fix print buffer overflow, map fixed segments uncached, add to zynq ↵cinap_lenrek
kernel
2015-04-12mergecinap_lenrek
2015-04-12kernel: fixed segment support (for fpga experiments)cinap_lenrek
fixed segments are continuous in physical memory but allocated in user pages. unlike shared segments, they are not allocated on demand but the pages are allocated on creation time (devsegment). fixed segments are never swapped out, segfreed or resized and can only be destroyed as a whole. the physical base address can be discovered by userspace reading the ctl file in devsegment.
2015-04-12games/gb: improve sound emulation by modelling analog behaviouraiju
2015-04-11nintendo(1), qer(8): fix typosstanley lieber
2015-04-11games/gb: limit audio range to prevent clippingaiju
2015-04-10nintendo(1): update for gbc compatabilitystanley lieber
2015-04-11mergecinap_lenrek
2015-04-11ether82563: work arround bad eeprom checksum for some i218 card (thanks BurnZeZ)cinap_lenrek
on some machines, the eeprom checksum reads out as 0x3ABA because of some bios issue. adding a flag for ignoring the checksum and on i218 controllers.
2015-04-10mothra(1): replace code.google.com with code.9front.orgstanley lieber
2015-04-09bootrc: simplify bootargs splitting avoiding awkcinap_lenrek
2015-04-09pc, pc64: remove PCICONS debug buffer from pci.ccinap_lenrek
2015-04-08pool: avoid triggering assert(b->magic != FREE_MAGIC) in blocksetsize() for ↵cinap_lenrek
mallocalignl() when we trim the front of a block with freefromfront(), the block magic of the back was not initialized which could sometimes trigger the assert in blocksetsize() to fail. fix is to just move the initialization of the magic field before the blocksetsize() call. the second b->magic = UNALLOC_MAGIC isnt really required but just done for consistency with the trim() code above.
2015-04-08nusb/kb: always try to recover on error, fix recover for multi-function devicescinap_lenrek
when we get an i/o error, always call hdrecover() which will reset the port and reinitialize the interface of the calling processes endpoint. handle the case when we have multi-function device with multiple reader procs in hdrecover(). the sequence is as follows: 1) any of the reader procs encounters i/o error and calls hdrecover(), acquires qlock and initiates port reset. 2) any other readerprocs will now encounter i/o error (due to reset) and also call hdrecover() but will be waiting on the qlock for reset to complete. 3) first process completes reset and reinitializes its interface with setproto() and then releases the qlock for the other readers todo the same.
2015-04-08pci: just in case the bios is drunkcinap_lenrek
2015-04-08pc, pc64: handle 64-bit pci membarscinap_lenrek
this avoids listing the upper half of 64-bit membars in Pcidev.mem[] array avoiding potential confusion in drivers. we also check if the upper half is programmed to zero by bios and otherwise zap the entry in Pcidev.mem[] and print a warning.
2015-04-08pc, pc64: extend initial memory map for qemu multiboot datacinap_lenrek
qemu puts multiboot data after the end of the kernel image, so to be able to KADDR() that memory early, we extend the initial identity mapping by 16K. right now we just got lucky with the pc kernel as it rounds the map to 4MB pages.
2015-04-07pc: import intel i218 nic changes from 9atommischief
2015-04-07kernel: move arrow cursor definition to port/devmouse.ccinap_lenrek
2015-04-07sgi: disable graphical arcs console printing on screen modesetcinap_lenrek
when we switch to graphics mode, we do not want graphical arcs console to print on the screen anymore as it assumes 8bit color mode and just messes up the screen on kernel prints.
2015-04-02/lib/rob: Да!stanley lieber
2015-04-02sgi: keyboard, mouse and cursor for indycinap_lenrek
2015-04-02games/gb: improved audio codeaiju
2015-04-02mergecinap_lenrek
2015-04-02games/gba: fix -3 crash and prevent >100% speedaiju
2015-04-02audiohda: add AMD FCH Azalia Controller (thanks qeed)cinap_lenrek
2015-04-01games/gb: fix gbc dmaaiju
2015-04-01games/gb: fix -2/-3aiju
2015-04-01new games/gb: better emulation and gbc supportaiju
2015-04-01ether8169: fix Macv45cinap_lenrek
2015-04-01ether8169: add 8168GU mac id (thanks qeed)cinap_lenrek
2015-04-01games/c64: writes to I/O area do not affect underlying memory (documentation ↵aiju
lied)