Commit graph

2028 commits

Author SHA1 Message Date
cinap_lenrek 62721182c4 audiohda: fix getoutamprange()
same problem as previous commit. have to query
function group if not Wampovrcap.
2012-12-07 00:36:15 +01:00
cinap_lenrek 29aa499682 audiohda: handle default amp settings
widgets that do not have Wampovrcap have ther default
amplifier parameters stored in the aydio function group.
only if the amp override bit is *not* set, then the widget
stores its own amplifier parameters and we have to query
its node id, otherwise the audio function group node id.
2012-12-07 00:12:16 +01:00
cinap_lenrek 5a138029db move devusb to port
moved devusb to port, shifting the responsibility of how
to enable interrupts to the arch specific hci driver.
2012-12-06 18:53:17 +01:00
cinap_lenrek 75b1ec6716 audiohda: dont xspanalloc() Ctlr structure
theres no requirement for the Ctlr structure to be 8 byte aligned.
its not passed to hardware.
2012-12-06 17:19:13 +01:00
cinap_lenrek 7a99d3c6a6 ipconfig(8): better way to say it :) 2012-12-06 07:34:56 +01:00
cinap_lenrek df8c55ec71 ipconfig(8): document new default behaviour for finding ethernet device 2012-12-06 07:30:16 +01:00
cinap_lenrek c3105131fe bootrc: fix mistake, god damn it 2012-12-06 03:46:22 +01:00
cinap_lenrek 620d6df973 bootrc: reparse all env variables, not just #ec 2012-12-06 02:03:59 +01:00
cinap_lenrek 6e630a2d1f nusb/ether: remove debug prints, cleanup 2012-12-06 00:31:25 +01:00
cinap_lenrek 29ca49ca38 nusb/ether: remove vid check in smsc driver, cleanup cdc driver 2012-12-06 23:24:42 +01:00
cinap_lenrek 04fd67ab06 nusb(4): document new nusb/ether options 2012-12-06 23:17:18 +01:00
cinap_lenrek 23239adf54 nusb/ether: port drivers for asix and smsc ethernet 2012-12-06 23:05:24 +01:00
cinap_lenrek 49c8aed2db ip/ipconfig: automatically find ethernet device on /net if not given 2012-12-05 14:38:30 +01:00
cinap_lenrek 0750687012 move usb ethernet in bootfs.paq 2012-12-05 13:53:34 +01:00
cinap_lenrek 96cc3eb2ee devtls: add support for aes_128_cbc and aes_256_cbc (import from sources) 2012-12-04 10:53:53 +01:00
cinap_lenrek b296b96c68 devssl: handle bad secretin/secretout ctl arguments (import from sources) 2012-12-04 10:52:42 +01:00
cinap_lenrek b142e2a308 devpipe: import pipe wstat() support to change permissions (import from sources) 2012-12-04 10:40:08 +01:00
cinap_lenrek 98bd636424 upas: fix original mail in /sys/src/cmd/upas/misc 2012-12-04 08:02:50 +01:00
cinap_lenrek 580a8ae857 syscallfmt: fix syscall trace for kw/opamp4 2012-12-04 07:26:33 +01:00
cinap_lenrek 4ae38efc1c ape/mv: check if from path fits and error if too long 2012-12-04 06:06:28 +01:00
cinap_lenrek b4e34c1c74 kw: syscallfmt() declaration moved to port/portfns.h 2012-12-04 05:28:38 +01:00
cinap_lenrek 6d47c25f6f python: fix pgen build for other archs 2012-12-04 03:05:01 +01:00
cinap_lenrek 2fcd19f16e ape: fix memory leak and path limit in unlink()
db1 was leaked, and newname could overflow. fixed.
2012-12-03 19:16:22 +01:00
cinap_lenrek a16f5cd2a3 ape: forgot to set errno in access() for dir create fail 2012-12-03 18:54:56 +01:00
cinap_lenrek 4661934e31 ape: fix _grpmems(), access(), getppid(), cleanup
_grpmems() was broken tokenizing group list in place.
we have to copy it to status buffer before tokenizing.

dynamically alloc path for test file to check write
permission on directory and add pid to the name to
prevent races.

use _OPEN instead of ape open to read /dev/ppid in
getppid().

use mode enums instead of numeric constants for _OPEN()
and _CREATE().
2012-12-03 18:47:41 +01:00
cinap_lenrek 52b9a06896 9boot: truncate long lines instead of producing partial lines from console/plan9.ini 2012-12-03 16:52:14 +01:00
cinap_lenrek ee251568fb ape: putenv, add file :) 2012-12-03 06:47:01 +01:00
cinap_lenrek 84c930a078 ape: fix putenv()
writing /env in putenv() doesnt work. exec will create
new enviroment anyway. we have to modify environ array!
2012-12-03 06:44:30 +01:00
cinap_lenrek eb9de925c6 ape: fix more bugs, use /env and /proc instead of #e and #p, cleanup
remove envname length limitation in _envsetup()
by using allocated buffer and use /env instead of #e

use /proc and getpid() instead of #p and #c in
readprocfdinit()

fix buffer overflow in execlp(), check if name
of failed exec starts with / . or is \0

make sure not to close our own filedescriptors
for FD_CLOEXEC in execve(), fix wrong length
check for flushing buffer to /env/_fdinfo.
fix error handling cases. copy the enviroment
before decoding \1 to \0 because the strings in
environ[] array might not be writable.

remove bogus close if we fail to open ppid file
in getppid() and use /dev/ppid instead of #c/ppid
2012-12-03 05:35:33 +01:00
cinap_lenrek f3842de5fd ape: initialize _tos and use _tos->pid for getpid() 2012-12-03 05:22:21 +01:00
cinap_lenrek 45b498c027 ape: fix buffer overflow in _envsetup() 2012-12-02 12:32:23 +01:00
cinap_lenrek 50c9769bbd sdiahci: fix staggered spinup wait loop, fix confusion
setting Asud in the cmd register is not needed, because
Apwr is (Asud|Apod) already. the problem really was that
the drive comes up with sstatus Spresent (001), so we never
spun it up because (p->sstatus & Sphylink) == 0 was never
met (Sphylink being a mask (011) overlaping Spresent bit).

the spinup wait loop has to run only for the staggered spinup
case (h->cap & Hss) and it should wait for the drive to be
detected by the phy, not just cold presence detect.
2012-12-02 04:50:37 +01:00
cinap_lenrek a9206fa5ad sdiahci: make drive dvd drive spinup work, add *ahcidebug= boot parameter
thinkpad r400 dvd drive was not recognized. port status
indicated present device but no Sphylink because the
device did not spin up. setting the Asud bit in ahciconfigdrive()
made it come up clean.

add scsciverify() call in iaverify() for atapi inquiry.

keep in some of the debug prints and add a *ahcidebug= boot
parameter to enable them.
2012-12-02 01:39:03 +01:00
cinap_lenrek 86eaffdcaa nusb/kb: fix 5ms sleep polling in repeatproc, notegroup, cleanup
fix repeatproc timeout handling, add constants for Kbdelay
and Kbrepeat.

set procname so one knows which is keyboard and which is mouse
and on what endpoints they work.

9front's /dev/mousein and /dev/kbdin allow multiple opens,
so theres no need for the refcounted Kin structures.

spawn the worker procs in ther own note group, so they wont
get killed on interrupt in the original notegroup.
2012-11-30 19:01:59 +01:00
cinap_lenrek 3e0e920c22 upas/ned: fix M command 2012-11-30 15:13:23 +01:00
cinap_lenrek 3f25f69718 nusb/kb: add support for evoluent vertical mouse 2012-11-30 04:02:03 +01:00
cinap_lenrek 8b7897b57a upas/fs: fix tlsClient() memory leaks 2012-11-28 08:51:50 +01:00
cinap_lenrek a8fc4ddc6d usbehci: route ports to all ehci controllers, not just the first
i belive the seizing up was a side effect of broken
bios handover. ehci will not work on the other controllers
if we do not route the ports to them.
2012-11-28 07:35:28 +01:00
cinap_lenrek f98bdfece0 audiohda: add pci vid/did for lenovo thinkpad x230t 2012-11-28 01:20:58 +01:00
cinap_lenrek 87ab441ab4 upas: handle Bcc: header
when -8 flag is given, upas/marshal override To:, Cc: and Bcc: headers.
add -B option for Bcc. it is also now valid to pass recipient list
on upas/marshal arguments and have -8 flag set. make nedmail and
/rc/bin/mail call upas/marshal with -8 now to make it effective.
2012-11-27 21:10:55 +01:00
cinap_lenrek 539f74db81 reverting string "general purpose password" braindamage 2012-11-27 22:07:34 +01:00
glenda 7e0c920fe3 passwd: improved message 2012-11-27 14:16:10 +00:00
cinap_lenrek 4260392749 nusb/kb: skip 0x01 lead byte hack, you dont wanna know
apparently, some mouse send constant 0x01 byte
before normal 4 byte mouse packet. this is known in
openbsd/freebsd as UQ_MS_LEADING_BYTE quirk.
2012-11-25 22:37:53 +01:00
cinap_lenrek ffa54947bc usbehci: fix broken bios takeover
bios takeover was broken. bad Ceecpmask (was 8, should be 0xFF)
causing it to miss the legacy control ecap and properly take
overship of the controller. also the order seems wrong, we
have to takeover before we do anything with the controller.

remove the pci config space 0xc0 = 0x2000 write. this the
uhci legacy register. its not anywhere in the ehci spec.
2012-11-25 16:24:10 +01:00
cinap_lenrek f8f118423c usbohci: revert td overrun error handling change from sources
regarding the ohci spec, a overrun td might supply a full
packet of data. this change seemed to have caused nusb/kb to
fail with getting spurious zero byte reads. reverting for now.
2012-11-24 16:41:38 +01:00
cinap_lenrek aadc581040 nusb/kb: zero reads, error handling, priority, cleanup
handle short reads as errors and retry. this can happen
on ohci and some ps2 to usb converter. it might'v deen caused
by a recent change on sources handling td overrun differently.

fix error handling. have to check f->ep == nil after recovery
and check packet size. also, use f->ep->dfd instead of ptrfd
and kbdfd as it might be different after recovery. make a
setleds() error non fatal.

boost process priority for keyboard and mouse worker processes.

cleanup: use single write() in putmod(), improve error reporting.
2012-11-24 16:37:39 +01:00
cinap_lenrek f37d68003d usbohci: implement smm handover, timeouts, donehead dequeue.
implement SMM emulation driver handover in ohcireset(). this fixes
hang and defunct internal keyboard problems on a acer notebook.

dont spin forever waiting for the controller on soft reset in init().

check both, donehead pointer *and* interrupt status for
processed td event (Wdh) similar to the ohci spec example for
processed tds and unlink immidiately. acknowledge *all* the
interrupt status bits before masking. mask out unhandled
events.

various stuff:

check for christmas light interrupt status (cardbus controller
removed?)

add (missing?) break for Tddataovr error case in qhinterrupt().
(changed on sources, not clear why?)

mask interrupt events on shutdown() (from sources).
2012-11-24 03:51:57 +01:00
cinap_lenrek 4b4070a8b9 ratrace: fix race conditions and range check
the syscallno check in syscallfmt() was wrong. the unsigned
syscall number was cast to an signed integer. so negative
values would pass the check provoking bad memory access from
kernel. the check also has an off by one. one has to check
syscallno >= nsyscalls instead of syscallno > nsyscalls.

access to the p->syscalltrace string was not protected
from modification in devproc. you could awake the process
and cause it to free the string giving an opportunity for
the kernel to access bad memory. or someone could kill the
process (pexit would just free it).

now the string is protected by the usual p->debug qlock. we
also keep the string arround until it is overwritten again
or the process exists. this has the nice side effect that
one can inspect it after the process crashed.

another problem was that our validaddr() would error() instead
of pexiting the current process. the code was changed to only
access up->s.args after it was validated and copied instead of
accessing the user stack directly. this also prevents a sneaky
multithreaded process from chaning the arguments under us.

in case our validaddr() errors, we cannot assume valid user
stack after the waserror() if block. use up->s.arg[0] for the
noted() call to avoid bad access.
2012-11-23 20:27:09 +01:00
cinap_lenrek 2f416353df libmach: fix file permission for map.c 2012-11-22 00:56:32 +01:00
cinap_lenrek 5be7e69c26 hgfs: work in progress stuff... 2012-11-22 00:02:43 +01:00
cinap_lenrek 1d4ab25265 hgfs: remove bogus OTRUNC mode from create() call in fmktemp() 2012-11-21 19:28:40 +01:00
cinap_lenrek 40d11cea3f hgfs: various improvements
lazily close revlog files and keep up to 8
revlogs arround. also cache the latest extracted
file descriptor of a revision in the revlog.
this avoids the quite expensive reextracting/patching
when we reopen the same file revision.

dont use the racy mktemp()/create, instead create
a uniqueue name and create with OEXCL. this also
avoids a bunch of access() calls.

fix eof case and use pread() in fcopy() to avoid the
seeks.

dont modify changelog temp file but simulate trailing
newline instead.
2012-11-21 19:22:46 +01:00
cinap_lenrek 73744b9f48 derp: handle file type changes
handle cases when files become directories or directories
become files.
2012-11-21 15:34:12 +01:00
cinap_lenrek f188f2f073 hjfs: eleminate seek syscalls
reduce syscalls by using pread/pwrite instead
of seek/read/write.
2012-11-18 12:53:31 +01:00
cinap_lenrek c1d5963850 merge 2012-11-18 12:01:16 +01:00
cinap_lenrek bcaf52ebcd hjfs: ORCLOSE parent check, estrdup / erealloc, CHFNOPERM consistency
check for write premission in the parent directory
for open with ORCLOSE. honor CHFNOPERM not just in
chancreat(), pikeshedd the error handling. added
estrdup()/erealloc() that call sysfatal instead
of returning nil.
2012-11-18 12:00:13 +01:00
cinap_lenrek 28452d3fe5 hgfs: work in progress stuff 2012-11-18 11:54:04 +01:00
cinap_lenrek 9a39427183 hjfs: fix dump / create
getdent() introduced a bug as the qid check fails in
the case when we walk to DUMPROOTQID, but get ROOTQID
in the directory instead.

newentry() getblk(..., GBCREATE) caused the whole
directory to get dumped until it hit a free slot.
we cannot do this because this changes the addresses
of Dentries of files but doesnt update the loctree.

this caused the bogus walks when we hit a different
directory than we expected.

what we do now is the following: newentry() was changed
to never dump anything. it will just read the directory
and return a the address of a free slot or create a
new block having space for one. chancreat() then makes
a loc in the loctree for the free slot, drops the dirent
buffer and calls willmodify() on the new slot. this will
dump the block containing the slot (and possible other
slots) and updates the loctree to the new version.

after that, chancreate() modifies the slot filling the
Dentry. there should be no race, as newentry() skips
slots that have a loc in the loctree.

theres one case where newentry() can dump the block
immidiately when it is called from dump. added new
parameter for that and documented in the comment.

createuserdir() was simplified by just calling chancreat().
to get arround the permission check, a new per channel
flag CHFNOPERM was added.
2012-11-18 00:06:54 +01:00
stanley lieber cb8d49e3c2 fortunes: did anyone at iwp9 give an update about osprey? anyone ask when it'll be available? 2012-11-17 14:24:01 -06:00
cinap_lenrek 08cd0ea8d4 hjfs: fix getfree() races, fix very rare buf leak in deltraverse() 2012-11-16 22:57:43 +01:00
cinap_lenrek 84ddc4cd4b hjfs: fix potential deadlock in putloc() 2012-11-16 19:55:58 +01:00
cinap_lenrek b9bf9f1d54 hjfs: dentry qid checking, prevent newentry() from allocating already in use slot
always check if the directory entry qid from the loc still
matches the one on disk before doing anything. helps
catching bugs and is basically equivalent to what cwfs does
with its checktag.

make a haveloc() check in newentry() to make sure we dont
allocate a file slot thats still in use, but deleted.
this seems to fix the NPROC>1 build problems.
2012-11-16 13:42:45 +01:00
cinap_lenrek ffa6f9c6ea fix spaces 2012-11-15 19:41:13 +01:00
cinap_lenrek b28f60cdd3 add C-Keens tls-client-auth
This patch adds client TLS authentication to libsec in compliance with
rfc 4346.

A new -c flag has been introduced for tlsclient allowing the user to
specify a certificate in pem(8) format which will be provided to the
server upon request.

A -D debug flag has been introduced to enable debugging output.

The patch has been tested against OpenSSL 0.9.7j 04 May 2006.

It exists today because of the great (debugging) help and insight
provided by Matthias Bauer.

TODOs:

- specification of a certain client key in factotum is not possible at
	the moment
- tlssrv should support this too

These will get added in another patch.

The first try to submit this patch failed due to a network error.
Sorry for the duplication!

Kind regards,

Christian
2012-11-15 19:32:53 +01:00
cinap_lenrek df829e6c07 hjfs: fix more missing dirty marks, error handling, cleanup 2012-11-15 16:43:35 +01:00
cinap_lenrek 7ced300071 hjfs: fix missing BDELWRI mark in newentry() 2012-11-15 09:22:13 +01:00
cinap_lenrek 00daf47137 vt: on resize, restore screen using history buffer 2012-11-10 07:56:39 +01:00
cinap_lenrek 0ad8548b70 rio: fix auto compmplete candidates getting read back without prompt 2012-11-10 02:30:17 +01:00
cinap_lenrek 0df3f94ecd kbdfs: send interrupt note in separate proc to prevent potential deadlock 2012-11-09 17:39:35 +01:00
cinap_lenrek 663aff7fb2 kbdfs: kill input buffer on interrupt key 2012-11-09 17:09:20 +01:00
cinap_lenrek 01d28b9d89 pstree: manpage, print pid in first column, bio, silly walks 2012-11-08 00:06:54 +01:00
cinap_lenrek 6f1efd37a2 limit clunk queue length for cclose()
dont let the clunk queue grow too large if we are allowed to
block (cclose) as the fileserver might run out of fids.
2012-11-07 22:04:29 +01:00
cinap_lenrek 52f71a17da pstree: sort children, fix missing close, strip newline from args 2012-11-07 21:14:41 +01:00
cinap_lenrek 6c8097a84d fix spurious kproc ppid
newproc() didnt zero parentpid and kproc() didnt set it, so
kprocs ended up with random parent pid. this is harmless as
kprocs have no up->parent but it gives confusing results in
pstree(1).

now we zero parentpid in newproc(), and set it in sysrfork()
unless RFNOWAIT has been set.
2012-11-07 20:46:30 +01:00
cinap_lenrek 479ea049e3 remove tty(1) command as kbdfs now handles interrupts 2012-11-07 19:04:26 +01:00
cinap_lenrek 2c4a77f21f devproc: remove pgrpid == 1 check for notepg open
assuming that this check tried to prevent the hostowner
from killing init, it is silly because init would just
handle the note.

with kbdfs, we actually want to send interrupt note to
the initial process group so instead of working arround
this with rfork(RFNOTEG|RFNAMEG), we remove the check.
2012-11-07 18:57:02 +01:00
cinap_lenrek eb96892d85 merge 2012-11-06 17:21:15 +01:00
cinap_lenrek 599dd1c34f make interrupt key (Del) just work in the console
these changes make the interrupt key available in the
console (before rio is started).

kbdfs: will now send a "interrupt" note to its invoking
process group in cooked mode.

bootrc: is now prepared to handle interrupts, mainly to
not accidently spawn a new bootargs prompt.

init: forwards the interrupt to the cpurc/termrc pgrp.

vncs: shields itself from kbdfs notegroup so interrrupt
wont kill the whole vnc session.
2012-11-06 17:19:41 +01:00
iru 2dbc08a8bc Oops, make exponential function work 2012-11-05 15:47:13 -02:00
iru c8ea1cd8d7 Add exponential function. 2012-11-05 15:45:10 -02:00
iru 0c9237e0b4 fplot(1) man page 2012-11-05 15:38:39 -02:00
cinap_lenrek 120412a6a2 wikifmt: fix trailing _ in heading name reference 2012-11-05 03:16:13 +01:00
cinap_lenrek 72679fd6cc add google code wiki formatter aux/wikifmt 2012-11-05 02:39:33 +01:00
cinap_lenrek 4d1f113490 derp(1) spelling (thanks pap) 2012-11-02 22:15:17 +01:00
cinap_lenrek c0c2660f74 add directory-examining recursive compare derp(1) 2012-11-02 20:28:12 +01:00
cinap_lenrek 5cb6be9ce3 hgfs: fix metaheader offset for log 2012-11-02 03:31:55 +01:00
cinap_lenrek ce59d96ee3 hjfs: fix group permissions for /adm and /adm/users for init 2012-11-01 16:34:33 +01:00
cinap_lenrek 4b2a1c104b hgfs: strip metadata header, bogus .n walks 2012-11-01 03:42:24 +01:00
cinap_lenrek 30d54cc055 rio: fix topping a hidden window does not activate the foreground font color 2012-10-30 23:18:53 +01:00
cinap_lenrek 559d2fc835 hgfs: work in progress stuff... 2012-10-29 22:00:38 +01:00
cinap_lenrek 6812f4679b hgfs: more work in progress stuff 2012-10-28 23:18:38 +02:00
cinap_lenrek 90cbdce8ab devdraw: fix stats for #i/winname (thanks jas) 2012-10-27 22:27:19 +02:00
cinap_lenrek 0372073ee8 file: paq, troff, hp pcl, lua, vcard 2012-10-26 16:06:17 +02:00
cinap_lenrek 3184aeeb07 fix permissiosn for upas and telco rc script 2012-10-25 18:51:55 +02:00
cinap_lenrek c4bfecc265 fix permissions for auth/(status enable disable) 2012-10-25 18:25:31 +02:00
cinap_lenrek da759a7fce realemu: fix REP prefix condition 2012-10-25 06:55:41 +02:00
cinap_lenrek e63f13a8de /sys/src/cmd/mk*: add $CLEANFILES to clean and nuke targets 2012-10-25 01:58:43 +02:00
cinap_lenrek 2b430f9932 merge 2012-10-25 01:07:16 +02:00
cinap_lenrek 5741e1ecfd hgfs: add wip debug command 2012-10-25 01:05:39 +02:00
cinap_lenrek cc595b043a libmemlayer: remove pool.h includes (import from sources)
there are no pool calls/data structures used in
libmemlayer so the dependency can be removed.
2012-10-25 00:47:55 +02:00
stanley lieber 907b3902a0 pkg(1): update man page 2012-10-23 18:08:18 -05:00
cinap_lenrek a0b737ad35 create bio file (/adm/keys.who) if it doesnt exist 2012-10-23 08:55:26 +02:00
cinap_lenrek 4fdc7dbe9c fmt: improved version using less memory
functional identical, but uses different data structure.
instead of reading all words into memory, we read and
tokenize on demand keeping a simple linked list of words
to conume by further calls of getword(). once the list
is empty we read the next line, tokenize it and fill the
list up again. so we only need as mutch memory to hold
all the words of the longest line.
2012-10-23 02:08:35 +02:00
cinap_lenrek 22c7584780 devproc: fix another channel leak, move the cclose(c) from proctext() to procopen. 2012-10-22 21:59:52 +02:00
cinap_lenrek 6680d50d4b fix devproc text chan leak 2012-10-22 18:51:19 +02:00
cinap_lenrek 9ea332aac1 merge 2012-10-22 07:11:51 +02:00
cinap_lenrek 99216e0129 rio: fix deadlock
we can't really change the Window *input from
outside the winctl() thread. the problem is
that the window might end up reading the
mouse (scroll, select) which makes the w->cctl
channel block once you try to talk to the
window again (from the mousethread). this also
means we have to coordinate window switchin
from the winctl proc waiting for the current
window to release the input and then take over.
thers a new Winctl message Topped that basically
does that now using Wakeup and a chan to
synchronize.
2012-10-22 07:03:47 +02:00
stanley lieber 761f673032 pkg/list: handle werc directory listings 2012-10-21 21:44:53 -05:00
cinap_lenrek 54d2424a7c rio: fix cursor for sizing nocurrent window
wrepaint() used to also set the cursor for the window
if it was current. this reset the corner cursors on
bandresize when one tried to attempt to size a window
that was not current. make repaint just repaint the
window and border. set cursor explicitely for hold
toggle.
2012-10-21 18:27:43 +02:00
cinap_lenrek bf13408df2 rio: various fixes
use notefd in killprocs() insead of postnote() as the process
might'v exited. the notefd stays valid even if the particular
process it was originaly opend on exited. remove the Window.pid
field as its not needed.

dup() the notefd for interruptproc as the window might'v gone
away and closed the notefd file descriptor, resulting in us
writing to the wrong thing.

use snprint() instead of sprint() for safety.

fix bogus debug fprint().

add missing "visible" flushimage() after Reshaped winctl message
got handled. i assumed wsetname()/nameimage() would be enough,
it but does a invisible flush so softscreen doesnt get updated
immidiately.

do not make allocimage() failure in scrtemps() fatal. it wont
draw the window properly, but it gives the user a chance to
delete some windows to recover.
2012-10-21 17:00:12 +02:00
cinap_lenrek 5374d09d35 /sys/doc: permissions for cleanps, mkdirlist, mkfilelist 2012-10-20 19:09:54 +02:00
cinap_lenrek 8057e48ae1 rio: colors, flicker reduction, refresh after mouse close
allocate all the colors in iconinit(), remove unused ones
like grey. rename darkgrey to paletextcol because thats
what it is used for. new approach to window image allocation.
we allocate the window with DNofill and let the window fill
itself. this reduces flickering especially with (-b) option
and makes rio resize feel a lot faster.

wrefresh() didnt work. now fixed.
2012-10-20 15:51:32 +02:00
cinap_lenrek c33732a530 rio: wtop() after resize fix
wtop() checked w->topped == topped as a fast exit. if you
had the top most window not being current (== input) which
can happen when you delete the current window, then wtop would
after resize would not make the window current because it
is already top topmost one. wtopme() and wcurrent() both are
non-ops when window is already the topmost or window is already
current, so remove the check as its not needed. also topping
the window feels less sluggish.
2012-10-20 10:38:11 +02:00
cinap_lenrek 624c9f5112 rio: preserve window z-order on resize, fix race conditions
sort the window array by w->topped before reshaping all
windows. this preserves the window z-order.

remove implicit focus change on reshape/move. it called
wcurrent() in wtcl thread which might send a wctl message
to itself, bad... also we might not want to change focus
on reshape, like for the rio resize. so we set the input
window explicitely in all call sites.

window deletion was racy. wclosewin() destroys w->i, but
it is called outside the wctl thread so it might just
free the image under libframe doing some text selection.
this is fixed the following: add wclunk() function,
which basically just marks the window as deleted and
removes the reference from the window[] and hidden[]
arrays. (called on wclose() when refcount drops to
zero). wclosewin() now just frees the image and is only
called from the wctl thread on exit or when handing
the Deleted message.

get a reference to the window when doing sweeping or
moving as the filesystem might just clunk it under
us and we might end up sending wctl messages to
a Exited window.

wctl resize message has to fail if the window is not
current as it might be hidden... would also be annoying.
2012-10-20 22:42:01 +02:00
cinap_lenrek 558b9558d4 more generic way to deal with image chan conversion for resize/resample/rotate
this is to catch crazy color channels like k8a8 and the 15/16 bit
ones and CMAP. basically, just convert to RGBA32 or RGB24 depending
on if it has an alpha channel.
2012-10-18 20:17:12 +02:00
cinap_lenrek 0a3eb7d6b1 rio: copy window labels for menu3
as the menu is displayed, the window might go away or change its
label causing menuhit() to dereference bad memory. just strdup()
the labels before passing to menu3str to prevent accidents.
2012-10-18 18:51:32 +02:00
cinap_lenrek 3730a4df53 document urlencode in hget(1) 2012-10-18 15:23:40 +02:00
cinap_lenrek 7c3ea4360b hpost: add -l flag to get location url after POST 2012-10-18 14:38:07 +02:00
cinap_lenrek 909efb22c5 /sys/src/cmd/auth/mkfile: fix lib.$O.a race 2012-10-18 03:49:40 +02:00
cinap_lenrek 1ee5cd7425 kernel: mnt cache rework
avoid double entries in the cache for copen() and properly handle
locking so we wont just give up if we cant lock the Mntcache entry,
but drop the cache lock, qlock the Mntcache entry, and then recheck
the cache.

general cleanup (cdev -> ccache, use eqchantdqid())
2012-10-17 15:48:30 +02:00
stanley lieber e51845797b fortunes, rob, rsc, troll: the war is over 2012-10-16 11:21:21 -05:00
cinap_lenrek fcacce0f2f kernel: duppage cleanup
remove the sched() call and retry loop from duppage() and just
drop the page lock, then reacquire it after lock(&palloc).
2012-10-16 16:10:26 +02:00
cinap_lenrek 45b99937be kernel: cachedel() lock order, lookpage, cleanup
the lock order of page.Lock -> palloc.hashlock was
violated in cachedel() which is called from the
pager. change the code to do it in the right oder
to prevent deadlock.

change lookpage to retry on false hit. i assume that
a false hit means:

a) we'r low on memory -> cached page got uncached/reused

b) duppage() got called on the page, meaning theres another
cached copy in the image now.

paging in is expensive compared to the hashtable lookup, so
i think retrying is better.

cleanup fixfault, adding comments.
2012-10-16 14:12:21 +02:00
cinap_lenrek 1335be8276 swap: track swap pages with > 255 references, setswapchan() swapimage.c
swaped pages use a 8bit refcount where as the Page uses a 16bit one.
this might be exploited with having a process having a single page
swaped out and then forking 255 times to make the swap map refcount
overflow and panic the kernel.

this condition is probably very rare. so instead of doubling the
size of the swap map, we add a single 32bit refcount swapalloc.xref
which will keep the combined refcount of all swap map entries who
exceeded 255 references.

zero swapimage.c in setswapchan() after closing it as the stat() call
below might error leaving a dangeling pointer.
2012-10-15 14:04:30 +02:00
cinap_lenrek 2f732e9a85 kernel: attachimage / exec error handling
attachimage()'s approach to handling newseg() error is flawed:

a) the the image is on the hash table, but ref is still 0, and
there is no segment/pages attached to it so nobody is going to
reclaim / putimage() it -> leak

b) calling pexit() would deadlock us because exec has acquired
up->seglock when calling attachimage(), so this would just deadlock.

the fix does the following:

attachimage() will putimage() and nexterror() if newseg() fails
instead of pexit(). this is less surprising.

exec now keeps the condition variable commit which is set once
we are commited / reached the point of no return and check this
variable in the highest waserror() handler and pexit() us there.

this way we have released up all the locks and pexit() will
cleanup.

note: this bug shouldnt us hit in with the current newseg()
implementation as it uses smalloc() which would wait to
satisfy the allocation instead of erroring.
2012-10-14 19:48:46 +02:00
cinap_lenrek fef6ff96ad update fshalt(8) manpage 2012-10-14 13:33:10 +02:00
cinap_lenrek 143fcc0a42 formpost becomes hpost 2012-10-14 06:28:58 +02:00
cinap_lenrek 45c0c41280 urlencode: fix /fd/0 use 2012-10-13 15:35:39 +02:00
stanley lieber 324ab59b08 ircrc(1): man page fixes, thanks pap 2012-10-12 09:17:47 -05:00
stanley lieber 2f83fa7f74 hget(1): fix man page errors, add another example 2012-10-11 22:06:11 -05:00
stanley lieber b786ff0544 add /rc/bin/formpost; add formpost to hget(1) man page 2012-10-11 16:37:48 -05:00
cinap_lenrek 5cddd21627 cifsd: fix 64bit fileoffset bug
the low 32bit word got *sign-extended* on vlong conversion. m(
2012-10-11 21:38:54 +02:00
stanley lieber 05a0570970 ircrc(1): fix error 2012-10-11 11:34:15 -05:00
stanley lieber 1ef8bffd3c add /sys/man/1/ircrc, thanks pap 2012-10-11 11:31:40 -05:00
cinap_lenrek 16d61d3c97 kernel: try to catch some (rare) mistakes
kstrcpy() did not null terminate for < 4 byte buffers. fixed,
but i dont think there is any case where this can happen in
practice.

always set malloctag in kstrdup(), cleanup.

always use ERRMAX bounded kstrcpy() to set up->errstr, q->err
and note[]->msg. paranoia.

instead of silently truncating interface name in netifinit(),
panic the kernel if interface name is too long as this case
is clearly a mistake.

panic kernel when filename is too long for addbootfile() in
devroot. this might happen if your kernel configuration is
messed up.
2012-10-11 17:29:16 +02:00
cinap_lenrek d9394b0d87 6in4: fix exit status, less strict src filtering, logging (import from sources) 2012-10-11 13:21:30 +02:00
cinap_lenrek 73e7e47d5b kenrel: simplify image cache by use of ccloseq() 2012-10-10 08:22:35 +02:00
cinap_lenrek ca9f286b6c vncv: cleanup 2012-10-09 16:22:19 +02:00
cinap_lenrek 6f2ea28817 vncv: fork tcs with RFNOWAIT as we dont collect wait message 2012-10-09 15:26:45 +02:00
cinap_lenrek 3cc39a0ac7 vncv: snarfvers race, silly walks, add -l option for clipboard charset 2012-10-09 15:15:57 +02:00
cinap_lenrek 14817c4991 /sys/lib/acid/kernel: fix imagecache() and procenv() 2012-10-09 03:52:18 +02:00
cinap_lenrek e52677328b merge 2012-10-09 03:23:21 +02:00
cinap_lenrek eb13b7debc /sys/lib/acid/kernel: needacid("chan") 2012-10-09 03:22:28 +02:00
aiju 4048ceedd6 fortunes 2012-10-08 22:14:19 +02:00
stanley lieber 8b24e40e29 netaudit(8): english 2012-10-07 22:06:47 -05:00
cinap_lenrek df66638fb5 netaudit changes and manual page 2012-10-08 00:56:00 +02:00
stanley lieber e598b6dd31 hjfs(8): fix wording 2012-10-07 15:09:04 -05:00
stanley lieber 104c0eaf29 fortunes, rsc, rob: more 2012-10-07 14:40:29 -05:00
stanley lieber c2881f43fb add /sys/man/8/hjfs 2012-10-07 14:39:45 -05:00
cinap_lenrek 54c5131529 /sys/lib/acid/kernel: fix intrcount() 2012-10-07 08:03:02 +02:00
stanley lieber 3049e7036b hjfs(4): fly your flag 2012-10-06 12:27:40 -05:00
stanley lieber f80ac5dd42 fortunes, rob, rsc, theo, troll: updates 2012-10-06 11:56:56 -05:00
cinap_lenrek 83ffc3a1da pc kernel: make imagemem maxsize 10% less of mainmem maxsize 2012-10-06 07:05:08 +02:00
stanley lieber 349abfcd79 add /sys/man/4/hjfs 2012-10-06 03:49:53 +00:00
cinap_lenrek 16a9d6bbd3 tftpfs(4) example typo 2012-10-06 05:14:46 +02:00
cinap_lenrek bac191c407 httpfile(4) section name quoting 2012-10-06 05:13:14 +02:00
cinap_lenrek d21df97764 paint(1) fix bad cross reference 2012-10-06 05:12:07 +02:00
stanley lieber c23d478a25 tftpfs(4): minor corrections 2012-10-05 21:25:55 -05:00
cinap_lenrek 61d1967e74 tftpfs: add manpage, add -x option 2012-10-06 04:14:48 +02:00
cinap_lenrek 5baafe7307 libfis: do not lie about logical sector units 2012-10-06 22:56:05 +02:00
cinap_lenrek 4cfd5cb02e urlencode: encode null bytes 2012-10-05 23:38:43 +02:00
cinap_lenrek 310afb88ef urlencode: fix null byte hexdigit() bug 2012-10-05 23:30:05 +02:00
cinap_lenrek 9ac9a135c8 urlencode: decode + as space 2012-10-05 23:21:17 +02:00
cinap_lenrek 4af5408953 replace urlencode with c version that isnt broken for utf-8 2012-10-05 23:14:23 +02:00
aiju 56df14a6a3 fixed ream code; added megabyte output to df 2012-10-03 18:27:22 +02:00
cinap_lenrek aeb41b90f6 merge 2012-10-03 18:19:17 +02:00
cinap_lenrek 8840830ab8 liblex: fix allprint() definition (from sources) 2012-10-03 18:18:01 +02:00
aiju 0ebd85f72c hjfs: debug-chdeind and sync commands added 2012-10-03 18:10:56 +02:00
cinap_lenrek 76c102e548 apply sources patch cc-cpp-c99-comm
When running "?c -p ...", ensure the backend cpp recognizes C++ comments.

2c(1) states that the compilers recognize // comments, and the bare compilers
do.  But if you invoke the compiler with '-p', the backend cpp process
doesn't handle // comments properly unless you also give ?c the undocumented
'-+' option (which it passes through to cpp).
2012-10-03 18:09:53 +02:00
aiju 87b66bade2 fixed debug-getblk 2012-10-03 18:01:23 +02:00
aiju 20f8378ea1 hjfs debug commands 2012-10-03 17:45:58 +02:00
aiju 2bcaa6be7e fixed potential bug in hjfs 2012-10-03 17:23:17 +02:00
cinap_lenrek 549b4e0225 upas/marshal: fix usage line and add missing flags to manpage 2012-10-02 00:37:17 +02:00
cinap_lenrek 9e7ecc41d5 devproc buffer overflow, strncpy
in devproc status read handler the p->status, p->text and p->user
could overflow the local statbuf buffer as they where copied into
it with code like: memmove(statbuf+someoff, p->text, strlen(p->text)).
now using readstr() which will truncate if the string is too long.

make strncpy() usage consistent, make sure results are always null
terminated.
2012-10-01 02:52:05 +02:00
cinap_lenrek 347ac6ef58 guesscpuhz(), apm suspend
use fastclock timer (pit2) to measure cpufreq in guesscpuhz(). this
gives a bigger period minimizing the danger of overrun as pit2 runs
at the constant maximum period of 0x10000 ticks. also use smaller
loop increments (1000) and bigger maximum loop upper bound.

move the loops < ... check to the bottom of the loop so we get the
effective count *before* adding the next loop increment.

ilock() while doing measurements in guesscpuhz() to prevent accidents
with other processors reading fastclock or doing guesscpuhz()
in parralel.

export new i8253reset() function for apm to reset the timers after
a apm bios suspend.
2012-09-30 19:41:34 +02:00
cinap_lenrek 2204bb7321 ether82557: timeout for ifstats DumpSC command 2012-09-30 16:16:20 +02:00
cinap_lenrek 5d64e428eb fix devproc and killbig segment race
we have to acquire p->seglock before we lock the individual
segments of the process and lock them. if we dont then pexit()
might free the segments before we can lock them causing the
"qunlock called with qlock not held, from ..." prints.
2012-09-30 16:14:27 +02:00
stanley lieber fa08484d47 cpuid(8): fix spelling 2012-09-28 21:49:12 -05:00
cinap_lenrek cd9ac26eb7 cpuid(8) manpage improments 2012-09-29 04:12:42 +02:00
cinap_lenrek 934442ace2 cpuid(8) manpage 2012-09-29 03:57:59 +02:00
cinap_lenrek 67f3dbdaee mothra: fix select boxes in textview 2012-09-28 01:53:14 +02:00
aiju 7a91a85509 fixed hjfs df 2012-09-27 17:08:52 +02:00
aiju 9cec2db619 really renamed statw to df 2012-09-27 16:26:47 +02:00
aiju 38e993c731 renamed statw to df 2012-09-27 16:26:28 +02:00
aiju 196f605e83 trivial mistake 2012-09-27 15:10:03 +02:00
aiju 45f76d6191 hjfs: statw command 2012-09-27 15:06:42 +02:00
stanley lieber 72061412ce fortunes, rob, rsc: updates 2012-09-26 18:52:49 -05:00
cinap_lenrek 37e8a817ea mothra: fix url snarfing 2012-09-26 19:32:34 +02:00
cinap_lenrek 5961379aba mothra: display url is page list if no title is available 2012-09-26 19:21:04 +02:00
cinap_lenrek 8035bb7dd1 mothra: never snarf the "Go:" box 2012-09-26 19:00:50 +02:00
cinap_lenrek 2b7330765a mothra: dont make all images into links (only in mothmode) 2012-09-26 18:28:10 +02:00
cinap_lenrek 03f2668d68 libdraw: enter()/eenter() ^W support - we are getting there 2012-09-26 17:35:21 +02:00
cinap_lenrek d3f93ee1f3 need more coffee 2012-09-26 15:54:25 +02:00
cinap_lenrek aa3dd7fd8f libdraw: fix ^W corner case tick == 0 for enter()/eenter() 2012-09-26 15:48:57 +02:00
cinap_lenrek a77f6553d8 libdraw: implement ^W word delete for enter() and eenter() 2012-09-26 15:31:09 +02:00
cinap_lenrek 01e3e719ed mothra: various improvements
* disallow snarf on password entries
* remove current title label as it is displayed in the page list (redundant)
* avoid redrawing page list just to update the title
* check if the chan changed for backup bitmap in pl_rtdraw()
2012-09-24 01:08:09 +02:00
cinap_lenrek a8a71a36f5 mothra: cache backup bitmap in pl_rtdraw() 2012-09-24 23:32:57 +02:00
cinap_lenrek 8007596779 mothra: forgot to add snarf.c 2012-09-24 22:50:44 +02:00
cinap_lenrek 948d0a1180 mothra: snarf and paste 2012-09-23 20:14:47 +02:00
cinap_lenrek f68d096fb7 mothra: dont highlight subpanels in textview 2012-09-23 12:11:21 +02:00
cinap_lenrek da8dd94a7a mothra: fast (offscreen) alpha drawing on scroll 2012-09-23 04:18:39 +02:00
cinap_lenrek 74cdf2c10a mothra: cleanup textview code 2012-09-23 03:48:29 +02:00
cinap_lenrek bd998b2a78 mothra: text selection 2nd attempt 2012-09-22 19:54:33 +02:00
cinap_lenrek f34ef5a8d4 mothra: first attempt on text selection 2012-09-22 17:46:56 +02:00
cinap_lenrek 9a06f93b71 tftp: prevent it from hanging if ack packets get lost
send ACK reply for duplicate data packets in case our ack response
got lost. make sure packets are in sequence and ignore out of
oder packets (except the ones we'v already acked).
2012-09-20 09:33:40 +02:00
google 9d182f906d Add disk/smart to mkfile 2012-09-20 10:42:17 +12:00
Marko Kostić d5be0c1853 user: Marko Kostić <marko.m.kostic@gmail.com>
branch 'default'
added sys/lib/kbmap/sr (serbian cyrillic kbmap)
added sys/lib/kbmap/sr@latin (serbian latin kbmap)
2012-09-19 23:37:47 +02:00
google 2c4947656f Add manpages for atazz and smart 2012-09-20 22:51:20 +12:00
google 2a9d702506 Add Erik Quanstrom's smart tool for ATA SMART. 2012-09-20 22:42:06 +12:00
google fa7fb8b66b Add Erik Quanstrom's atazz
(needed to disable power management/head unload on 2.5" drive)
2012-09-20 22:39:48 +12:00
cinap_lenrek 913afc39c9 tftpd: apply sstallion's tftpd-rfc patch (from sources)
tftpd option handling is not RFC-compliant. This causes picky
clients (such as curl) to fail transfers.
2012-09-18 18:27:59 +02:00
cinap_lenrek a5756259cf 5l -H7 (elf) support (import from sources) 2012-09-18 18:22:38 +02:00
cinap_lenrek 3ba213a9d7 6c: extern register fix (import from patch/6c-extreg)
to make it easy to use normal libraries (such as libdraw, libsec, and libmp)
with the kernel, which uses extern register, don't stray into the external
register set when allocating values to registers.
2012-09-18 18:18:43 +02:00
cinap_lenrek 36f4f9fcd3 bring kernel acid library in sync (import from sources) 2012-09-18 18:11:16 +02:00
google c3cd4fe746 fix typo. 2012-09-19 21:13:36 +12:00
google 1f7eb17f4b Enable busmastering for SCH (Poulsbo) PATA controller. 2012-09-19 21:07:44 +12:00
cinap_lenrek a31c30564c sdide: make sure bmiba is in i/o port space, not memory 2012-09-16 16:46:28 +02:00
cinap_lenrek 92d3ff8426 rio: single line scroll up/down with holding shift key 2012-09-16 02:49:41 +02:00
cinap_lenrek 5cabb3070c vnc use Breadn() instead of Bread() 2012-09-16 01:47:44 +02:00
cinap_lenrek 9a02104699 hget -P to read postbody from stdin 2012-09-15 07:07:19 +02:00
cinap_lenrek 1d62e1d8c8 usb: dont give up on unassigned pci irq line in hci driver
sometimes, the bios does not assign a interrupt line for pci
devices. this should not be fatal in case of mp ineterrupts
as long as there is intpin or msi can be used.

warn in intrenable() if we hit such a interrupt and set
irq to -1 to prevent it from getting enabled on the pic
or as isa interrupt in apic mode.
2012-09-15 03:17:17 +02:00
cinap_lenrek 336df4d4ae Qcoalesce patch to satisfy full read length 2012-09-14 03:35:15 +02:00
aiju d6e505167c the IRS 2012-09-13 18:44:44 +02:00
cinap_lenrek 8ca0a19825 merge 2012-09-13 09:39:15 +02:00
cinap_lenrek 4590975312 mothra: fix wrong ascent calculation if text element is too large, fix image border layout 2012-09-13 09:37:28 +02:00
stanley lieber 808e622e73 fortunes, rob, troll: the usual 2012-09-12 14:37:56 -05:00
cinap_lenrek 7b3c5d9257 mothra: special parse mode for <script> as parsetag gets confused by long javascript lines 2012-09-11 07:38:11 +02:00
aiju 6479692f56 fortunes! 2012-09-10 18:10:56 +02:00
cinap_lenrek f90682e32e add hungary keyboard map (contributed by bencef) 2012-09-10 11:01:36 +02:00
cinap_lenrek 0a48c1e340 lp: HTML table support 2012-09-10 08:10:30 +02:00
cinap_lenrek 8472086cc6 update manual pages for lp HTML support 2012-09-10 08:01:49 +02:00
cinap_lenrek f6dd4bb5ee lp: handle HTML files with html2ms | troff in process/generic 2012-09-10 07:40:28 +02:00
cinap_lenrek 2fd758bf2a mothra: simpler approach to ignoring <script> tags 2012-09-10 03:09:30 +02:00
cinap_lenrek f57e4ecb01 hgwebfs: remove prefixing // from file path 2012-09-10 22:20:40 +02:00
cinap_lenrek b62042cdeb libaml: store *value* instead of name reference in dest for alias op 2012-09-09 09:06:37 +02:00
cinap_lenrek 6aa1ca35c3 libaml: implement Alias and Debug instructions 2012-09-08 17:48:09 +02:00
google a71b3dff06 Print correct sizes in prep autopart. 2012-09-09 17:37:21 +12:00
google dd1b8df880 Add alignment hints for e512 ATA drives. 2012-09-09 17:22:12 +12:00
cinap_lenrek aead11533e support file:// urls in hgwebfs extension as apparently hg uses them. m( 2012-09-08 01:55:46 +02:00
stanley lieber 72c1608409 fortunes, rob, theo: I wasn't asking about 9front. 2012-09-06 10:52:41 -05:00
cinap_lenrek a064a48e6d nusb: handle 0 csp value on iface, remove unneeded configdev() calls after getdev() 2012-09-06 05:25:23 +02:00
cinap_lenrek 3cdaf6ea5f usbd: add missing quotefmtinstall 2012-09-06 04:07:51 +02:00
cinap_lenrek ee0a0fca5d rdbfs(4), no ^t^t on 9front system 2012-09-06 02:45:15 +02:00
cinap_lenrek 9c18f300a4 devshr: honor noattach 2012-09-06 01:05:37 +02:00
google 577a9f763f Prevent nusb/disk and nusb/kb from blocking nusbrc 2012-09-06 13:15:59 +12:00
cinap_lenrek 93063b3db0 nusbd: properly handle port detach on hub disconnect 2012-09-05 00:06:20 +02:00
cinap_lenrek 0c52215ae3 usb: fix potential isoread overruns, error instead of panic on isoread in ohci 2012-09-03 04:23:02 +02:00
cinap_lenrek cfd25faa28 usb: fix isowrite putsamples race 2012-09-03 01:54:34 +02:00
cinap_lenrek 1be10947ba doom: fix mixbuffer size confusion 2012-09-03 00:24:27 +02:00
cinap_lenrek d32c8fc79a ether82563: fix format string error 2012-09-02 21:57:10 +02:00