plan9fox/sys/src/cmd
cinap_lenrek a2be120ea9 abandon streaming experiment
for queue like non-seekable files, it is impossible to implement an
exportfs because one has to run the kernels devtab read() and write()
in separate processes, and that makes it impossible to maintain 9p message
order as the scheduler can come in and randomly schedule one process before
another.

so as soon as we have a transition from 9p -> syscalls, we'r screwed.

i currently see just two possibilities:

- introduce special file type like QTSEQ with strictly ordered i/o semantics
- fix all fileservers and exportfs to only do one outstanding i/o to QTSEQ files
which means maintaining a queue per fid

this doesnt propagate. so exporting slow 9p mount again will be limited
again by latency of the inner mount.

other option:

- return offset in Rread, so client can bring responses back into order. this
requires changing all fileservers and drivers to maintain such an per fid offset
and change the protocol to include it in the response, and also pass it to userspace
(new syscalls or pass it in TOS)

this only works for read pipelining, write is still screwed.

both options suck.

--
cinap
2016-03-17 17:48:19 +01:00
..
1a remove old copies of kernels l.s from cmd/?a 2014-05-08 18:48:51 +02:00
1c 1c,2c,7c,kc,vc: honor suppress condition for outstring() in swt.c 2015-08-02 14:52:54 +02:00
1l [125678kqv][cl]: fix sprint() and strcpy() buffer overflows 2015-02-17 22:13:35 +01:00
2a remove old copies of kernels l.s from cmd/?a 2014-05-08 18:48:51 +02:00
2c 1c,2c,7c,kc,vc: honor suppress condition for outstring() in swt.c 2015-08-02 14:52:54 +02:00
2l [125678kqv][cl]: fix sprint() and strcpy() buffer overflows 2015-02-17 22:13:35 +01:00
5a 5a: revert MOVM .S and .W are exclusive (broke bcm build) 2014-08-17 04:26:28 +02:00
5c 5c: handle (rare) MULU instruction in peephole optimizer 2015-11-01 12:09:03 +01:00
5e 5e: enable VFP emulation by default, doubles only need to be 4 byte aligned 2015-07-08 02:13:16 +02:00
5i
5l [125678kqv][cl]: fix sprint() and strcpy() buffer overflows 2015-02-17 22:13:35 +01:00
6a 6a, 6c, 6l: fix copy propagation 2014-05-30 12:28:01 +02:00
6c 5c/6c/8c/vc: import various changes from charles forsyth 2015-10-06 06:20:01 +02:00
6l 6l: fix vlong byte order when running on big endian machine (thanks erik quanstro) 2015-08-16 13:41:14 +02:00
7a
7c 1c,2c,7c,kc,vc: honor suppress condition for outstring() in swt.c 2015-08-02 14:52:54 +02:00
7l [125678kqv][cl]: fix sprint() and strcpy() buffer overflows 2015-02-17 22:13:35 +01:00
8a remove old copies of kernels l.s from cmd/?a 2014-05-08 18:48:51 +02:00
8c 5c/6c/8c/vc: import various changes from charles forsyth 2015-10-06 06:20:01 +02:00
8l [125678kqv][cl]: fix sprint() and strcpy() buffer overflows 2015-02-17 22:13:35 +01:00
9nfs format pointer subtraction results with %zd instead of %ld (for long -> intptr on amd64) 2016-01-07 04:44:13 +01:00
9660srv 9660srv: do not ignore upper 32 bits of offset when reading directory 2015-10-05 04:45:32 +02:00
abaco abaco: cleanup, handle image/x-icon, don't use backspace as a hotkey, and remove urlconvience()/related functions 2014-11-16 09:58:21 -05:00
acid acid: fix sysr1() stack corruption 2014-09-22 23:07:59 +02:00
acme acme: allow typing '\n' in window tags 2014-12-17 14:27:31 -08:00
astro astro: fix typo 2014-11-26 18:56:00 -08:00
atazz
audio libvorbis: update to 1.3.5 2016-03-10 22:43:00 +01:00
auth auth/pemencode: fix usage() 2016-03-01 21:27:37 -05:00
aux kbdfs: map Kup/Kdown the same in shift tab (fixes shift-[up]/[down] one-line scroll in rio over drawterm/vncs) 2016-03-13 21:38:28 +01:00
awk awk: proctab.c is always regenerated from maketab, so it is unnecessary to keep it 2013-05-09 20:48:23 -04:00
bitsy bitsy/keyboard: do not rely on atoi() being able to parse hex 2015-08-03 14:52:07 +02:00
bzfs bzfs: handle erealloc(..., 0) 2015-04-23 18:40:00 +02:00
bzip2
cb
cc cc: populate the flag list comment in lex.c 2016-03-01 19:00:41 -05:00
cdfs
cec fix dangerous werrstr() usages 2014-11-07 12:51:59 +01:00
cfs format pointer subtraction results with %zd instead of %ld (for long -> intptr on amd64) 2016-01-07 04:44:13 +01:00
cifs format pointer subtraction results with %zd instead of %ld (for long -> intptr on amd64) 2016-01-07 04:44:13 +01:00
compress
con
cpp cpp: handle 4 byte utf sequences (21-bit runes) 2015-09-24 12:23:17 +02:00
cryptsetup
cwfs format pointer subtraction results with %zd instead of %ld (for long -> intptr on amd64) 2016-01-07 04:44:13 +01:00
db db: fix unicode support (thanks giacomo) 2015-03-19 11:44:26 +01:00
dial
dict dict: similar fixes, different files. also remove runescpy 2016-03-01 21:24:35 -05:00
diff
disk fdisk: properly convert byte units K,M,G and T to cylinders/sectors 2016-01-05 03:57:50 +01:00
dossrv dossrv: handle file offsets > 2^31 2015-10-05 04:31:31 +02:00
eqn eqn: fix parallel build (thanks eekee) 2014-04-03 23:20:48 +02:00
execnet fix threadsetname usage in few places 2014-05-03 13:07:52 +02:00
exportfs exportfs: fix endless loop for eof/error on second read in localread9pmsg() 2016-02-21 20:11:04 +01:00
ext2srv
faces faces: fix callerpc for realloctag in erealloc (thanks qrstuv) 2013-09-18 09:53:20 +02:00
fax
grap
graph
grep grep: fix tab2, use int instead of Rune to be compatible to 16bit rune system 2014-03-30 18:11:51 +02:00
gs fix fuckup 2015-08-25 09:35:10 +00:00
gzip gunzip: the extra length field (XLEN) is two bytes instead of one 2015-05-15 07:53:22 +02:00
hg vblade, cifs, usbuhci: fix parenthesis 2015-06-13 15:03:56 +02:00
hgfs hjfs: preserve newlines in commit message (thanks BurnZeZ) 2015-04-22 19:54:13 +02:00
hjfs hjfs: fix deadlocks 2015-08-13 10:41:12 +02:00
hoc
htmlfmt htmlfmt: use uhtml for character set conversion 2014-05-12 02:38:53 +02:00
htmlroff htmlroff: fix wrong newline in \name handling (| -> ||) 2015-06-13 20:58:56 +02:00
ip ppp: fix buffer overflow, set correct state after chap negotiation (thanks k0ga) 2016-03-15 22:31:03 +01:00
jpg format pointer subtraction results with %zd instead of %ld (for long -> intptr on amd64) 2016-01-07 04:44:13 +01:00
ka remove old copies of kernels l.s from cmd/?a 2014-05-08 18:48:51 +02:00
kc kc: import various changes from charles forsyth 2015-10-06 06:55:05 +02:00
ki
kl [125678kqv][cl]: fix sprint() and strcpy() buffer overflows 2015-02-17 22:13:35 +01:00
lex
lp lpdaemon: fix bogus string termination (from sources) 2013-06-14 23:22:57 +02:00
map map/libmap: remove unused function/definitions 2016-03-01 19:36:24 -05:00
mk fix fuckup 2015-08-25 09:35:10 +00:00
mothra mothra: dynamically allocate buffer for refresh url (was 20 bytes stack buffer before) (thanks BurnZeZ for reporting) 2016-03-11 21:46:49 +01:00
ndb ndb/dns: initialize unknown fids to point to the root qid 2016-02-22 22:44:01 +01:00
nusb format pointer subtraction results with %zd instead of %ld (for long -> intptr on amd64) 2016-01-07 04:44:13 +01:00
paqfs mkpaqfs: english 2014-06-09 05:05:59 -07:00
pic
plot plot: handle create() failure 2016-03-01 19:40:14 -05:00
plumb fix strncmp/memcmp used with a wrong number 2015-06-11 22:13:55 +02:00
postscript
proof
python python: fix build for objtype=$spim 2015-08-08 08:34:16 +02:00
qa
qc qc: import changes from charles forsyth 2015-10-07 09:40:48 +02:00
qi
ql [125678kqv][cl]: fix sprint() and strcpy() buffer overflows 2015-02-17 22:13:35 +01:00
ratfs
rc rc: terminate rc when exec fails, cleanup 2016-02-22 22:25:21 +01:00
replica
rio rio: flushimage() improves your ability to see, i repeat twice. 2016-03-15 22:06:11 +01:00
sam sam: prevent array overflow with multiple -i and -a arguments (thanks clsmith) 2015-04-28 19:30:52 +02:00
samterm sam: don't make scroll-wheel-up change focus (thanks clsmith) 2015-04-28 19:32:21 +02:00
scat
scuzz scuzz: uncomment synccache command 2015-09-22 12:23:49 +02:00
snap snap: fix readseg() to cope with > 2gb segments 2015-03-07 15:21:01 +01:00
spell mkfiles: do not rely on path containing the . element 2013-10-26 20:22:01 +02:00
spin
spred various cmds: replace magic numbers with Kdel/Keof, etc 2014-12-13 21:58:49 +01:00
ssh format pointer subtraction results with %zd instead of %ld (for long -> intptr on amd64) 2016-01-07 04:44:13 +01:00
syscall syscall: add missing _nsec() declaration 2014-05-20 05:21:22 +02:00
tapefs tapefs: remove dependency to <authsrv.h> 2015-08-21 23:38:56 +02:00
tbl
tcs format pointer subtraction results with %zd instead of %ld (for long -> intptr on amd64) 2016-01-07 04:44:13 +01:00
telco format pointer subtraction results with %zd instead of %ld (for long -> intptr on amd64) 2016-01-07 04:44:13 +01:00
troff
troff2html
upas smtpd: remove unused lastsender logic 2016-02-22 21:55:41 +01:00
va remove old copies of kernels l.s from cmd/?a 2014-05-08 18:48:51 +02:00
vac make filesystem handling of read9pmsg() consistent 2013-06-16 06:26:31 +02:00
vc 5c/6c/8c/vc: import various changes from charles forsyth 2015-10-06 06:20:01 +02:00
venti format pointer subtraction results with %zd instead of %ld (for long -> intptr on amd64) 2016-01-07 04:44:13 +01:00
vi vi: implement _nsec syscall 2014-09-13 06:07:57 -07:00
vl vl: prevent stack altering instructions to be hoisted above loads 2015-04-01 01:30:16 +02:00
vnc vncs: parse screenid as long, not short: BGSHORT() -> BGLONG() 2016-03-12 22:36:00 +01:00
vt vt: add -r flag to start in raw mode 2016-03-01 19:17:54 -05:00
webfs webfs: faster shutdown using postnote() 2016-02-08 19:35:26 +01:00
wikifs fix dangerous werrstr() usages 2014-11-07 12:51:59 +01:00
aan.c aan: handle case when reader closes netfd 2016-03-10 18:50:29 +01:00
alarm.c
ar.c
archfs.c
ascii.c ascii: replace mnemonic np (new page) with ff (form feed) for consistency 2015-10-25 14:46:10 -04:00
awd.c
basename.c
bc.y
bind.c
cal.c
calendar.c
cat.c
chgrp.c
chmod.c
cleanname.c
clock.c
cmp.c
col.c
colors.c
comm.c
cp.c abandon streaming experiment 2016-03-17 17:48:19 +01:00
cpu.c fix fuckup 2015-08-25 09:35:10 +00:00
crc32.c added crc32 2014-09-30 13:07:36 +02:00
crop.c crop: use strtol() instead of atoi() 2015-08-03 17:29:30 +02:00
date.c
dc.c
dd.c
deroff.c
derp.c
du.c
echo.c
ecp.c
ed.c ed: dont pass string constants to mktemp() 2014-06-22 01:48:02 +02:00
factor.c
fcp.c fcp: use iounit() to determine buffer size, reduce number of worker procs to 8 2015-07-19 03:32:38 +02:00
file.c file: recognize bootable disk images (by 0x55AA boot sector signature) 2015-12-23 02:31:47 +01:00
fmt.c
fortune.c
fplot.c fplot: add modulus % operator 2015-02-05 19:55:46 +01:00
freq.c make all the commands agnostic about Rune width. (from sources) 2013-04-24 20:13:18 +02:00
getmap.c
gview.c
histogram.c various cmds: replace magic numbers with Kdel/Keof, etc 2014-12-13 21:58:49 +01:00
history.c
html2ms.c html2ms: bold table headings, remove wrong tag space handling 2015-09-08 19:55:55 +02:00
iconv.c
idiff.c
import.c import/expoerfs: dont assert() fault when ai->secret is > 8 bytes, just use the first 8 bytes 2015-12-16 21:30:56 +01:00
init.c init: remove dependency to <authsrv.h> 2015-08-21 23:40:31 +02:00
io.c io: add -E flag to access embedded controller space 2014-11-10 00:35:07 +01:00
iostats.c iostats: add -C to usage 2015-07-31 22:51:52 +02:00
join.c
kbmap.c various cmds: replace magic numbers with Kdel/Keof, etc 2014-12-13 21:58:49 +01:00
kprof.c
ktrace.c
lens.c various cmds: replace magic numbers with Kdel/Keof, etc 2014-12-13 21:58:49 +01:00
lnfs.c
lock.c lock: reopen lockfile after changing mode to make lock effective 2015-06-13 15:01:02 +02:00
look.c
ls.c
mc.c
md5sum.c md5sum, srv: remove unused #include <bio.h> 2013-09-08 19:52:44 +02:00
mkdir.c
mkfile mpc: mpc.c is generated by yacc, so remove it on mk clean 2015-11-25 11:39:01 -05:00
mklib
mkmany
mkone mkone: yacc wants the D 2015-11-30 23:36:39 +01:00
mksyslib acid: update acid libraries for amd64 2014-02-10 23:07:37 +01:00
mntgen.c
mount.c mount, srv: add -N flag to skip authentication and attach anonymously as "none" 2015-08-10 10:11:45 +02:00
mpc.y mpc: constant expression folding 2016-02-01 19:27:57 +01:00
ms2html.c
mtime.c
mug.c
mv.c
netstat.c
news.c
nfs.c
nm.c
nntpfs.c
ns.c
p.c
page.c page: fix deadlock, nil vs 0 for pointer comparsion, cleanup 2015-07-24 11:45:48 +02:00
paint.c fork filter procs with RFREND in various programs 2014-02-21 05:32:20 +01:00
pbd.c
pcc.c
pipefile.c
pr.c
primes.c
prof.c
ps.c
pstree.c
pump.c
pwd.c
qr.c add qr.c 2015-09-23 16:36:55 +02:00
ramfs.c lib9p: fix lib9p wstat qid.type/mode checks (fixes lock(1) for ramfs/hjfs) 2015-06-13 12:43:15 +02:00
ratrace.c ratrace: avoid blank line prints, make writer the parent 2015-07-29 05:19:24 +02:00
rdbfs.c rdbfs: add -s srvname (from charles forsyth's rdbfs-srvname patch) 2013-06-14 23:28:59 +02:00
read.c
resample.c resample: simplify getint() 2015-08-03 18:30:02 +02:00
resize.c resize: add -n for nearest neighbour 2015-09-23 17:52:35 +02:00
rm.c
rotate.c
rx.c rx: rcpu service support 2016-02-14 05:37:55 +01:00
scram.c scram: remove amlalloc()/amlfree() 2013-09-06 16:54:02 +02:00
screenlock.c
seconds.c
sed.c sed: fix error handling for "Output line too long" and other stuff 2014-11-16 01:48:18 +01:00
seg.c io, seg: we should exits(nil) at the end of main 2013-05-28 20:06:53 -04:00
seq.c
sh.C
sha1sum.c sha1sum: remove unused #include <bio.h> (thanks BurnZeZ) 2013-09-08 19:25:55 +02:00
size.c
sleep.c
sort.c sort: code cleanup 2016-03-01 19:09:40 -05:00
split.c
srv.c mount, srv: add -N flag to skip authentication and attach anonymously as "none" 2015-08-10 10:11:45 +02:00
srvfs.c
stats.c stats: use rimport or import to mount remote system 2016-02-22 19:38:01 +01:00
strings.c we look for strings.c, it is broken, this strings.c will make us go. 2014-05-30 04:05:18 +02:00
strip.c
sum.c
swap.c
tail.c tail: fix follow for empty files (thanks cinap_lenrek) 2014-05-08 14:29:44 +02:00
tar.c tar: remove unneccesary { } 2015-09-08 18:30:38 +02:00
tee.c tee: get rid of openf[100] array and just dup() filedescriptors to 3+[0..n-1] 2014-12-21 05:12:56 +01:00
test.c test: use libc.h constants for access() mode (thanks qrstuv) 2015-05-31 09:37:59 +02:00
time.c
timepic.c timepic: string support 2015-09-29 20:49:28 +02:00
tlsclient.c tlsclient: add -o option to establish connection over a file, free the AuthInfo structure to avoid leaking secrets 2016-02-14 02:06:08 +01:00
tlssrv.c tlssrv: add -A flag to skip changing user after authentication (usefull for aan) 2016-02-13 17:24:59 +01:00
touch.c
touchfs.c
tprof.c
tput.c tput: check sbrk return value 2015-08-25 03:06:36 -07:00
tr.c tr: fix 4-byte runes fix (thanks rsc) 2014-04-26 14:26:40 +02:00
trace.c cpu, ratrace, trace: remove unused #include <bio.h> 2013-09-08 20:34:58 +02:00
tweak.c
uhtml.c uhtml: dont trust charset=utf-8 attribute, verify. 2016-03-13 23:47:24 +01:00
unicode.c
uniq.c uniq: use Bsize for buffers 2014-05-03 10:48:13 +02:00
units.y
unlnfs.c
unmount.c
urlencode.c
wc.c wc: flags dont need to be uvlong 2015-02-15 06:26:49 +01:00
webcookies.c webcookies: strdup() file argument to avoid crash (thanks mischief) 2015-11-30 20:08:22 +01:00
winwatch.c winwatch: l allows label changes 2015-12-06 20:37:18 +01:00
xargs.c
xd.c xd: changed -s option to switch to little-endian units 2014-02-16 21:32:14 +01:00
yacc.c yacc: attempt to keep line numbers right for yyparse() 2015-12-07 17:00:41 +01:00