summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-02-10nusb: don't create rw iso endpoints (by Michael Forney)cinap_lenrek
There may be two iso endpoints with the same ID if it is asynchronous or adaptive (one for data, one for feedback), and rw iso endpoints are unusable (error out with "iso i/o is half-duplex").
2021-02-10nusb: don't create rw iso endpoints (by Michael Forney)cinap_lenrek
There may be two iso endpoints with the same ID if it is asynchronous or adaptive (one for data, one for feedback), and rw iso endpoints are unusable (error out with "iso i/o is half-duplex").
2021-02-10mergeOri Bernstein
2021-02-09fortunes: That depends on how you define native. -- Andre Garziasl
2021-02-09newt: remove fn f, replace with walksl
2021-02-09stdio: remove erronous assert in dtoaOri Bernstein
The value of `k` in dtoa() is an estimate of floor(log10(d)), where `d` is the number being converted. The code was asserting that 'k' was less than 100, but the full range of a double goes to 10^308 or so. This means that the majority of the range of a double would trigger that assert.
2021-02-08[9front] mimetype: add entry for .patch extensionMichael Forney
This way, upas/vf won't flag .patch files as suspicious by default.
2021-02-08[9front] upas/vf: exclude mime boundary from temporary attachment filesMichael Forney
validateattachment has no business with the mime boundary; it is not part of the attachment itself. Also, it causes the boundary to be dropped in the message output from upas/vf, effectively dropping the following attachment (though the content is still present after the last boundary of the wrapped first attachment part). Consider the following sequence of events: 1. upas/vf is run on a message containing two attachments. 2. The first attachment does not have a known extension, so is saved to a temporary file *including* the following mime boundary. 3. This file is opened as p->tmpbuf, which is used for subsequent reads until switching back to stdin. 4. The attachment fails validateattachment, so upas/vf wraps it in a multipart with a warning message. 5. problemchild() calls passbody(p, 0), which copies from p->tmpbuf until it hits the outer boundary line, which it excludes, seeks back one line, then returns the outer multipart. 6. problemchild() then writes its own boundary, and then copies one line from *stdin* to stdout, expecting the outer boundary. However, this boundary was already read from stdin in 2, so it ends up reading the first line of the subsequent part instead. To fix this, pass 0 to passbody() in save() to exclude it from the attachment file and make it available in stdin when expected.
2021-02-08ape/lib9: sync arm getfcr.s implementationOri Bernstein
The arm assembler supports movw to handle getfcr and setfcr now, no need to hack it with macros; sync from plan9 libc.
2021-02-08ape: sync flaot.h macros with u.hOri Bernstein
The float.h macros got out of sync with u.h, some of them missing and some of them being incorrect. This change brings them back in line.
2021-02-07Mail: correct rendering of nested multipart messagesOri Bernstein
Reading nested subparts of messages into the root message array allows deeply nested multipart trees of messages to show correctly in the message view.
2021-02-07[9front] upas/vf: remove debugging print statementsMichael Forney
These messages aren't useful and were presumably left over from someone debugging this code.
2021-02-08games/gb: fix reversed audio channelsMichael Forney
The high bits correspond to the left channel, and the low bits to the right channel. Reference: https://gbdev.io/pandocs/#sound-control-registers Tested with pokemon crystal.
2021-02-08games/gb: various HDMA fixesMichael Forney
H-blank DMA should only transfer 16 bytes per h-blank, rather than waiting for the first h-blank and then transferring the whole size. HDMAC should read 0xff when the transfer is finished, and 0 in the high bit when the transfer is ongoing. Also, if 0 is written in the high bit, the current transfer should be aborted. Introduce two flags, DMAREADY and DMAHBLANK rather than special constants 1 and -1. If dma is non-zero, there is an ongoing DMA. If DMAREADY is set, the next chunk is ready to transfer. Reference: https://gbdev.io/pandocs/#ff55-hdma5-cgb-mode-only-new-dma-length-mode-start Tested with pokemon crystal. What was happening is that when the game was loading N background tiles into vram (each 16 bytes, so one per h-blank), it did something like this: - start an hdma transfer for N+1 tiles - after the Nth tile is transferred, it would read HDMA5, clear the high bit, then write it back to abort the transfer. games/gb would instead transfer all N+1 tiles at once, overwriting one extra tile with whatever was 1 past the end of the source array, and then would interpret the cancel request as the start of a new transfer of 16 bytes, which would copy an additional tile past the end. The end result is that every transfer would end up copying N+2 tiles instead of just N, overwriting certain tiles with whatever was after the end of the source data.
2021-02-08games/gb: fix timer divider for input clock 0Michael Forney
According to [0], input clock 0 should divide by 1024=2¹⁰, not 2¹². This caused audio to run at quarter-speed in one game I tried. [0] https://gbdev.io/pandocs/#ff07-tac-timer-control-r-w Tested with zelda: oracle of seasons, and dr. mario ---
2021-02-07[9front] upas/vf: install %τ format specifierMichael Forney
upas/vf was converted to use tmdate, but the formatter was never installed. This caused it to send attachments to validateattachment with header `From virusfilter %τ%`, which always failed since upas/fs would just skip over the message.
2021-02-06mergecinap_lenrek
2021-02-06bcm64: get inbound and outbound pci window base address from device treecinap_lenrek
On the pi400, the xhci reset firmware mailbox request assumes that the pci windows match the ones specified in the device tree. The inbound window (pcidmawin) also varies now depending on the amount of memory installed. It is all pretty ridiculous, as the firmware could as well just read the pci controllers hardware register to determine the window configuration and the os could keep a nice simple 1:1 mapping (with pci dma addresses == physical addresses).
2021-02-06pc: increase number of Conf.mem[] entries from 4 to 16cinap_lenrek
2021-02-06pc, pc64: warn when running out of conf.mem[] entries in meminit()cinap_lenrek
2021-02-06test: fix expression parserAlex Musolino
The old parser code was rubbish and only worked for trivial expressions. The new code properly handles complex expressions, including short circuit evaluation. As such, the BUGS section has been removed from the test(1) man page. The description of an unimplemented feature has also been removed.
2021-02-04libdraw: enter/eenter: fix ^W removing the text on the right side of the tickSigrid
2021-02-04libdraw: enter/eenter: fix Kleft for non-ascii textSigrid
2021-02-03[9front] [PATCH] audiohda: add PCI ID for Intel C610/X99Michael Forney
--- Tested and seems to work fine.
2021-02-03acmemail(1): Nail => MailOri Bernstein
Forgot to change the program name when importing the rewrite.
2021-02-03mklib, upas/common: clean up libcommon properly (thanks mikan)Ori Bernstein
Despite pervious efforts, mk clean still doesn't remove libcommon.a* files from cmd/upas/common/. To fix this, let's tell cmd/mklib to do the job instead.
2021-02-03acme: fix use after free in warning() call (thanks igor)cinap_lenrek
2021-02-02mergeOri Bernstein
2021-02-02runq: clean up code, fix error handling.Ori Bernstein
Runq spawns a number of processes, and wait()s for them in 2 different places. Because of the way that the exit handling is done, the wait can get the wrong message. It turns out that only one place in the code needs to wait for the child, and in all other cases, it's just muddling the problem. This change adds the RFNOWAIT call to all the processes we don't need to wait for, so that the places that do need wait will always get the correct child.
2021-02-02fortunes: SATANSigrid
2021-02-02winwatch: always reflow when possible (thanks telephil9)Sigrid
2021-02-01Mail: only clear upas-maintained flags on change (thanks deuteron)Ori Bernstein
When message flags change, Mail would clear all the flags and recompute them. This would clobber internal flags like Ftodel. So, don't do that.
2021-01-31mothra: don't insert newline after div (thanks phil9)Ori Bernstein
2021-01-30ape/libm: implement log2 in libcOri Bernstein
2021-01-29Mail: fix inverted reply-all conditionOri Bernstein
2021-01-29Mail: rewrite.Ori Bernstein
Acme mail made it hard to do threading, so I wrote a new one.
2021-01-28screenlock: use initdisplay(2), top the window (thanks stuart morrow)Ori Bernstein
Screenlock should use libdraw(2) to init the display and create the window, instead of looking at the screen file directly. Also, to prevent new windows from popping up over screenlock, bring it to the top periodically.
2021-01-26news: make -a and -n get along (thanks lyndon)Ori Bernstein
currently, -a and -n are mutually exclusive. this change allows them to be used together.
2021-01-24cc: mk clean should delete cc.a$OOri Bernstein
It's surprising when 'mk clean' doesn't actually do a clean build in cc -- fix this.
2021-01-235l: fix shifts by zeroOri Bernstein
on arm32, we can do one of 4 shifts by a constant: reg<<(0..31) reg>>(1..32) ((u32int)reg)>>(1..32) reg ROT (0..31) There's no way to encode a 0 bit right shift, so when encoding reg>>0, flip it to the equivalent nop reg<<0, which can be encoded.
2021-01-23ape/libm: add back fmod, remove modfOri Bernstein
We removed the wrong file. Put it back.
2021-01-23[9front] ape: remove _SUSV2_SOURCE guard from inttypes.hMichael Forney
inttypes.h was added to C99, and this is the only header that used _SUSV2_SOURCE. Also, remove now unneeded _SUSV2_SOURCE from python mkfile.
2021-01-23[9front] nusb(4): fix typoMichael Forney
2021-01-23[9front] cc: fix comparison warning with constant LHSMichael Forney
This prevents an incorrect warning for a comparison such as `0 < x`, where x is an unsigned type. Previously, this would get normalized as `x >= 0` rather than `x > 0` when checking the comparison.
2021-01-23[9front] cc: remove unnecessary 128-bit add functionMichael Forney
Instead, just change the comparisons from <=/>= to </>.
2021-01-23upas/fs: fix swapped argument, dead codeOri Bernstein
With ntlm auth, we were trying to set 0 bytes of the auth struct to its size. The args were clearly swapped. Fix it. While we're here, remove some dead code.
2021-01-23upas/runq: fix typoOri Bernstein
one slipped in to the last commit.
2021-01-23upas/runq: bring back -aOri Bernstein
Turns out -a is useful in crontab, so bring back a simplified version of it. This only iterates through directories one at a time.
2021-01-24ape: update mkfile for removed fmod.cqwx
2021-01-23vnc: I don't like your face.Ori Bernstein
Cosmetic improvements to vnc auth code. Should not have user-visible changes.