summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-05-31kernel: remove unused segment argument in freepte()cinap_lenrek
2020-05-31pc, xen: make PAT support optional (for xen)cinap_lenrek
2020-05-30ape/libdraw: add missing eenter (thanks phil9)Ori Bernstein
2020-05-30imap4d: reject invalid month in date2tm()cinap_lenrek
2020-05-30rc: avoid forking for final command that has variable assignments (to get ↵cinap_lenrek
$apid right) basically, we want the following commands to print the same pid twice: rc -c 'cat /dev/pid &;echo $apid' vs: rc -c 'a=1 cat /dev/pid &;echo $apid' basically, Xsimple() calls exitnext() to determine if a simple command should be promoted to exec, by peeking ahead into the code and searching for Xexit instruction. Xexit might not follow immediately after the Xsimple instruction because of redirections, which exitnext() would skip. but it would not skip the Xunlocal instructions that where added by the variable assignment.
2020-05-27ip/cifsd: add FIND_FIRST2 SMB_FIND_FILE_FULL_DIRECTORY_INFO info levelcinap_lenrek
2020-05-26sshnet: prevent ssh process from keeping the mount alivecinap_lenrek
2020-05-24pc, pc64: fix wrong mtrr physmask() for machines without extended address ↵cinap_lenrek
size msr
2020-05-24awk: fix race condition with sub-mk in mkfilecinap_lenrek
the maketab helper program was generated in parallel, which had a dependency to y.tab.h which lead to yacc running twice in parallel. this removes the dependency to y.tab.h in the virtual maketab.$objtype target to prevent this race condition. the dependency to y.tab.h is resolved in the main mk at the $cputype.maketab target which serializes with the other targets.
2020-05-24usbehci: release ctlr ilock before calling pollcheck()cinap_lenrek
2020-05-24mergecinap_lenrek
2020-05-24usbehci: avoid kproc() while holding poll lockcinap_lenrek
2020-05-24man(9): remove accidentally commited indicescinap_lenrek
2020-05-23mergecinap_lenrek
2020-05-23ip/tinc: accept udp connection from any udp source portcinap_lenrek
the remote host might be behind a NAT which translates the source port, so if no host could be found, lookup the ip address only.
2020-05-23paint: change colors in the palette with button 3Sigrid
2020-05-23libaml: implement ToDecimalString and ToHexString operationscinap_lenrek
2020-05-22pc, pc64: do page attribute table (PAT) init early in cpuidentify()cinap_lenrek
the page attribute table was initialized in mmuinit(), which is too late for bootscreen(). So now we check for PAT support and insert the write-combine entry early in cpuidentify(). this might have been the cause of some slow EFI framebuffers on machines with overlapping or insufficient MTRR entries.
2020-05-17libc/arm64: work arround linker bug for cas()cinap_lenrek
at the _cas0 label, the linker would generate spurious stack adjustment before the return: atexitdont+0x84 0x000000000003614c CLREX $0xf atexitdont+0x88 0x0000000000036150 MOVW R31,R0 atexitdont+0x8c 0x0000000000036154 MOV (SP)16!,R30 <- ???????????? atexitdont+0x90 0x0000000000036158 RETURN the work arround is to move the code into its own cas0 text symbol. this fixes impossible cwfs crashes in srvi().
2020-05-177l: handle dupok flag in TEXT/GLOBL datacinap_lenrek
2020-05-17Add stdbool.h to apeOri Bernstein
in accordance with c99:7.16. Used by perl, trivial enough that I feel ok with adding it before the port is fully done.
2020-05-167l: fix mistakecinap_lenrek
2020-05-15#pragma ref no longer existsOri Bernstein
It appears to be an antiquated form of 'USED(x)'
2020-05-15Fix scans of more than one character in %[]Ori Bernstein
This got broken in d8e877a89dae, where we returned 0 on the first mismatch; we want to return 0 only when we consumed no characters.
2020-05-13stop fiddling with path construction.Ori Bernstein
There's fd2path, which gives back the full path directly. This makes the code even simpler.
2020-05-13fix yacc crash with absolute pathsOri Bernstein
When passing an absolute file path to yacc, we would skip initializing inpath, leaving it null. This would cause Bopen to die. We would similarly fail to report an error if we tried to get the current working directory, and then die when constructing inpath. This fixes both cases.
2020-05-13ape: fix name clash, have to use _SLEEP syscall instead of ape sleep in ↵cinap_lenrek
plan9 code (thanks jamos) this fixes etimer() from ape built libdraw as posix sleep() uses seconds while plan9 uses miliseconds.
2020-05-12cc: dont export gethunk(), hunk, nhunk and thunkcinap_lenrek
2020-05-12cc: get rid of hunk pointer fiddling and just use alloc()cinap_lenrek
2020-05-12?l: remove direct hunk manipulation from linkers, just call malloc()cinap_lenrek
as with recent changes, cc's malloc() could make the hunk pointer misaligned. in the the compilers, the hunk pointer is used directly by the lexer with no effort to to keep the hunk pointer aligned. alloc/malloc still return aligned pointers, but hunk itself can be on a odd address after allocation of a odd sized amount of bytes. however, in the linkers, this assumption appears to be differnet. as most allocations mostly allocate padded structures. however, symbol lookup allocates strings on byte-size ganularity and the cc's malloc would misalign the hunk pointer after the malloc() call. while the rest of the code assumed hunk pointer was always aligned. this change removes all the hunk pointer fiddling from the linker, and we just call malloc() (which will use the fast implmenentation of cc, and should not really make much of a performance difference).
2020-05-12[ape] add missing conversion flags for scanfOri Bernstein
We're missing type flags for: hh: char ll: vlong z: size_t t: ptrdiff_t j: intmax_t The lack of '%lld' was causing us to fail when parsing timezone files. This brings us in line with the specifiers in the C99 standard, section 7.19.6.2p11
2020-05-10devip: fix ifc recursive rlock() deadlockcinap_lenrek
ipiput4() and ipiput6() are called with the incoming interface rlocked while ipoput4() and ipoput6() also rlock() the outgoing interface once a route has been found. it is common that the incoming and outgoing interfaces are the same recusive rlocking(). the deadlock happens when a reader holds the rlock for the incoming interface, then ip/ipconfig tries to add a new address, trying to wlock the interface. as there are still active readers on the ifc, ip/ipconfig process gets queued on the inteface RWlock. now the reader finds the outgoing route which has the same interface as the incoming packet and tries to rlock the ifc again. but now theres a writer queued, so we also go to sleep waiting four outselfs to release the lock. the solution is to never wait for the outgoing interface rlock, but instead use non-queueing canrlock() and if it cannot be acquired, discard the packet.
2020-05-10kernel: fix checkpages() and segflush() on SG_PHYSICAL type segmentscinap_lenrek
do not touch s->map on SG_PHYSICAL type segments as they do not have a pte map (s->mapsize == 0 && s->map == nil). also remove the SG_PHYSICAL switch in freepte(), this is never reached.
2020-05-10mergekvik
2020-05-10acme: add missed error checkskvik
2020-05-10mergecinap_lenrek
2020-05-10usbxhci: fix wrong control endpoint 0 output device context addresscinap_lenrek
the calculation for the control endpoint0 output device context missed the context size scaling shift, resulting in botched stall handling as we would not read the correct endpoint status value. note, this calculation only affected control endpoint 0, which was handled separately from all other endpoints.
2020-05-09fix '%[]' specifiers and '%n' (thanks phil9)Ori Bernstein
When a match() fails, we need to unget the character we tried to match against, rather than leaving it consumed. Also, we can't break out of a conversion before we reach the end of a format string, because things like the '%n' conversion do not consume anything, and should still be handled.
2020-05-08nusb/kb: add quirks for Elecom HUGE trackballkvik
As said in the code comment: Elecom trackball report descriptor lies by omission, failing to mention all its buttons. We patch the descriptor with a correct count which lets us parse full reports. Tested with: Elecom HUGE (M-HT1DRBK, M-HT1URBK) The descriptor fixup is adapted from Linux kernel: drivers/hid/hid-elecom.c in which a more detailed account of why and how this works may be found. A followup change to nusb/kb will be needed to expose these additional events for potential remapping.
2020-05-07mergecinap_lenrek
2020-05-07bcm64: fix kernels cmpswap() functioncinap_lenrek
spectacular bug. cmpswap() had a sign extension bug using sign extending MOV to load the old compare value and LDXRW using zero extension while the CMP instruction compared 64 bit registers. this caused cmpswap with negative old value always to fail. interestingly, libc's version of this function was fine.
2020-05-07fix typo: mouse->xy, not w->mc.xyOri Bernstein
2020-05-07aux/getflags: remove rogue debug printkvik
2020-05-06bring stdint.h closer to specOri Bernstein
C99 requires that if intXX_t types are defined, int_fastxx_t and int_leastxx_t types are defined as well. We define all three to be identical (intXX_t == int_fastXX_t == int_leastXX_t).
2020-05-07aux/getflags: improve flagfmt parserkvik
This makes the flagfmt parser more robust and accepting a looser input language — namely by allowing whitespace around specifier fields and ignoring any empty fields. Long flagfmts can thus be pleasingly displayed: flagfmt=' a, b, c, C:cache, m:mtpt mountpoint, s:srvn srvname'
2020-05-06Reset click count on mouse motion.Ori Bernstein
2020-05-04tmac.eai: wrapper around -me: auto indexing sections, .TC macro (thanks ↵Sigrid
sirjofri)
2020-05-04add missing /sys/lib/tmac/me files (thanks sirjofri)Sigrid
2020-05-02make bind(2) error handling consistentcinap_lenrek
The mount() and bind() syscalls return -1 on error, and the mountid sequence number on success. The manpage states that the mountid sequence number is a positive integer, but the kernels implementation currently uses a unsigned 32-bit integer and does not guarantee that the mountid will not become negative. Most code just cares about the error, so test for the -1 error value only.
2020-05-02libdraw: fix mount() error handling in newwindow()cinap_lenrek