Commit graph

6393 commits

Author SHA1 Message Date
qwx 9f755671fb torrent: avoid trying to fetch blocks past file 2019-01-08 13:22:09 +01:00
cinap_lenrek d0f824edc2 pc, pc64: properly track dependencies for mem.h on autogenerated apbootstrap.h and reboot.h targets 2019-01-04 02:51:29 +01:00
cinap_lenrek c88ed6488f upas/fs: don't put messages on the lru that cannot be uncached
the lru is there to track least recently used messages so
we can evict them from the cache and refetch them again on
demand. for pop3 mailbox, which doesnt provide fetch routine,
the messages should never be put on the freelist.
2019-01-02 10:26:38 +01:00
cinap_lenrek de8580ed9f upas/fs: include mkupas in mkfile last to get default target 2019-01-02 10:22:27 +01:00
Alex Musolino 2c6cc12133 upas/fs: fix infinite loop in putcache (again)
The previous attempt to fix this problem (see changesets b32199e0f90a
and 00ae79a6ba50) caused all calls to cachefree to free the cached
message contents in addition to updating the LRU list.  This causes
problems for the POP3 driver since it provides no fetch function; once
a message is evicted from the LRU cache, its contents is lost.

This time we fix cachefree to always update the LRU list but only free
the cached message contents if the driver provides a fetch function or
the force flag is set.
2018-12-31 00:00:09 +10:30
cinap_lenrek f464b7ff16 rsa(8): add example for tinc(8) (thanks k0ga, qwx) 2018-12-28 11:46:15 +01:00
aiju 83b854df0d dtracy: fix conditional branch generation 2018-12-28 10:26:25 +00:00
BurnZeZ ca10fccafe remove function prototype that leaked into last commit 2018-12-26 04:51:35 +00:00
BurnZeZ c650a7db0c tcs: clean up old port code, and avoid writing 0 to stdout 2018-12-26 04:47:22 +00:00
cinap_lenrek 27921a1ba0 mk: fix closing random fd from uninitialized stack variable (thanks BurnZeZ, mycroftiv)
mycroftiv → this is practically "500 mile email" territory - the "6 letter mk bug"
2018-12-26 05:04:56 +01:00
cinap_lenrek 1b619dea42 nusb/disk: revert previous attempts and just not issue capacity command when theres no media present 2018-12-24 19:06:01 +01:00
Ori Bernstein ee9b29550f Make the check work.
Embarrassing.
2018-12-23 23:10:42 -08:00
cinap_lenrek c80f22f74a nusb/disk: implement 64 bit lba read/write commands (16 byte commands)
untested.
2018-12-24 05:10:43 +01:00
cinap_lenrek 2aec1f8a09 nusb/disk: fix typo "(" 2018-12-24 05:05:41 +01:00
Ori Bernstein bb151fa789 Don't unnecessarily unstall devices.
Some SD card readers are slow to unstall. We try to unstall them
in a loop if there's no SD card in there, but they're not stalled.
They're happily reporting that there's no SD card in them by giving
back the appropriate error code.

Skipping the unstall speeds up the retry loop, cutting the time spent
attaching the USB device at boot from multiple minutes to nearly instant.
2018-12-23 19:44:58 -08:00
cinap_lenrek ec1c1b9b52 dossrv: cleanup 2018-12-24 01:21:47 +01:00
cinap_lenrek 1e0b65c8bf dossrv: make GLONG() return ulong, handle getsect() error in dostat() 2018-12-23 22:43:29 +01:00
cinap_lenrek d843bc8e22 etherx550: add intel 10GB ethernet controlller x550 driver (thanks joe9) 2018-12-23 17:48:11 +01:00
cinap_lenrek 426c989317 ether82598: fix multicast filter (thanks aiju, joe9) 2018-12-23 17:41:47 +01:00
cinap_lenrek 4a634d2102 dossrv: use 64 bit vlong for sectors 2018-12-22 20:49:24 +01:00
cinap_lenrek 9fe1377336 dtracy: avoid pointer to integer truncation warning on amd64 2018-12-15 20:39:32 +01:00
aiju 192a222f5b fplot: fix operator associativity 2018-12-15 11:57:35 +00:00
aiju 3114102485 fplot: add min/max operators 2018-12-13 16:15:10 +00:00
aiju c7304ea03c dtracy: get rid of DTName struct, support more than three parts in a probe name, wildcard matching 2018-12-13 10:42:49 +00:00
aiju dae5a44111 pc(1): reference counting bug 2018-12-13 10:38:21 +00:00
Alex Musolino c69bf6e0bc merge 2018-12-13 12:00:32 +10:30
Alex Musolino b830824cba upas/fs: remove now unnecessary "force" argument to cachefree 2018-12-13 11:59:34 +10:30
cinap_lenrek eb5676d4be upas/fs: handle errors from fetch for cachebody()/cacheheaders()
for imap, when a fetch fails, error out of read and stat. also don't
add failed to download messages into the lru.
2018-12-12 19:33:08 +01:00
Alex Musolino 9b194f23b2 merge 2018-12-12 12:51:29 +10:30
Alex Musolino b836802fe6 upas/fs: fix infinite loop in putcache
Force the cacheclear operation in the LRU cache trimming loop in order
to guarantee that the cache becomes smaller with each iteration.

Without the force flag cacheclear is a no-op for mailboxes that do not
provide a fetch function, e.g. POP3.
2018-12-12 12:48:53 +10:30
stanley lieber 4c68cfa412 fortunes: [9fans] ..... UNSUBSCRIBE_HELP NEEDED 2018-12-11 12:57:36 -05:00
aiju 40d6302b5f forgotten files 2018-12-11 09:20:34 +00:00
aiju a6517fb498 kernel: change peek to return number of characters left rather than 0/-1 2018-12-11 09:17:44 +00:00
aiju cc066d8130 dtracy: catch page faults 2018-12-11 09:09:08 +00:00
aiju 6f30420136 add dtracy support to mkdevc and enable dtracy with plan9.ini 2018-12-11 07:44:34 +00:00
BurnZeZ e93a85710e sshfs: add exits(nil) to threadmain 2018-12-10 05:18:05 +00:00
aiju ca851bbb5e dtracy: call dtptrigger with a struct pointer rather than a list of arguments; put return value in arg9 2018-12-09 21:43:22 +00:00
aiju b96be17376 dtracy: fix lexer bug 2018-12-08 18:04:25 +00:00
aiju 722a1a3334 fix dtracy man page 2018-12-08 17:24:23 +00:00
aiju 6056a46c64 add dtracy manpage 2018-12-08 16:35:21 +00:00
aiju 58fa29447b dtracy: add support for aggregations 2018-12-08 15:07:53 +00:00
cinap_lenrek 03e60450c2 rio: get rid of window delete thread, fix mysterious disappearing windows
because a client might not handle resize, rio would try to move ther
window offsceen after 750 ms. however, it does this by window name,
which could have been reassigned by another concurrent rio, causing the
wrong window to disappear.

now we always move the window offscreen before freeimage(). this way we
are sure to still have the right reference to the original window.
2018-12-07 16:32:04 +01:00
BurnZeZ 96b1debbf8 add entries for il rcpu 2018-12-07 01:41:27 +00:00
BurnZeZ c6d4cd09a3 ptrap(4): fix formatting 2018-12-06 06:53:41 +00:00
aiju 4415dde6d3 forp: change indexing to verilog-like semantics 2018-12-06 10:56:32 +00:00
BurnZeZ 023f5eca58 acid: fix transcript 2018-12-06 07:11:35 +00:00
aiju 64d0d3b8ac libmp: fix mptouv behaviour to match mptoui 2018-12-06 09:32:20 +00:00
aiju 17b80cbcf1 libmp: add tests for integer conversions 2018-12-06 09:32:07 +00:00
aiju 7e477cc769 mptov: make it actually work 2018-12-05 10:26:52 +00:00
cinap_lenrek 6891093034 kernel: remove unused static variable "sofar" from timerintr() (thanks mischief) 2018-12-05 03:59:08 +01:00
cinap_lenrek d15aca0532 kernel: fix tprof on multiprocessor
segclock() has to be called from hzclock(), otherwise
only processes running on cpu0 would catche the interrupt
and the time delta would be wrong.

lock the segment when allocating Seg->profile as
profile ctl might be issued from multiple processes.
Proc->debug qlock is not sufficient.

Seg->profile can never be freed or reallocated once
set as the timer interrupt accesses it without any
locking.
2018-12-05 01:43:19 +01:00
cinap_lenrek 79bfff6437 factotum: rsa: use mptober() to get right adjusted result instead of mptobe() and memset() 2018-12-04 19:34:36 +01:00
cinap_lenrek c5393d612f bootrc: remove $ff references (was old parsed /boot/boot argument list) 2018-12-04 18:55:56 +01:00
aiju b5f7e27f44 kencc: make "function not declared" a warning unless compiling with -T 2018-12-02 11:36:58 +00:00
mischief a847d7a53d python: explicitly declare WaitForThreadShutdown as void 2018-12-02 03:30:30 -08:00
mischief cb7375dcbc ape: declare gethostname 2018-12-02 03:30:22 -08:00
cinap_lenrek 9eeca04d87 merge 2018-12-02 03:27:19 +01:00
cinap_lenrek 117f177ccf libsec: fix memory leak in pkcs1_decrypt() 2018-12-02 03:23:48 +01:00
BurnZeZ 2b1454e81c libdtracy: wrong operator in XORI (thanks aiju) 2018-12-01 18:07:40 +00:00
aiju d9b9e15d6b kencc: turn "function args not checked" warning into "function not declared" error if appropriate 2018-12-01 11:39:49 +00:00
aiju 75f5332c9d 2c(1): document some differences with ANSI C 2018-12-01 11:28:26 +00:00
cinap_lenrek ad7316e87c hgwebfs: write headers individually, so they are not limited by webfs iounit (thanks mischief) 2018-12-01 04:22:07 +01:00
cinap_lenrek c4ecd0fee0 webfs: write headers individually so they are not limited in sum to the 8k buffer 2018-12-01 04:20:53 +01:00
aiju ec1976eb05 fplot: add support for readout with middle mouse button 2018-11-30 17:32:10 +00:00
aiju 5b2f81a567 fplot: color different curves 2018-11-30 16:58:01 +00:00
aiju f102882990 fplot: compute y range correctly when used with multiple graphs 2018-11-30 16:12:02 +00:00
cinap_lenrek 55f067553a upas: get rid of broken validatesender example, remove redundant upas/misc and setup target 2018-11-28 21:12:11 +01:00
mischief cd933b2a9c hgwebfs: read to eof by default to match urllib2 behavior 2018-11-28 11:34:52 -08:00
cinap_lenrek 099da8cb82 devip: fix arpread, dont return partial entries 2018-11-28 12:41:18 +01:00
cinap_lenrek 243c25fd8f upas/fs: avoid switch on vlong breaking build (thanks k0ga) 2018-11-26 21:36:51 +01:00
cinap_lenrek 3484b7c23a upas/fs: another mistake ... 2018-11-26 21:29:33 +01:00
cinap_lenrek f75b4fddb3 upas/fs: fix broken body.ext in walk (thanks sl) 2018-11-26 20:15:30 +01:00
cinap_lenrek da9f1ccc28 libmach: change amd64 szreg to 8 (thanks charles forsyth) 2018-11-24 22:38:00 +01:00
aiju 6e6beff85d delete old NOTICE file 2018-11-24 15:22:17 +00:00
cinap_lenrek 434de8db8d snap: use Mach->szaddr as the width of the stack pointer (fixes snap on amd64)
to read the value of the stack pointer register, snap
used Machdata->szreg to determine the width of the
SP register in the Ureg structure. however, the value
does not match the Ureg.sp type for a number of architectures
(mips2, amd64) and it is unclear if this was an oversight
as it is rarely used (snap is indeed the only user) or
if it was intended for a different purpose.

so we use szaddr instead which matches the stack pointer
width in the Ureg and fixes the truncated stack issue on
amd64.
2018-11-22 20:27:27 +01:00
cinap_lenrek 6bd0764167 snap: add debug flag, make debug less verbose 2018-11-22 15:09:54 +01:00
cinap_lenrek 9d471caaae snap: check for overflows, cleanup error handling 2018-11-22 12:44:15 +01:00
cinap_lenrek 3363693205 snap: consequently use ulong for page index and count 2018-11-22 10:31:30 +01:00
cinap_lenrek 5692788724 snap: be more conservative taking stack snapshot
include up to 8k below the stack to get some more context.

don't assume stack is at least 16K.
2018-11-22 10:30:45 +01:00
cinap_lenrek 1f464e0013 upas/fs: keep messages *marked* for deletion in the index 2018-11-22 08:55:13 +01:00
cinap_lenrek 5a5d3e0414 upas/fs: allow msgincref() with mb->refs == 0
this can happen when the on the final sync when the mailbox
is being freed:

freembox -> mboxdecref -> syncmbox -> wridxfile -> pridx -> insurecache -> msgincref
2018-11-22 08:49:41 +01:00
cinap_lenrek 1dcf853fc0 upas/fs: checkfid() might be called with uninitialized fid, ignore 2018-11-21 21:48:55 +01:00
cinap_lenrek 5d2bffc26f upas/fs: fix walk 2018-11-21 17:32:36 +01:00
cinap_lenrek 70f700699a upas/fs: don't enter mailbox into hashtree when it is being freed
syncmbox() used to enter the mailbox into the hash tree to
update the qid.vers. this is wrong when we are doing the final
sync before freeing the mailbox as the hash reference has already
been removed by freemailbox().

also avoid adding hash entries for mails for the about to be
freed mailbox in cachehash().
2018-11-21 16:19:51 +01:00
cinap_lenrek 5ef10e1642 mp(2): fix spelling 2018-11-21 02:08:15 +01:00
cinap_lenrek 39a7be7ea3 mp(2): clarify mptoa() and mpfmt() default base 2018-11-21 01:15:43 +01:00
cinap_lenrek 8e50556f14 upas/fs: rework the refcounting, use 64bit qid path, add checks
add function to check the refcounts for Mailbox and Message on a fid

use the full 64 bit of the qid.path, so we can use the full 32 bit for the id

instead of only maintaining refcount for the top message, msgincref() now
adds a reference to all its parent messages including self and top message.
then we can check in recursive delmessage() that all the parts have a zero
refcount.

remove the Fid.mtop field, it was never used.

make sure deletion and flag changes only affect the top message.

cachefree(): only look for top message in lru. sub-parts are never
added to the cache.

use the nparts field when reading sub-part of existing message, so
that we parse the index right in case the number of parts somehow
changed.

messages marked as Deleted but still in inbox should be written
to the index.
2018-11-21 00:37:35 +01:00
aiju 7a8e875668 games/md: fix mkfile 2018-11-20 09:22:04 +00:00
aiju 99d2e68a6a games/md: use cpu.c from blit 2018-11-20 09:20:46 +00:00
aiju af810c9871 games/blit: clean up cpu.c and make it pass tests 2018-11-20 09:18:20 +00:00
cinap_lenrek 4dee686ca5 pc, pc64: park application processors in rebootcode with mmu off
instead of having application processors spin in mpshutdown()
with mmu on, and be subject to reboot() overriding kernel text
and modifying page tables, park the application processors in
rebootcode idle loop with the mmu off.
2018-11-19 18:42:01 +01:00
cinap_lenrek b04ed2ae52 vt(1): vt doesnt exit when the host process exits as claimed (thanks driusan) 2018-11-18 21:28:56 +01:00
cinap_lenrek 485a3301e6 cc: fix wrong "useless or misleading comparison" warning
to reproduce:

 	u8int x, y;

 	x = 0xff;
 	y = 0xc0;
 	if((s8int)(x & y) >= 0)
 		print("help\n");

compiles correctly but prints a warning

warning: test.c:11 useless or misleading comparison: UINT >= 0

the issue is that compar() unconditionally skipped over
all left casts ignoring the case when a cast would sign
extend the value.

the new code only skips over the cast when the original
type with is smaller than the cast result or when they
are equal width and types have same signedness. so the
effective left hand side type is the last truncation
or sign extension.
2018-11-18 20:42:45 +01:00
cinap_lenrek b6251bff91 rc: implement $"x in terms of Xdol() and new Xqw() instruction
to get $"1 right, remove Xqdol() and instead implement it in
terms of Xdol() instruction and use the new Xqw() instruction
to quote the resulting list.
2018-11-18 04:56:48 +01:00
cinap_lenrek 196da4ec6f devip: fix swapped tcp snd.scale and recv.scale in tcpstate() format (thanks joe9) 2018-11-18 04:14:41 +01:00
cinap_lenrek 064ea89caa libdraw: avoid deadlock for mouse ioproc sending on resizec
a deadlock has been observed with samterm (thanks burnzez),
that shows the mouse ioproc being stuck in sending on the
resize channel, while the mouse consumer is stuck in a
readmouse() loop wanting a rectangle to be drawn by the
user:

recv(v=0x42df50)+0x28 /sys/src/libthread/channel.c:321
readmouse(mc=0x42df50)+0x54 /sys/src/libdraw/mouse.c:34
getrect(.ret=0x41bce0,but=0x4,mc=0x42df50)+0x62 /sys/src/libdraw/getrect.c:49
	r=0x41bc70
	rc=0x41bc70
getr(rp=0x41bce0)+0x24 /sys/src/cmd/samterm/main.c:244
	p=0x6b000004f6
	r=0x2
sweeptext(new=0x0,tag=0x2d)+0x12 /sys/src/cmd/samterm/menu.c:208
	r=0x2
	t=0x42df50
inmesg(type=0x2,count=0x2)+0x1ab /sys/src/cmd/samterm/mesg.c:136
	m=0x10000002d
	l=0x2d00001b00
	i=0x43829000000001
	t=0x438290
	lp=0x42e050
rcv()+0x7a /sys/src/cmd/samterm/mesg.c:77
threadmain(argv=0x7ffffeffef90)+0x173 /sys/src/cmd/samterm/main.c:63

so avoid blocking in the mouse ioproc by using nbsend()
instead of send() for writing to the resize channel.
2018-11-18 03:37:04 +01:00
mischief a25418fddc devbridge: fix runt packets going through the bridge (thanks cinap)
linux will send small, unpadded arp packets which may arrive over
wifi, so allow small packets into the bridge and pad any packets that
are too small when going out.
2018-11-17 17:23:56 -08:00
aiju fbfa249c63 games/c64: make keyboard table more readable 2018-11-17 09:48:46 +00:00
mischief 744867de34 ether82563: ignore i82753 checksums, fixes T60 ethernet 2018-11-14 11:33:52 -08:00
cinap_lenrek 06783edd7a nusb/kb: multitouch support (touchscreens, stylus)
touchscreens signal multiple contact points (X/Y) in
the hid descriptor separated by being nested in separate
collections. the contact point is identified by a
optional contact id. if omited, we use the collection
index and report id.

so we collect all the items (X/Y, buttons, wheel) from
separate collections in Hidslot structures and in the
end combine all the slots together.

buttons are or'ed together while absolute X/Y is applied
when it changed. relative X/Y deltas get added together.

thanks to kivik and Glats for testing.
2018-11-14 09:12:34 +01:00