Commit graph

4952 commits

Author SHA1 Message Date
cinap_lenrek
33862ff793 libmp: mpnrand(), what was i *THINKING*
the prior implementation was unneccesarily complicated for
no good reason due to me misunderstanding how libc's nrand()
works. in contrast to libc, we already generate the *closest*
power-of-2 random number with mprand() in the sampling loop.
2016-08-29 00:45:16 +02:00
cinap_lenrek
b80684a1d2 python: remove automatic compiled module loading (.pyc files) 2016-08-28 17:39:18 +02:00
cinap_lenrek
1f9bdb6f5d libmp: mpdiv(): fix divisor==quotient case (again) 2016-08-28 16:46:32 +02:00
cinap_lenrek
bdc87e17bd libmp: timingsafe sign flip for small power-of-two negative divisor for mpdiv() 2016-08-28 16:33:52 +02:00
aiju
b65f409d54 mp.h: add mpasr 2016-08-28 16:05:22 +02:00
aiju
c3da573eb7 pc(1): SYNOPSIS... 2016-08-28 13:59:16 +02:00
aiju
d9d2925fa0 pc(1): document -n option in manpage 2016-08-28 13:49:26 +02:00
aiju
a931ad737a add pc(1) 2016-08-28 13:40:01 +02:00
aiju
43bb71c8cc mpdiv: negative divisor has to flip sign of quotient 2016-08-28 12:00:25 +02:00
aiju
344ff48512 mp: fix mptov and mptouv 2016-08-28 11:38:29 +02:00
aiju
cf2f2a8841 mp: fix mpnot and add mpasr 2016-08-28 10:49:41 +02:00
cinap_lenrek
193daffafb mercurial: use new d_stat from dirent structure in osutil.listdir 2016-08-28 03:41:25 +02:00
cinap_lenrek
5debddf8af ape: add d_stat struct in dirent struct allowing the avoidance of stats 2016-08-28 03:39:49 +02:00
aiju
a8ffbcabea timmy: manpage 2016-08-28 01:23:51 +02:00
aiju
913ce62cfc strtomp: update the returned char* even if there were no characters parsed 2016-08-28 01:08:26 +02:00
aiju
261ec9fe0e strtomp: fix mpbits() call in octal code 2016-08-28 01:07:34 +02:00
cinap_lenrek
75990fc719 fix wrong manpage section index generation for rc-httpd(8) 2016-08-27 22:37:08 +02:00
cinap_lenrek
f2519d701c rio(4): document text truncation 2016-08-27 21:28:21 +02:00
cinap_lenrek
b59aa67922 rand(2), cons(3): clarify /dev/random behaviour 2016-08-27 21:27:52 +02:00
cinap_lenrek
f777743b72 merge 2016-08-27 20:50:55 +02:00
cinap_lenrek
0a5f81a442 kernel: switch to fast portable chacha based seed-once random number generator 2016-08-27 20:42:31 +02:00
cinap_lenrek
71ac88392f devsdp: keep cipher states in secret memory 2016-08-27 20:39:36 +02:00
cinap_lenrek
7f16c92762 ip/esp: allocate cipher states in secret memory 2016-08-27 20:38:33 +02:00
cinap_lenrek
2967f942ea devtls: allocate cipher states in secret memory 2016-08-27 20:37:31 +02:00
cinap_lenrek
7250c438bb devssl: allocate cipher states in secret memory 2016-08-27 20:37:14 +02:00
cinap_lenrek
0ac260b18a wifi: update wifi.h header 2016-08-27 20:36:08 +02:00
cinap_lenrek
0b8851ddb6 wifi: allocate cipher states in secret memory, do AESstate key setup once 2016-08-27 20:35:39 +02:00
cinap_lenrek
0f97eb3a60 kernel: add secalloc() and secfree() functions for secret memory allocation
The kernel needs to keep cryptographic keys and cipher states
confidential. secalloc() allocates memory from the secret pool
which is protected from debuggers reading the memory thru devproc.
secfree() releases the memory, overriding the data with garbage.
2016-08-27 20:33:03 +02:00
cinap_lenrek
8a73650874 libc: add poolisoverlap() and definitions for Pool *secrmem 2016-08-27 20:23:55 +02:00
aiju
1bd3ace9e7 document Bfn 2016-08-25 23:39:07 +02:00
cinap_lenrek
a1e96ae4b5 merge 2016-08-20 19:09:08 +02:00
cinap_lenrek
c0ab6c1d01 vga/igfx: add pci did's for kenjis intel graphics cards. 2016-08-20 19:06:57 +02:00
cinap_lenrek
51f76ae999 merge 2016-08-20 18:51:07 +02:00
cinap_lenrek
540373b9f6 vga/igfx: work in progress fdi link train for sandy bridge, properly calculate fdi and displayport lane count 2016-08-20 18:49:44 +02:00
spew
db7d1ed2b1 fix awk format printing bugs (thanks aiju) 2016-08-18 08:52:58 -05:00
cinap_lenrek
713beb6d42 devmnt: fix mistake in mntrahread()
mntrahread() had the prefetch window condition wrong so
it would very agressively prefetch ignoring the prefetch
window.
2016-08-16 18:06:22 +02:00
cinap_lenrek
f3b27fd889 webfs: dont include http status in "needkey" error string 2016-08-15 09:07:34 +02:00
cinap_lenrek
52d407f86f libframe: consistent use of nil vs. 0 2016-08-15 08:40:04 +02:00
cinap_lenrek
5af0a7ce73 libflate: add bounds checking on decode array, add sanity checks in hufftab() 2016-08-15 01:07:28 +02:00
cinap_lenrek
75a8003a8a ndb/cs: don't lookup AAAA records for IL, make sure translated address is IPv4 for IL, consistent use of nil vs. 0 for pointers 2016-08-14 23:10:19 +02:00
cinap_lenrek
58a0db935c ip/il: dont attept to connect over IPv6, IL only supports IPv4 packets 2016-08-14 23:07:10 +02:00
cinap_lenrek
d41ca0d32c 6c: subsitute floating point registers eleminating MOVSD and MOVSS instructions in peephole pass 2016-08-14 18:52:18 +02:00
cinap_lenrek
dac5756766 ratrace: fix fork/exec race with "nohang" procctl (like a debugger) 2016-08-10 02:40:16 +02:00
aiju
a07a2025da document mplogic functions 2016-08-08 22:19:29 +02:00
cinap_lenrek
590a4980bc auth/fgui: use pale colors 2016-08-08 07:48:55 +02:00
cinap_lenrek
e9818df0ba libcontrol: primitive text entry cut and paste with mouse 2016-08-08 07:37:57 +02:00
cinap_lenrek
15fd826147 hgwebfs: make hgwebfs prompt for password 2016-08-08 05:35:06 +02:00
cinap_lenrek
c8d1a885f8 webfs: avoid retry loops when we got a bad key in factotum 2016-08-08 05:32:20 +02:00
cinap_lenrek
038a615549 webfs: include factotum key query in error string for 401/407 Unauthorized status 2016-08-08 04:17:41 +02:00
cinap_lenrek
62ad8fc8df authsrv(6): document session secret key derivation for p9sk1 and dp9ik 2016-08-08 02:03:06 +02:00
aiju
c6318ecb17 mptrunc: normalize after mpassign to handle the case b==r 2016-08-08 00:54:45 +02:00
cinap_lenrek
333468d668 thread(2): threadgrp() -> threadgetgrp(), thanks jpm 2016-08-06 15:09:18 +02:00
cinap_lenrek
b21fe017d1 libauthsrv: ANAMELEN -> PASSWDLEN 2016-08-05 19:09:42 +02:00
cinap_lenrek
b540a22eb0 libauth: fix mount file-descriptor leak in auth_chuid() 2016-08-04 11:48:19 +02:00
cinap_lenrek
2a6fd6ec25 auth/login: add dp9ik key to sub factotum, get rid of temporary /srv file 2016-08-04 11:47:12 +02:00
cinap_lenrek
ad6bb37e33 ape/libauth: add PASSWDLEN constant to compile passtokey.c from native libauthsrv (thanks lawler) 2016-08-04 10:38:20 +02:00
cinap_lenrek
261e319092 auth: various cleanups, use common readcons() from libauthsrv, zero keys after use 2016-07-31 20:16:25 +02:00
cinap_lenrek
a75f4de5c9 auth/secstore: use common readcons() routine from libauthsrv 2016-07-31 20:09:47 +02:00
cinap_lenrek
ae5fb4ab78 auth/factotum: use common readcons() function from libauthsrv 2016-07-31 20:06:56 +02:00
cinap_lenrek
cf37a1010f libauthsrv: export common readcons() routine and introduce PASSWDLEN constant
drawterm, factotum, secstore and the auth commands
all had ther own implementation of readcons. we
want to have one common function for this to avoid
the duplication, so putting that in libauthsrv.

introduce PASSWDLEN which makes the use more explicit
than ANAMELEN.
2016-07-31 20:04:02 +02:00
cinap_lenrek
d91c4e407d auth/changeuser: fix misleading print (secret is 31 chars max, not 256) 2016-07-24 15:13:14 +02:00
cinap_lenrek
409babb990 devtls, devssl: make sure channel has ORDWR mode and is not a mount chan on fdtochan() 2016-07-24 03:24:42 +02:00
cinap_lenrek
8173223f43 swap: make sure swap chan has ORDWR mode on fdtochan() 2016-07-24 03:23:01 +02:00
cinap_lenrek
a0d4c5e208 make error handling in 9p service loops consistent
when we get eof, stop the loop immidiately and do not
rely on the read to eventually return an error.

when convM2S() fails to decode the message, error out
and stop the loop. there is no point in continuing.
2016-07-24 02:21:32 +02:00
cinap_lenrek
a840b597ca upas/fs: remove checkmboxrefs() debugging code, properly handle errors in 9p loop 2016-07-24 02:17:45 +02:00
cinap_lenrek
518a40ae95 ndb/dns: remove procname statistics and restart feature, cleanup 9p service loop
given that the memory leaks have been fixed, theres no need
for the obscure restart feature which is not reliable anyway.

remove the code updating procname on each 9p request.

handle convM2S error by exiting the service loop, dont read
9p channel after eof.
2016-07-24 02:12:17 +02:00
cinap_lenrek
093eaec219 kernel: dont pprint() into 9p channels
when fd 2 (stderr) points to a mount channel, dont
cause protocol confusion by dumping error strings
into it.
2016-07-19 22:10:52 +02:00
cinap_lenrek
95524b1cdd 5c: fix int -> uvlong cast bug (thanks to qwx on his patience on a the trouble session to narrowing it down)
we used to not sign extend if the destination was unsigned
uvlong, which is wrong. we have to sign extend only based
on the signedness of the source (it gets propagated to vlong)

this bug hit in hjfs in the newentry() function, causing file
creation to fail with "create -- phase error":

newentry(...)
{
	uvlong sj;
	int si;
	...

	sj = si = -1;

	...
}
2016-07-15 21:13:35 +02:00
cinap_lenrek
de1e74abd2 5a: ROL instruction 2016-07-15 15:04:32 +02:00
cinap_lenrek
1492f46f87 libsec: add scrypt password based key derivation function 2016-07-10 21:41:57 +02:00
cinap_lenrek
677dd90b02 disk/prep: if no 9fat, reserve space for plan9 partition table in autopart (thanks Shamar)
usually, the plan9 partition table is contained in
the first 9fat partition after the pbs/fat header,
but when no 9fat partition is requested, we have
to make sure partitions wont overlap the partition
table (start at sector offset >= 2).
2016-07-08 16:19:15 +02:00
cinap_lenrek
49cd794fbd 5l: ROR instruction 2016-07-08 04:16:37 +02:00
spew
752ba45fbf remove mpc.tab.h on mk clean 2016-07-05 23:21:36 -05:00
spew
eef8f57b22 add history for libregexp 2016-07-04 14:25:08 -05:00
cinap_lenrek
1edd8d28a5 acpi: _ADR and _BBN might be methods, so use amleval() to evaluate the value 2016-06-30 19:11:06 +02:00
cinap_lenrek
3ec84c5d73 rc: implement 9atoms ` split {command} syntax extension 2016-06-30 19:09:27 +02:00
cinap_lenrek
cabbe0a84c doom: use Kprint for pause function (from qu7uux)
the pause function is different from just accessing the menu: it pauses both
single and multiplayer games, stops music and sound, and is recorded in demos
(does not cause a desync, unlike menu access).
this uses Kprint rather than Kbreak because Kbreak is e.g. Kctl+pause on some
keyboards.
2016-06-30 17:18:30 +02:00
cinap_lenrek
92aa75e879 ether8169: fix wrong mbps setting (from qu7uux)
the first time rtl8169link is called (from rtl8169pnp), the link isn't up, so
setting edev->mbps based on Phystatus register is skipped. edev->mbps is then
still set at the default 100, and that ends up being what devether uses.
this is why some rtl8169 cards are misprinted as 100Mbps in kmesg.
later, after rtl8169link is called again from rtl8169interrupt, the link is up
and edev->mbps is set to the correct value (as shown by e.g. /net/ether0/stats).

so instead, set speed regardless of link status.
2016-06-30 17:16:11 +02:00
cinap_lenrek
ca8ca008f4 doom: fix blazing door sounds (from qu7uux)
blazing doors are a "fast" door type with its own sound effects, introduced in
doom2. doom2 map 2 has one right at the beginning.

this fixes two bugs:
- when a closing blazing door is completely shut, the closing sound effect is
  erroneously played again (the first time being when it began closing). this
  gives the impression of two doors closing.
- when reopening a closing blazing door (standing underneath a blazing door
  while it's closing), the sound effect for regular doors opening is played,
  instead of the one for blazing doors, because of a missing case in the switch
  statement.
2016-06-30 17:13:47 +02:00
cinap_lenrek
dab539cd14 vga/igfx: fix integer overflow in datam calculation (from qu7uux)
data[mn] and link[mn] are 24-bit values.
in the expression 'm = (n * ((freq * bpp)/8)) / (lsclk * lanes)',
uvlongs are used to prevent integer overflow, but since freq, bpp, lsclk and
lanes are all ints, the cast to uvlong does not happen until it's too late,
getting a wrong value.
instead, use u32int for m and n, and use casts where necessary.

example of bad calculation:
freq = 141400000
lsclk = 270000000
lanes = 2
bpp = 18
→ 0x7f3ee1ca6 (correct value: 0x4b69d0)
2016-06-30 11:58:40 +02:00
cinap_lenrek
6c7829092e acme(1): remove references to awd 2016-06-30 01:07:03 +02:00
cinap_lenrek
828ec57d65 acme/win: implement /dev/wdir file in win to change directory tagline, remove awd 2016-06-30 00:46:52 +02:00
cinap_lenrek
65977417e7 rc: write /dev/wdir after printing the prompt, not after executing "cd" command 2016-06-30 00:45:37 +02:00
cinap_lenrek
d39d1a5303 merge 2016-06-27 00:36:54 +02:00
cinap_lenrek
2dc97202de ndb/dns: purge db records on refresh for resolvers, remove old debug and testing code
when ndb/dns runs as a resolver only (cfg.cachedb == 0),
we still want to purge the "local#" db records to reread
dns server configuration or react to changed ip addresses.

removing old poolcheck and dncheck code, these bugs have
been fixed a long time ago.
2016-06-27 00:36:04 +02:00
stanley lieber
cb1a49daac /sys/src/games/mkfile: add timmy 2016-06-26 16:47:19 -04:00
aiju
4821c261c4 added games/timmy 2016-06-23 21:12:06 +02:00
cinap_lenrek
baf20a548b rio: move the test if w is allowed to change cursor into wsetcursor()
the onscreen cursor shows the cursor of the current
focused window or the window it points at. if there
is no window, then we set the default cursor (nil).
2016-06-26 18:14:34 +02:00
cinap_lenrek
b2efac4687 5c: handle unused results for cgen64() 2016-06-26 16:38:46 +02:00
cinap_lenrek
67a9174ff8 chacha: calculate rounds in separate function (helps registerizer), get rid of unrolled code 2016-06-26 15:28:01 +02:00
cinap_lenrek
69b0980a42 libc: native _addv() and _subv() routines for arm 2016-06-26 15:16:23 +02:00
cinap_lenrek
a99cf56c7d kernel: more (arm) compiler friendly mul64fract()
the arm compiler can lift long->vlong casts on multiplcation
and convert 64x64->64 multiplication into a 32x32->64 one
with optional 64 bit accumulate.
2016-06-26 15:13:10 +02:00
cinap_lenrek
5bf09937da 5c: support for bit ROL, native 64 bit arithmetic 2016-06-26 15:09:27 +02:00
cinap_lenrek
57ff297cc0 cc: add OROL op to side effect free op list 2016-06-26 15:00:40 +02:00
cinap_lenrek
c7565b51b8 merge 2016-06-20 23:11:27 +02:00
cinap_lenrek
94ba3db591 audio/flacdec: exit on decode error, print error message 2016-06-20 23:09:40 +02:00
stanley lieber
0d29a5d81f fortunes: Emacs now supports webkit. 2016-06-19 18:40:46 -04:00
aiju
e73a9eb9e8 togif: -E flag to read animation from stdin 2016-06-10 12:14:02 +02:00
cinap_lenrek
a00b6bdbfa 8c, 6c: native ROL (cyclic shift) instruction support, improve peephole optimizers
introduce rolor() function to subsitute (a << c) | (a >> (bits(a) - c))
with (a <<< c) where <<< is cyclic rotation and c is constant.
this almost doubles the speed of chacha encryption of 386 and amd64.

the peephole optimizer used to stop when it hit a shift or rol
instruction when attempting to eleminate moves by register
substitution. but we do not have to as long as the shift count
operand is not CX (which cannot be substituted) and CX is not
a subject for substitution.
2016-06-09 23:12:46 +02:00
cinap_lenrek
5cdabc5eb1 ?c: track ../cc/cc.h dependency and rebuild cc.a$O as neccesary 2016-06-09 23:03:30 +02:00