Commit graph

2403 commits

Author SHA1 Message Date
cinap_lenrek d94ffb4808 kernel: do all fp state fork from procfork() (like pc kernel)
this simplifies the arm ports and keeps all the stuff in one place
instead of spreading it thru notify(), trap() and syscall() functions
and prevents useless fp state copying for kernel procs.

also make sure to save fp in notify while still splhi().
2013-05-30 23:26:21 +02:00
cinap_lenrek 9652f5bec5 pc kernel: simulate FXSAVE/FXRSTOR tag-byte from x87 tag-word, copy fp state across fork
the tag-word is not compatible between x87 and sse, have to convert
properly for emulation to work.

we now copy fp state across fork (again!) to preserve FCW and MXCSR
registers. this might not be neccesary as we could probably just
get the current value for the curren process and avoid the fpsave()
call, but become conservative again.
2013-05-30 23:16:22 +02:00
cinap_lenrek 580a467f63 libmach: fix reversed F0-F7 register order 2013-05-30 23:01:59 +02:00
ppatience0 9fee166e10 io, seg: we should exits(nil) at the end of main 2013-05-28 20:06:53 -04:00
ppatience0 6a0d21acca mothra: clicking on the url scroll bar, snarfing, or saving a hit when no urls have been loaded (right after running mothra) would crash. this was due to use of w->url and selection when they are actually nil.
to fix this, make genwww return 0 if w->url is nil and output an error message when attempting to access selection if it's nil. the problem with the w->url fix is that after clicking on the url scroll bar, an empty url history row could be highlighted by clicking on it. fix this by making sure lp->lo is not less than zero.
2013-05-27 00:26:19 -04:00
ppatience0 ffef3278ef tojpg: GREY[1248] images should be grayscale 2013-05-27 19:32:28 -04:00
cinap_lenrek 723018c1de merge 2013-05-28 23:42:59 +02:00
cinap_lenrek 8cce104fcb kernel: sysrfork abortion
when we fail to fork resources for the child due to resource
exhaustion, make the half forked child process call pexit()
to free the resources that where allocated and error out.
2013-05-28 23:41:54 +02:00
ppatience0 410ce8feec tojpg: add jpeg encoder 2013-05-26 21:56:56 -04:00
cinap_lenrek 71a3ab3f13 kernel: make imagereclaim() skip notext pages (prevent it from blowing the mount cache)
imagereclaim would happily uncache pages from the mountcache (port/cache.c)
without ever getting a Image* released from it. simple fix, just check for
p->image->notext but make sure todo it under the page lock :)
2013-05-27 03:26:53 +02:00
cinap_lenrek 6025ad06da merge 2013-05-27 01:20:46 +02:00
cinap_lenrek 44e4aad870 kernel: dont copy fpsave on fork, simplify freeing waitq in pexit(), remove unused semlock from Proc sturcure 2013-05-27 01:17:11 +02:00
cinap_lenrek 410d6bea6a devfs/devsd: fix waserror() and unused variable compiler problem
the compiler optimizes setting unused variables out, which is
problematic if they are used in waserror() handler which the
compiler isnt aware of. rearrange the code to avoid this problem.
2013-05-27 01:12:21 +02:00
cinap_lenrek c4153b7755 kernel: closechanq error
catch potential interrupt error from kproc(). this can happen when
we run out of processes, then newproc() will call rsrcwait()
which does tsleep(). if the process gets a note, this might
raise a interrupt error.
2013-05-27 01:09:34 +02:00
cinap_lenrek 24b908be8a kernel: image reclaim pauses
get a bit more verbose about process image exhaustion and make
imagreclaim() try to get at least one image on the freelist.

use rsrcwait() to notify the state, and call freebroken() in
case imagereclaim() couldnt free any images.
2013-05-27 01:04:53 +02:00
cinap_lenrek 3e567afed5 kernel: fix sysexec() error handling compiler problem, sysrendez() busyloop
the variables elem and file0 and commited are explicitely
set to avoid that they get freed in ther waserror() handlers.

but it turns out the compiler optimizes this out as he
thinks the variables arent used any further. (the compiler
is not aware of the waserror() / longjmp() semantics).

rearrange the code to account for this. instead of using
a local variable to check for point of no return (commited),
we use up->seg[SSEG] to figure it out.

for file0 and elem, we just rearrange the code. elem can be
checked in the error handler if it was already assigned to
up->text, and file0 is just free()'d after the poperror().

remove silly busy loop in sysrendez. it is not needed.
dequeueproc() will make sure that the process has come to
rest.
2013-05-27 00:59:43 +02:00
cinap_lenrek 257c7e958e keep fpregs always in sse (FXSAVE) format, adapt libmach and acid files for new format
we now always use the new FXSAVE format in FPsave structure and fpregs
file, converting back and forth in fpx87save() and fpx87restore().

document that fprestore() is a destructive operation now.

change fp register definition in libmach and adapt fpr() acid funciton.

avoid unneccesary copy of fpstate and fpsave in sysfork(). functions
including syscalls do not preserve the fp registers and copying fpstate
from the current process would mean we had to fpsave(&up->fpsave); first.
simply not doing it, new process starts in FPinit state.
2013-05-26 22:41:40 +02:00
cinap_lenrek ef5e19b9be add leading dot for explicit domain in webcookies, bump redirection limit to 12 in webfs 2013-05-26 03:33:39 +02:00
cinap_lenrek 7aea1204b9 graphics(2): remove non existing char *mousedir argument from geninitdraw (from sources / geninitdraw-no-mousedir patch) 2013-05-25 04:39:53 +02:00
cinap_lenrek cf657b418b libdraw: fix agefont crash when display == nil (from sources / agefont-nodisplay patch)
If you run this:
	{for (i in `{seq 1 70000}) echo '½•α·'} | mc | wc
mc will eventually suicide. The error comes from
/sys/src/libdraw/font.c:/^agefont which assumes it has a
display. Normally, this is set up by geninitdraw (usually
via initdraw), but mc.c avoids that to avoid the screen
redraws (flicker, at a minimum, but worse in long-running
cases).

graphics(2) does not prohibit this use, so I made the least
intrusive change to make it work.
2013-05-25 04:36:16 +02:00
cinap_lenrek 96511b274d kernel: fix floating point exceptions (was broken by sse kernel changes)
the fpenv() instruction stores in x87 format, using mathstate()
would interpret fpsave as FPssestate in case it was enabled!
instead, pass the status word and fppc explicitely to mathnote()
in matherror().

get rid of m->fpsavealign buffer, as we can just use FPssesave struct
which has enougth padding so rounding up base pointer will not overflow.
2013-05-25 22:44:19 +02:00
cinap_lenrek 8b40eecea8 kernel: cleanup /sys/src/9/pc/mkfile PORT= and OBJ= lists 2013-05-21 19:45:40 +02:00
cinap_lenrek 92b550d665 kernel: prevent alarm(2) from returning instantly when the tick timer wraps. (from erik quanstros alarmwrap patch) 2013-05-21 19:31:41 +02:00
cinap_lenrek f6833ce428 wifi: properly size internal wifi input processing queue
we only used wifi->iq to process management frames only, now its also used
to forward encrypted data frames, so size it accordingly.
2013-05-21 19:29:57 +02:00
cinap_lenrek 7a9ecbed6a merge 2013-05-21 18:58:13 +02:00
jpathy 5331734335 merge 2013-05-22 21:55:08 +05:30
jpathy 81b7451972 sse kernel support (sources) 2013-05-22 23:47:05 +05:30
jpathy 213bf50893 add 6(a|l) sse support to 8(a|l) 2013-05-21 23:15:13 +05:30
cinap_lenrek 8a3a36fc05 kernel: make allocb() wait instead of panic() when possible
as long as our process doesnt hold any locks or ilocks, we
can try to wait for the memory to become available instead of
panicing.
2013-05-21 02:29:46 +02:00
cinap_lenrek 58201a67c1 uarti8250: print on malloc failure 2013-05-20 17:43:30 +02:00
cinap_lenrek 3ccf5db688 merge 2013-05-20 17:33:46 +02:00
cinap_lenrek c4f57ff492 pcuart: malloc error handling, cleanup 2013-05-20 17:32:48 +02:00
ftrvxmtrx 5aa2a1a845 kbmap/ua: fix uppercase ь 2013-05-20 13:48:09 +02:00
cinap_lenrek 6ac8a3ca65 devether: handle malloc error in etherprobe() 2013-05-20 01:17:38 +02:00
cinap_lenrek 926dd18a7a wifi: handle malloc errors in wifiattach() 2013-05-20 01:03:20 +02:00
cinap_lenrek 18b8ae56e8 use resrcwait() when waiting for memory to become available
use resrcwait() when waiting for memory to become available. randomize
the sleep time and properly restore old process status in case tsleep()
gets interrupted.
2013-05-20 23:55:38 +02:00
cinap_lenrek f97798e710 devsd: don't raise Enomem error if sdmalloc() fails, instead wait for the memory to become available
filesystems do not handle i/o errors well (cwfs will abandon the blocks),
and temporary exhaustion of kernel memory (because of too many i/o's in
parallel) causes read and write on the partition to fail.

i think it is better to wait for the memory to become available in
this case. the single allocation is at max SDmaxio bytes, which makes
it likely to become available. if we havnt even enought fo that, then
rebooting the machine would be the best option. (aux/reboot)
2013-05-19 20:59:55 +02:00
ftrvxmtrx 318cd6fbde kbmap/ru: fix uppercase ь 2013-05-19 17:50:51 +02:00
cinap_lenrek 4c6c7be688 nusb/kb: simplify repeat logic as scancode now contains the info about esc1 extension 2013-05-18 01:46:25 +02:00
ftrvxmtrx 506cae05df nusb/kb: oops, fixup 2013-05-18 01:03:13 +02:00
ftrvxmtrx 811c3e8d78 nusb/kb: use a flag to indicate extended code; fix the most unix-friendly key on se/fi kbd layout 2013-05-18 01:01:34 +02:00
stanley lieber d50ca72774 faces: just say no to dejavu 2013-05-15 15:38:42 -04:00
cinap_lenrek 4c6fa55456 make clear that the "ipgw" attribute has to be an ip address 2013-05-14 18:31:24 +02:00
stanley lieber 9e9521140d fortunes: Subject: [9fans] [gsoc] Dart9P 2013-05-14 10:18:49 -04:00
cinap_lenrek f990a6d30a rio: place text at beginning of line before cursor and host point 2013-05-13 04:40:02 +02:00
cinap_lenrek 303394314a rio: fix completion and readback and make it possible to complete history 2013-05-13 04:19:10 +02:00
ppatience0 7b4c8aac93 toppm: no need to initialize err 2013-05-12 18:00:47 -04:00
ppatience0 03d1d83deb toppm: checking for err is useless; it was initialized to nil earlier 2013-05-12 17:52:35 -04:00
ppatience0 df25791b33 toppm: multichan converts to RGB24, not RGBV 2013-05-12 17:46:39 -04:00
ppatience0 eee0141465 writeppm: replace WriteGIF by WritePPM 2013-05-12 17:08:52 -04:00
cinap_lenrek 6bcc1eb399 writeppm: simplify 2013-05-13 23:03:23 +02:00
ppatience0 a3f776a13e writeppm: for bitmaps, 1 is black, 0 is white 2013-05-12 16:36:29 -04:00
ppatience0 a1130d843d toppm: fix style 2013-05-12 16:17:09 -04:00
ppatience0 d5e3e4326c toppm: add -r flag for raw ppm 2013-05-12 16:11:43 -04:00
cinap_lenrek b78e9525cf writeppm: fix tab/spaces 2013-05-12 19:12:21 +02:00
cinap_lenrek 4c4fbdf78c merge 2013-05-12 19:05:51 +02:00
cinap_lenrek 3cccb8fb12 devaoe: avoid panic on malloc() error by using smalloc() instead. 2013-05-12 19:04:07 +02:00
ppatience0 1d760c9b3e file: recognize bitmap and graymap ppm images
writeppm: do not print extra space after each pixel for graymap formats to save space
2013-05-12 12:53:43 -04:00
cinap_lenrek 8020743579 ether8169: do phywakeup magic only for specific mac versions (from openbsd) 2013-05-12 18:25:24 +02:00
cinap_lenrek 29ece7fda4 ether8169: and phy wakeup and reset phy before enabling auto negotiation
this brings up the 8198B on BurnZeZ's ASRock Z68 Professional Gen3 board.
2013-05-12 02:58:02 +02:00
cinap_lenrek 25bc4e84e9 devmnt: fix mount device leak and allocation error handling in mntversion()
the fist problem is that qopen() might return nil and that kstrdup() will
sleep, so we should try to avoid holding the mntalloc lock. so we move
the kstrdup() and qopen() calls before the Mnt allocation, and properly
recover the memory if we fail later.

the second problem was that we error(Eshort) after we already created the Mnt
when returnlen < sizeof(f.version). this check has to happen *before* we
even attempt to allocate the Mnt structures. note that we only copy the
version string once everything is in the clear, so the semantics of the
user buffer not being modified in case of error is not changed.

a little cleanup in muxclose(), getting rid of mntptfree()...
2013-05-11 20:54:50 +02:00
cinap_lenrek fe073f852a sdide: add Intel SERIES 6 SATA controller pci ids 2013-05-11 18:45:46 +02:00
cinap_lenrek 3174ffc971 acme: apply nemos acmediskread patch (from sources)
pread does not guarantee that it would read all the data asked for.
But acme usage of disk assumes that. This issues as many reads as
needed to make acme work when read returns less data than it wanted.
2013-05-11 18:43:03 +02:00
cinap_lenrek 389d6a1054 ape: change types from unsigned long to void* for rendezvous() and segattach()/segbrk() (erik), use uniqueue rendezvous tags for _buf and listen 2013-05-11 18:34:40 +02:00
ppatience0 9af0b2c683 awk: proctab.c is always regenerated from maketab, so it is unnecessary to keep it 2013-05-09 20:48:23 -04:00
cinap_lenrek 9bb703e2cf srv: be nice, close the previously duped pipe filedescriptor 2013-05-10 01:24:11 +02:00
khm 03cf6cae57 fortunes: all the world's a social vax cloud 2013-05-08 21:07:02 -04:00
ppatience0 c24a442ae2 samterm: revert previous changes. 2013-05-08 20:34:50 -04:00
ppatience0 6a2b5055f5 samterm: move cursor to next tabstop or non-space character before backspacing in spaces mode. this makes it less annoying to backspace (it's more like tabs). 2013-05-08 17:47:48 -04:00
jpathy e3883b050e Add RDRAND Support for /dev/random 2013-05-08 23:27:58 +05:30
ppatience0 36287edc88 ape: remove unused variables 2013-05-06 20:51:18 -04:00
ppatience0 517c0feaca ape: fix uninitialized variable bug in getfields() 2013-05-06 20:24:19 -04:00
ppatience0 a1bc7c76ba merge 2013-05-06 19:37:51 -04:00
ppatience0 5ac6088b96 access: unused variable 2013-05-06 19:35:03 -04:00
cinap_lenrek cd66b11f67 pbs: allow 9bootfat start cluster beyond 0xFFFF
pbs failed to load (silently loading garbage) 9BOOTFAT from start
cluster beyond FFFF because we ignored the low word from the
directory entry. now taking the high 16 bit of the directory's
start cluster into account.
2013-05-06 01:15:46 +02:00
cinap_lenrek d3b727db18 devip: dont raise error() out of Fsprotocone()
Fsprotoclone() is not supposed to raise error, but return nil.
ipopen() seemed to assume otherwise as it setup error label
before calling Fsprotoclone(). fix ipopen(), make Fsprotoclone()
return nil instead of raising error.
2013-05-05 04:28:50 +02:00
cinap_lenrek 9500191af6 devip: handle malloc errors, fix queue leaks
Fsprotocone():

qopen() and qbypass() can fail and return nil, so make sure
the connection was not partially created by checking if read
and write queues have been setup by the protocol create hanler.
on error, free any resources of the partial connection and
error out.

netlogopen(): check malloc() error.
2013-05-05 03:56:11 +02:00
cinap_lenrek 30d7276d69 libdraw: fix font f->cacheimage nil dereference
the initial fontresize() might fail but its error code is ignored
potentially leaving f->cacheimage == nil. make sure we call
fontresize() in loadchar() when theres no cacheimage and check the
return value to avoid nil pointer dereference.
2013-05-04 20:36:28 +02:00
cinap_lenrek 3e8a38dfb3 libmach: update mips disassembler (from sources) 2013-05-04 18:40:05 +02:00
cinap_lenrek cf76ca4f32 sort: handle write error in debug mode 2013-05-04 18:33:52 +02:00
cinap_lenrek 18e480ceb2 bio: use UTFmax for Bungetsize and fix libmach to include <libc.h> before <bio.h> (from sources) 2013-05-04 18:30:49 +02:00
cinap_lenrek d359aed939 nedmail: recognize image/jpg mimetype 2013-05-04 07:03:37 +02:00
ftrvxmtrx 9186ae1355 u9fs: fix compilation warnings 2013-05-04 02:53:05 +02:00
ftrvxmtrx f33e22c444 u9fs: make it compile 2013-05-04 02:43:27 +02:00
cinap_lenrek 9de8d61fe6 ape: get rid of fixed MUXADDR for buffered i/o
instead of trying to resize the segment (which will not work when
the kernel picks the address as it will allocate right before
the base of the topmost segment), we create the mux segment with the
maximum size needed (arround 1.4MB) for OPEN_MAX filedescriptors.

buf slots will be reused and slots get demand paged once used.
2013-05-03 19:34:48 +02:00
cinap_lenrek e8efd0a242 mkpaqfs(8): correct maximum block size (from erik quanstros mkpaqfsman patch) 2013-05-03 13:57:00 +02:00
cinap_lenrek d1905d8063 ape: remove unused variables from _buf (from erik qunastros _bufupd patch) 2013-05-03 13:46:27 +02:00
qeed 5dc9c7f443 fixed operand size for ADD SP, n 2013-05-02 10:40:45 -04:00
cinap_lenrek 78794f03dd devsd: initialize unit->sense[0] in sdsetsense() (from erik quanstroms 9atom) 2013-05-02 23:12:37 +02:00
cinap_lenrek d0bb0f7757 chan: fix potential path leak on clone in namec() (from erik quanstroms 9atom) 2013-05-01 21:56:02 +02:00
cinap_lenrek 91818e7081 devpipe: fix channel and queue leaks (from erik quanstroms 9atom) 2013-05-01 19:03:56 +02:00
cinap_lenrek 0124d865a6 aoe: updating aoe driver from erik quanstros 9atom
1  the config string was grabbed Aoehsz too far into the packet due to using the wrong pointer to start.
  2  never accept a response with tag Tmgmt or Tfree.
  3  defend against "malicious" responses; ones with a response Aoehdr.type != request Aoehdr.type. this previously could
 cause the initiator to crash.
  4  vendor commands were improperly filtered out.
2013-05-01 18:50:07 +02:00
cinap_lenrek d4414b3959 devloopback: fix potential channel leak on allocation error (from eriks 9atom) 2013-05-01 18:31:13 +02:00
cinap_lenrek 58533c35fb cc: accept 24 bit numeric runes 2013-05-01 16:55:11 +02:00
cinap_lenrek decade55c6 frexp: handle NaN values (from sources) 2013-05-01 16:44:04 +02:00
cinap_lenrek 27f65a138a uartpci: add detection for StarTech PCI8S9503V (P588UG) (from sources) 2013-05-01 16:29:58 +02:00
stanley lieber b94a33e01c rio: fix highlight text for -b 2013-04-30 21:03:12 -04:00
cinap_lenrek ce62bbb853 5c: dont emit conditional integer division instructions
the integer division instructions are emulated with _div()
function patched in by 5l which does not handle conditional
execution. so do not optimize away the branch in that case.
2013-04-29 20:15:40 +02:00
cinap_lenrek b325475fc8 Fix double-free fault when isaconfig returns nothing for "etherN". (from richard millers devether-doublefree patch) 2013-04-29 18:39:44 +02:00
ppatience0 87785ee897 /sys/lib/rootstub: fix missing /alpha/lib/ape directory 2013-04-29 11:12:47 -04:00
ppatience0 84172fc961 bootrc: fix spacing when asking for fs/auth ip 2013-04-28 18:34:47 -04:00
cinap_lenrek 966a185353 fix missing return compile error for manual book index generator 2013-04-28 16:47:03 +02:00
cinap_lenrek 90036b9991 libdraw: avoid printing error on closemouse() 2013-04-27 04:21:08 +02:00
cinap_lenrek a72a7c1cc2 libdraw: exit mouseproc() on read error instead of spinning 2013-04-27 04:10:39 +02:00
cinap_lenrek e83d5a84f2 nusb/serial: Add support for Amontec JTAGkey devices (from sources) 2013-04-26 15:25:25 +02:00
cinap_lenrek 35b5df0302 fix <mach.h> types in manual (erik quanstros machmantype patch) 2013-04-25 00:13:19 +02:00
cinap_lenrek 667010554b make all the commands agnostic about Rune width. (from sources) 2013-04-24 20:13:18 +02:00
cinap_lenrek 78c7ba36a1 cpu: don't print spurious errstr for bad auth method, fix comment 2013-04-24 02:41:36 +02:00
stanley lieber b699f9664b fortunes: i would not be at all surprised if the nix kernel (with or without the AC stuff) ends up being the basis for continuing evolution of plan9. 2013-04-23 18:53:37 -04:00
cinap_lenrek e9c8ef5e16 ftpd: "opts utf8 on" 2013-04-23 19:37:56 +02:00
cinap_lenrek 8858fdf15f ftpd: fix nil pointer derefernece when ominiting arguments to opts command 2013-04-23 22:47:27 +02:00
cinap_lenrek 922d6d0780 ftpd: implement "OPTS UTF-8 ON", fix uninitialized printing uninitialized memory in HELP command 2013-04-23 22:38:03 +02:00
cinap_lenrek 8ff7d518c6 - use the double-buffer buffer to allow redrawing on resize events.
specifing -d on the command line now only disables synchronous
drawing events.

- use threaded mouse and keyboard to allow for asynchronous
receoption of quit messages.  this allows plot to exit before drawing
is completed.  for programs like mapdemo, this is important.

there were two things that needed to get fixed as a result
- replace fprint(2, ...); exits("bad"); with sysfatal.  also get rid
of stdio.

- dpoint needed a mach-dependentent (sic) version.  otherwise
points on a resized screen will not be properly placed.
2013-04-22 19:10:09 +02:00
cinap_lenrek 05d3cc414d ether8169: fix deadlock in allocation error case for attach. (thanks erik)
typo in error case, should qunlock() instead of qlock().
2013-04-22 18:50:29 +02:00
cinap_lenrek 44c32071dc graphics(2): add newwindow() key reference 2013-04-22 22:14:08 +02:00
cinap_lenrek cbe11fc1c2 aux/listen: do not redirect stderr (fd 2) of the listener to the network connection
Charles Forsyth described the problem below in:

http://9fans.net/archive/2013/04/190

In a few cases, the kernel will use pprint to put a diagnostic on the
standard error (file descriptor 2). One of those is a warning that the
process has used more than 100 file descriptors. That message is possibly
obsolete and could be removed, but there are others, such as notifying an
uncaught trap that are probably helpful to make visible. In any case, as
things stand, a busy exportfs might have many file descriptors open,
provoking the diagnostic. Unfortunately, aux/listen and aux/listen1 connect
file descriptor 2 to the incoming network connection. If the connection's
protocol is not a simple, unstructured, textual one, diagnostics on the
standard error will cause confusion, in particular to devmnt.c if 9p is used.

/rc/bin/service files that start applications that run special protocols
might want to redirect file descriptor 2; alternatively, perhaps aux/listen
shouldn't redirect fd 2 by default: the few commands that do connect the remote
user to shells, or equivalent, including telnetd and sshd could dup 1 to 2
when that was sensible.
2013-04-20 21:42:20 +02:00
cinap_lenrek 4198bb566e merge 2013-04-20 22:51:22 +02:00
cinap_lenrek c04297587c ip/torrent: use NPROC processes in parallel for calculating initial piece hashes 2013-04-20 22:47:39 +02:00
cinap_lenrek 4fcc5efce5 mouse: fix cursor redraw to prevent screen blanking (thanks erik) 2013-04-16 18:52:49 +02:00
cinap_lenrek c31c4ca7b3 devmouse: remove unneeded reference to kerndate 2013-04-14 18:28:55 +02:00
cinap_lenrek e2baea8ddf sdiahci: add pci id for 82801eb/er and c210 2013-04-14 18:13:26 +02:00
cinap_lenrek 3045d63969 reduce software cursor flickering
the software cursor starts flickering and reacts bumby if a process
spends most of its time with drawlock acquired because the timer interrupt
thats supposed to redraw the cursor fails to acquire the lock at the time
the timer fires.

instead of trying to draw the cursor on the screen from a timer interrupt
30 times per second, devmouse now creates a process calling cursoron() and
cursoroff() when the cursor needs to be redrawn. this allows the swcursor
to schedule a redraw while holding the drawlock in swcursoravoid() and
cursoron()/cursoroff() are now able to wait for a qlock (drawlock) because
they get called from process context.

the overall responsiveness is also improved with this change as the cursor
redraw rate isnt limited to 30 times a second anymore.
2013-04-14 16:28:54 +02:00
stanley lieber 58e500f4a7 fortunes: support for non-blocking i/o 2013-04-12 20:51:47 -04:00
ppatience0 8214a7f84f merge 2013-04-12 18:39:12 -04:00
ppatience0 e44eacad8f jpg(1): update bmp and yuv usage 2013-04-12 18:36:22 -04:00
cinap_lenrek 14650e9c25 pci: Add Intel C216 chipset PCI support (from sources) 2013-04-12 23:07:40 +02:00
cinap_lenrek 800670da4e usbehci: align page td buffer for >16K transfers, fix isohsinit()
from ehci spec:

The buffer pointer list in the qTD is long enough to support a maximum
transfer size of 20K bytes. This case occurs when all five buffer pointers
are used and the first offset is zero. A qTD handles a 16Kbyte buffer
with any starting buffer alignment.
2013-04-12 22:14:32 +02:00
cinap_lenrek 1e31b342cd merge 2013-04-11 19:34:43 +02:00
cinap_lenrek 2647aef175 ndb/dns: dont override req->aborttime in udpquery()
overriding aborttime in udpquery() makes no sense. it causes
recursive queries to extend the timeout infinitely. nobody
but the issuer of the request should modify aborttime.
2013-04-11 19:33:07 +02:00
cinap_lenrek b8397a3c2c libauth: auth_chuid empty (from sources)
instead of an "i/o count too small", detect a missing capability (empty, null string)
before the write, and diagnose it as such.
2013-04-11 13:45:11 +02:00
cinap_lenrek 5796736b70 9nfs: apply patch/nfswarnandflags (from sources, thanks nemo)
Remove a warning in 9nfs and make it use the std. CFLAGS
(we detected the warning using -W).
2013-04-10 20:51:39 +02:00
cinap_lenrek 8cc04381d1 postscript: remove private copy of utf8 implementation (from sources) 2013-04-10 20:47:01 +02:00
cinap_lenrek e60f177ad2 etheriwl: add pci id for Centrino Wireless-N 100 (thanks fgudin9) 2013-04-10 22:13:54 +02:00
cinap_lenrek 4ae7954547 ape: inet_ntop() print v4 mapped addresses in v6 as dotted quad 2013-04-05 14:09:41 +02:00
ppatience0 cfadfd97b8 sam(1): document -i flag 2013-04-04 16:44:23 -04:00
ppatience0 02f60df0f3 sam, samterm: add -i flag to make tab insert spaces up to the next tabstop and backspace to delete spaces until the previous tabstop 2013-04-04 16:38:36 -04:00
cinap_lenrek 6bef56f037 intel ethernet: default to 16 byte cache line size when not properly initialized and disable checksum offload for igbe (from sources) 2013-04-03 21:51:42 +02:00
cinap_lenrek 81b394f30a pci: add pci bridge id for Intel 6 Series/C200 (from sources) 2013-04-03 21:47:50 +02:00
cinap_lenrek 432c11c0b4 pushtls: remove unneccesary include <auth.h> (from sources) 2013-04-03 21:46:33 +02:00
cinap_lenrek 182ed8a2b5 add import -z option to skip initial tree negotiation (from mycroftiv) 2013-04-02 04:23:26 +02:00
cinap_lenrek d645d4d81b ape: inet_pton() parse dotted address to IPv4 mapped addresses for AF_INET6 2013-04-02 03:48:10 +02:00
cinap_lenrek 4c2d520eef fix parseip()
addresses like: "1:2:3:4:5:6:7:255.255.255.255" caused parseip
to write beyond the ip buffer.
2013-04-02 03:39:24 +02:00
cinap_lenrek e8c1d0fe7c ape: check *alen before copying in getpeername(), getsockname() and accept()
*alen has to be initialized to the size of the buffer
by the caller, and we are supposed to put the real
size of the address in there, but not copy more than
the original *alen value (truncate).
2013-04-02 01:40:29 +02:00
cinap_lenrek e8a0276090 ape: add inet_aton() 2013-04-01 19:16:18 +02:00
cinap_lenrek bbe95085d4 python: update python build configuration to new ape capabilities like getaddrinfo(), ipv6 and fix EISCON typo in ape 2013-03-31 18:54:45 +02:00
cinap_lenrek b6dc4ba5a4 ape: initial IPv6 support, inet_pton()/inet_ntop(), getaddrinfo()/getnameinfo() 2013-03-31 18:52:45 +02:00
cinap_lenrek 9c7e1db701 ape: define FD_SETSIZE for select() 2013-03-31 18:46:14 +02:00
ppatience0 eddc8dea86 merge 2013-03-30 22:52:30 -04:00
ppatience0 c70c20de12 ether82563: add untested devices from OpenBSD's em(4) Intel driver. also update some names according to OpenBSD's driver (previously added device, 0x10c0, is also from OpenBSD's driver). 2013-03-30 22:50:48 -04:00
cinap_lenrek c97a0268f3 ape: fix potential double close in socket() and protect rock chain with spinlock 2013-03-29 20:49:49 +01:00
ppatience0 10987d2dc7 ether82563: add 82562V-2 did 2013-03-24 01:51:43 -04:00
stanley lieber c8cba84e3e fortunes: Now reboot twice[1]. 2013-03-24 19:49:02 -04:00
cinap_lenrek b9214d6662 wifi: cleanup
cleanup wifiencrypt()/wifidecrypt() routines moving tkip
and ccmp in separate routines so we dont use less stack
space.
2013-03-24 21:59:47 +01:00
cinap_lenrek 33d00fce10 wpa(8) document -1 and -2 options 2013-03-24 02:30:11 +01:00
cinap_lenrek 34e46d0837 wpa: fix rsc for wpa2
in wpa2, the rsc field of the eapol message3 is the packet number for
*group* messages that the ap will use as there is no separate group
key message. in wpa1, we use it for the peerwise key.
2013-03-23 22:09:46 +01:00
cinap_lenrek 66a3ffe248 unrolling loops in aesCCMencrypt() and aesCCMdecrypt()
do the xoring word wise for 16-byte block instead
of doing it bytewise in a loop.
2013-03-23 20:52:54 +01:00
cinap_lenrek f079c71966 wpa: remove debug print 2013-03-23 04:50:43 +01:00
cinap_lenrek 2b9ed2057a merge 2013-03-23 04:31:45 +01:00
cinap_lenrek 49a4ac0728 wpa2 support continued... 2013-03-23 04:30:20 +01:00
cinap_lenrek e7131e9313 add experimental wpa2/ccmp support 2013-03-23 04:27:49 +01:00
khm 12b35bbef1 fortunes: stockholm 2013-03-22 19:25:50 -04:00
cinap_lenrek 7ae6508d7e merge 2013-03-17 19:41:39 +01:00
cinap_lenrek d6da605605 wpa: initial support for rsn 2013-03-17 19:39:44 +01:00
ftrvxmtrx 6862f4ee0e aux/cpuid: xsaveopt 2013-03-17 13:20:03 +01:00
ftrvxmtrx 8580ec595b aux/cpuid: better looking arrays 2013-03-16 21:13:49 +01:00
ftrvxmtrx f4174739bb aux/cpuid: fix wrong extfunc1 bits 2013-03-16 18:07:48 +01:00
cinap_lenrek f37465fd7f sysexec: fix possible segment overlap with temporary stack
the kernel uses fixed area (TSTKTOP, TSTKSIZ) of the address
space to temporarily map the new stack segment for exec. for
386 and arm, this area was right below the stack segment which
has the problem that the program can map arbitrary segments
there (even readonly).

alpha and ppc dont have this problem as they map the temporary
exec stack *above* the user reachable stack segement and segattach
prevents one from mapping anything above or overlaping the stack.

lots of arch code assumes USTKTOP being the end of userspace
address space and changing this to TSTKTOP would work, but results
in lots of hard to test changes.

instead, we'r going to map the temporary stack programmatically
finding a hole in the address space where to map it. we also lift
the size limitation for arguments and allow arguments to fill
the whole new stack segement.

the TSTKTOP and TSTKSIZ are not used anymore so they where removed.

references:

http://9fans.net/archive/2013/03/203
http://9fans.net/archive/2013/03/202
http://9fans.net/archive/2013/03/197
http://9fans.net/archive/2013/03/195
http://9fans.net/archive/2013/03/181
2013-03-16 02:37:07 +01:00
cinap_lenrek 42224f7e5b hjfs: fix the megashit
aiju → what is this huge if(d != nil) {} megashit

if getdent() fails in newentry() then return immidiately
and dont override the error string.
2013-03-14 20:55:16 +01:00
cinap_lenrek f0303b65ca merge 2013-03-12 21:08:47 +01:00
cinap_lenrek da66a67a94 ether8169: add RTL8101/8102E macid 2013-03-12 21:07:40 +01:00
ftrvxmtrx f28ccb0ed9 etheriwl: 6005 - set rom calibration flags and temperature sensor offset 2013-03-12 00:14:55 +01:00
cinap_lenrek 25f04a68a1 ape: threadsafe errno
store errno on the private process stack so its always per process
and not just per memory space. errno itself becomes a macro
dereferencing int *_errnoloc; which is initialized from main9.s
pointing to the private stack location.

various fixes in programs that just imported errno variable with
"extern int errno;" instead of including <errno.h>.
2013-03-11 18:57:22 +01:00
cinap_lenrek 34ec205604 merge 2013-03-11 01:17:45 +01:00
cinap_lenrek 631aef280d ape: fix thread race with close() and select()
in ape close(), do the real filedescriptor _CLOSE() *after* we cleared
the _fdinfo[] slot because once closed, we dont own the slot anymore and
another process doing open() can trash the slot. make sure open() retuns
fd < OPEN_MAX.

double check in _startbuf() holding mux->lock if the fd is already buffered
preveting running double copyprocs on a fd.

dont zero the mux->rwant/ewant bitmaps at the end of select() as we do not
hold the mix->lock.

in _closebuf() kill copyproc while holding the mux->lock to make sure the
copyproc isnt holding it at the time it is killed. run kill() multiple times
to make sure the proc is gone.
2013-03-11 01:16:34 +01:00
cinap_lenrek d526ee0750 ape/malloc: make malloc and free threadsafe for python 2013-03-11 00:55:26 +01:00
cinap_lenrek 48b0c10681 ape/stdio: make fopen() quasi threadsafe for python
python uses processes sharing memory. it requires at least fopen() to
be called by multiple threads at once so we introduce _IO_newfile()
which allocates the FILE structure slot under a lock.
2013-03-11 00:48:35 +01:00
ppatience0 39eaaaf07d wpa(8): fix typos 2013-03-10 19:25:01 -04:00
cinap_lenrek 530a2bc5e9 ape: check for invalid filedescriptors in select() 2013-03-10 18:35:07 +01:00
cinap_lenrek 9f25f9504a nusb/disk: add small delay after unit start command (for thinkpad sdcard reader)
diskparts fails on thinkpad x200 sdcard reader if we dont
give the unit some time to startup. the device took about
100ms to become ready so status poll loop with a long
timeout would be overkill.
2013-03-10 04:06:42 +01:00
cinap_lenrek cc02f96ed9 provide wpa(8) manual page 2013-03-09 19:18:00 +01:00
cinap_lenrek b6581f21e5 aux/wpa: check reply counter only after mic check 2013-03-09 18:12:49 +01:00
cinap_lenrek 6f374a5243 add wpa key setup program aux/wpa 2013-03-09 17:33:58 +01:00
cinap_lenrek 26792d8db5 wifi: add experimental wpa / tkip encryption support 2013-03-09 17:28:41 +01:00
cinap_lenrek 420efd93d7 factotum: add wpapsk client authentication 2013-03-09 17:22:59 +01:00
aiju d9dd0970b1 added geigerstats 2013-03-08 20:51:08 +01:00
stanley lieber 2cb20023eb fortunes: He wasn't asking about plan9port. 2013-03-07 18:34:35 -05:00
cinap_lenrek cc2017f0b3 aan: fix structure padding for amd64 2013-03-06 14:11:21 +01:00
ppatience0 95d41e8ff4 fltfmt: make %g print decimal numbers less than 1 with a leading zero 2013-03-03 14:12:33 -05:00
ppatience0 1a88844069 fltfmt: %.0g should print with one significant figure 2013-03-03 13:21:17 -05:00
ppatience0 3d908529e9 fltfmt: fix %g not printing as %e in some cases when it should 2013-03-01 17:23:26 -05:00
cinap_lenrek 6bd2c26a85 nusb/kb: fix "Home" key producing "7" with some usb keyboards (import from sources patch/usb-khome)
Fixes the problem with certain keyboards generating "7" on "Home" key press.

http://9fans.net/archive/2013/03/8
http://9fans.net/archive/2013/03/10
2013-03-01 19:53:11 +01:00
cinap_lenrek 03ae4fa162 6c: fix 32bit pointer truncation (from patch/6c-sugen-types)
1. Go group spotted that a slightly-obscured pointer move was done by AMOVL not AMOVQ.
2. Inspecting the code further, I noticed that other pointer types were set to TLONG not TIND,
   causing similar truncation of pointers to 32 bits.
2013-02-28 19:23:54 +01:00
cinap_lenrek 8b72726549 ape: add PASS_MAX constant for getpass() to limits.h (from patch/ape-pass_max)
add PASS_MAX to limits.h for ape, and make getpass respect it. also increase the size of
the maximum passwords (we use long ones at work). Needed for native port of SVN (in progress).
2013-02-28 19:21:03 +01:00
ppatience0 24ea306fa6 fltfmt: %.ng is supposed to print a number with n significant figures, but it prints it with n+1. This fixes that behaviour. 2013-02-27 16:15:18 -05:00
cinap_lenrek 6b03a9495c dont use full qualified domain names in example configuration
use shorter sysnames instead of full qualified domain names
so one doesnt have to setup the dns server in the example
configuration.
2013-02-27 08:18:18 +01:00
cinap_lenrek 70b9c8574f cwfs: fix mtime for dump yyyy directories 2013-02-25 06:11:43 +01:00
cinap_lenrek 201a98d06c cdproto: only include binaries for $objtype, filter temporary files 2013-02-24 04:48:12 +01:00
cinap_lenrek 5c4f2f9d35 sdiahci: only wait for drives that are in the process of becoming ready when onlining, add *noahci option 2013-02-23 14:05:51 +01:00
cinap_lenrek 3a79bf2ae6 libip: make myetheraddr() accept # device names 2013-02-23 09:33:04 +01:00
ppatience0 82c816d15c ether8169: add another RTL8111/8168B mac id 2013-02-22 01:14:31 -05:00