summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-06-05sysupdate: insert tombstoneOri Bernstein
after this update, we're on git: update sysupdate to switch repositories.
2021-06-05mergeAlex Musolino
2021-06-05upas/Mail: fix bug where Redraw must be executed twice to have an effectAlex Musolino
In showlist, call bwindata instead of bwinopen in order to use a pre-existing fd to write to the data file. This existing fd will properly honour any address set by a previous write to the addr file. Specifically, the redraw function sets addr to "," before calling showlist in order to overwrite the entire contents of the window.
2021-06-04git: allow local repository directories as remote uri'scinap_lenrek
This is implemented by checking first if the uri is a directory containing the .git/ subdirectory. If this is the case, we fork git/serve serving the repository on a pipe.
2021-06-04git/serve: remove undocumented -n namespace option and -r /usr/git defaultcinap_lenrek
This makes it easier to serve local repositories where the sandboxing gets in the way.
2021-06-03git/log: show first commit as file changeOri Bernstein
We checked if the file was changed from its parents. If there were no parents, the answer was no, but it should be yes.
2021-05-31git/init: create fs dirOri Bernstein
2021-05-31git/send: pick minimal delta set correctly (thanks igor)Ori Bernstein
We weren't giving all objects to the twixt() function, and it was making bad life choices -- gambling, smoking, drinking, and packing in too much data. With more information, it doesn't do the last.
2021-05-31sdvirtio: accept multi-queue devicesOri Bernstein
Sdvirtio supports multiple queues per device. We only use one queue, but we shouldn't skip the devices because of that.
2021-05-30git/branch: ...all the debug prints.Ori Bernstein
2021-05-30git/branch: remove debug printsOri Bernstein
2021-05-30git/branch: reduce execs to sync working dirOri Bernstein
We were execing a lot to copy the data -- do less of it.
2021-05-30git/fs: move mount point to $repo/.git/fsOri Bernstein
Moving the mount point to within the repo directory means that we can have multiple git repos mounted at once with no conflict.
2021-05-30vac: add -t flag to exclude temporary files and directories (thanks foura)cinap_lenrek
2021-05-30[9front] vga: Add U+29FA DOUBLE PLUS (thanks jmi2k)cinap_lenrek
2021-05-29mergecinap_lenrek
2021-05-29kernel: use 64-bit virtual entry point for expanded header, document ↵cinap_lenrek
behaviour in a.out(6) For 64-bit architectures, the a.out header has the HDR_MAGIC flag set in the magic and is expanded by 8 bytes containing the 64-bit virtual address of the programs entry point. While Exec.entry contains physical address for kernel images. Our sysexec() would always use Exec.entry, even for 64-bit a.out binaries, which worked because PADDR(entry) == entry for userspace pointers. This change fixes it, having the kernel use the 64-bit entry point and document the behaviour in the manpage.
2021-05-28zuke: treat toggle as play in stopped stateSigrid
2021-05-27zuke: fix seeking in paused modeSigrid
2021-05-23mkpaqfs(8): allow setting compression levelcinap_lenrek
2021-05-20/sys/lib/kbmap/colemak: map capslock to backspace (thanks jacob wb)cinap_lenrek
2021-05-17git: add missing fileOri Bernstein
Forgot to add common.rc in the initial commit.
2021-05-179pfid(2): document Srv* in Req (thanks kjn)Ori Bernstein
This struct member is available for any user of the library, and is not part of our internal API. It should be documented.
2021-05-16git: got git?Ori Bernstein
Add a snapshot of git9 to 9front.
2021-05-15memory(2): mention tsmemcmp (thanks kemal)cinap_lenrek
2021-05-02ip/ftpd: Add explict and implicit FTPS support.foura
Removed: - Challenge reponse auth. - Noworld login. - Anonymous users writing files to /incoming.
2021-05-13libpanel: fix text sliding around in libpanel text entry widgets.james palmer
2021-05-12pc64: avoid getcr3() in mmuflushtlb()cinap_lenrek
it turns out that calculating physical address of pml4 is faster than reading the machine register, so pass it explicitely.
2021-05-12devvmx: remove unncessary locking in gotcmd() sleep test functioncinap_lenrek
2021-05-12vmx: fix 9p debug server and make it compatible to /proccinap_lenrek
The 9p debug server was broken as it assumed the first tree file added would have a qid of 0 (it has a qid of 1 as the root directory is using 0 already). Instead, just compare File* pointers and get rid of the table (less code). When passing 64-bit unsigned addresses as 64-bit signed file offsets, we have to make sure to not pass negative offsets (filtered out by kernel and lib9p)! This is solved by clearing and sign bit in encoding and 63-bit sign extension on decoding. Make the mem file writable (needed for acid). The 9p debug server provided a single directory containing mem and regs files. This patch renames the regs file (which is in vmx specific text format) to "xregs" and adds "regs" and "kregs" file which use the same format as exported by the kernels /proc filesystem. This allows one to bind the vmx directory over a proc directory and attach acid to a running system like: mount -b /srv/vmx /proc/1 acid -k -lkernel 1 /sys/src/9/pc64/9pc64
2021-05-12vmx: avoid strdup() register names for register cachecinap_lenrek
If we tokenize the register file contents in a static buffer, we can avoid having to duplicate the register names. All callers to rpoke() provide constant register arguments so they also do not need to be duplicated.
2021-05-12vmx: implement long mode page table translationcinap_lenrek
This allows vmx to translate virtual addresses to physical when the gues runs in long mode.
2021-05-09iwhois: add some improvements (thanks gall0ws)cinap_lenrek
patch from gall0ws: > It's impossible to get whois right and probably nobody cares about it, > nevertheless this small patch fixes some issues with the current version: > > * use a more common filter for default boilerplate (useful when > following the referral chain) > * updated boilerplate for *.co.uk *.net.uk *.org.uk > * added case *.com *.net (got it from iana.org) > * use ARIN for IPv6 addresses > * when unsure, check first whether whois.nic.$tld exists otherwise > usual fallback to InterNIC > * fixed regexp for the referral chain (case, extra spaces or /) - add usage handling. -- cinap
2021-05-05games/opl3: use correct sampling rateqwx
games/dmid uses the same sample rate as the chip for music, but other applications do not. opl3 and its older version opl2 (not in 9front) read an input stream of commands in basically IMF format, something used in other id Software games and some others, which assumes a given input sampling rate: 700 Hz for Wolfenstein 3D music, 560 Hz for Commander Keen, 60 Hz for Ultima 6, etc. The opl3 emulation on the other hand is not really intended to run at a sampling rate different that the chip's 49.716 kHz sampling rate. Previously, we assumed it runs at 44.1 kHz and just used the input rate as a divisor to get the number of samples per delay tic. From what I understand, the correct way to use it for accurate emulation is to run the opl chip emulator at its intended sampling frequency, then downsample to 44.1 kHz. This means better output but more code. The alternative is to basically do the same as before rev 8433, except with no buffering, but at accuracy/quality loss. This change implements the former and just forks pcmconv to deal with resampling.
2021-05-05mergecinap_lenrek
2021-05-05cpu: properly handle end of file in readstr()cinap_lenrek
2021-05-04zuke(1): more fixes (thanks humm)Sigrid
2021-05-04zuke(1): engrish (thanks qwx)Sigrid
2021-05-04add zuke(1) manpage (thanks kemal & humm)Sigrid
2021-05-03libtags: upstream updatesSigrid
2021-05-01Mail: remove message about cyclic threadsOri Bernstein
They happen, and we break the cycle. There's nothing the user can do, so there's no point in warning.
2021-05-01lib9p: remove Srv.srvfd, make postsrv() and threadpostsrv() return the ↵cinap_lenrek
mountable file descriptor, update documentation Now that we have these new functions, we can also make them return an error instead of calling sysfatal() like postmountsrv(). Remove the confusing Srv.srvfd, as it is only temporarily used and return it from postsrv() instead.
2021-05-01lib9p: remove unneccesary headerscinap_lenrek
2021-05-01lib9p: expose Srv.forker handler and srvforker(), threadsrvforker() and ↵cinap_lenrek
threadsrv() functions To use srvrease()/srvaquire() we need to have a way to spawn new processes to handle the service loop. This functionality was provided by the internal _forker() function which was eigther rfork or libthread based implementation depending on if postmountsrv() or threadpostmountsrv() where called. For servers who want to use srv() directly, _forker would not be initialized so srvrelease() could not be used. To untangle this, we get rid of the global _forker handler and put the handler in the Srv structure. Which will get initialized (when nil) to eigther srvforker() or threadsrvforker() depending on if the thread or non-thread entry points where used. For symmetry, we provde new threadsrv() and threadpostsrv() functions which handle the default initialization of Srv.forker. This also allows a user to provide his own forker function, maybe to conserve stack space. To avoid dead code, we put each of these function in their own object file. Note, this also allows a user to define its own srvforker() symbol.
2021-04-30libtags: use nelemSigrid
2021-04-30libtags: trim text tags and ignore empty valuesSigrid
2021-04-29libtags: modules: ignore empty titleSigrid
2021-04-29libtags: use CP437 as the default encoding for module formatsSigrid
2021-04-27opl3(1), exec(2): fix manpage typos (thanks umbraticus)qwx
2021-04-27games/opl3: don't buffer output and simplify (thanks umbraticus)qwx
this fixes real-time applications. -n previously specified a rate divisor rather than the rate itself, which was used for specific applications outside of 9front. instead, just set the rate directly, more useful and straightforward.