Commit graph

2577 commits

Author SHA1 Message Date
cinap_lenrek 6c5deb9b50 pci: fix compiler warning about unused variables 2013-09-09 00:51:36 +02:00
cinap_lenrek 8aff0e5be6 mp/pci: msi support for hypertransport platform 2013-09-09 00:44:08 +02:00
cinap_lenrek 058188117b dossrv(4): remove reference to a:, b:, c:, d: and 9fat: 2013-09-08 20:59:09 +02:00
cinap_lenrek 699ea8bd1f cpu, ratrace, trace: remove unused #include <bio.h> 2013-09-08 20:34:58 +02:00
cinap_lenrek 9fd0b3bad1 md5sum, srv: remove unused #include <bio.h> 2013-09-08 19:52:44 +02:00
cinap_lenrek 9e695e5321 merge 2013-09-08 19:30:27 +02:00
cinap_lenrek eae48ac606 sha1sum: remove unused #include <bio.h> (thanks BurnZeZ) 2013-09-08 19:25:55 +02:00
stanley lieber 8c86eb0079 fortunes: "Not here, not here the darkness, in this twittering world." -- T.S. Eliot 2013-09-07 22:48:28 -04:00
cinap_lenrek b8c0243773 archacpi: make pcibusno() work on non pci bridges (fixes pciaddr()), distribute irqs in setuplink(), remove debug prints 2013-09-08 02:33:25 +02:00
cinap_lenrek 0182cc9db8 acme: avoid useless tagline/window redraw if not needed
window resize is only neccesary if tagline changed.
2013-09-07 20:07:00 +02:00
cinap_lenrek ebf2c5cd69 mk: handle rc blocks in shell quote
this is so we cna handle:

foo = `{echo `{echo bar}}

thanks to erik and friedrich psiorz on 9fans for
bringing the issue up.
2013-09-07 18:42:40 +02:00
cinap_lenrek 12596736e9 libaml: fix formating 2013-09-07 16:22:35 +02:00
cinap_lenrek ad1edf7541 libaml: fix uninitialized variable in getle(), make amleval() work with buildin methods 2013-09-07 16:14:08 +02:00
cinap_lenrek 1b32bd5f0f libaml: use FP->env to access method arguments instead of FP->arg in evalosi() 2013-09-07 14:50:17 +02:00
cinap_lenrek dba77caa35 archacpi: implement amldelay(), remove unused variable in setuplink() 2013-09-07 14:41:08 +02:00
cinap_lenrek cf166c3850 libaml: amldelay(), _OSI(), fix bug in Load() (from plhk's acpi patch)
export amldelay() for microsecond sleeps.

implement _OSI() method.

fix rwreg argument in evalload()
2013-09-07 14:40:24 +02:00
cinap_lenrek 81618e61df libc: set malloctag for runesmprint() 2013-09-06 16:55:13 +02:00
cinap_lenrek 1eb2c757e7 scram: remove amlalloc()/amlfree()
these are now part of libaml but can still be overridden
when needed.
2013-09-06 16:54:02 +02:00
cinap_lenrek 616eb1f9ba archacpi: experimental handling of interrupt link devices, io access 2013-09-06 16:50:43 +02:00
cinap_lenrek 9add5b765f libaml: new io interface, add amlnew()/amltake()/amldrop(), late binding names, FindSetLeftBit/FindSetRightBit
new io interface was added. user defines amlmapio() and amlunmapio() functions
that will fill out Amlio structure with function pointers to read/write
routines for a particular region.

amlnew() function added allowing the creation of aml objects like buffers
or packages. these can be passed to amleval() with b, p or * format.

amltake()/amldrop() exclude an aml object from garbage collection.

on load, names are not always resolvable until the whole table is loaded.
for this, we create n objects that are just name strings. after load, we
recursively traverse the namespace and resolve them (see fixnames()).

the FindSetLeftBit and FindSetRightBit opcodes got implemened.
2013-09-06 16:48:27 +02:00
cinap_lenrek 95fac5e873 libhtml: fix potential linked list corruption
the difficulty is freeing items while parsing because items might already
be linked into various linked lists like in docinfo.images or form.fiels.
so we link images, tables and formfields to the docinfo as the final step
of getitems() pass using the new recursive function linkitems(). as only
reachable items get linked theres no danger of dangeling pointers.
2013-09-05 00:55:58 +02:00
cinap_lenrek cca9a1b523 abaco: fix memory leaks 2013-09-04 21:27:59 +02:00
cinap_lenrek 32236b4957 libhtml: fix memory leaks 2013-09-04 21:27:15 +02:00
cinap_lenrek 425338fd1f webfs: add exits(0) to main() 2013-09-03 21:27:48 +02:00
cinap_lenrek c1562daee0 libhtml: fix double free of form action 2013-09-02 23:18:46 +02:00
cinap_lenrek b14138c2ae 9bootfat: always try plan9 partition even when not marked active, fix bug
always look for 9fat in plan9 partition even tho the partition
is *not* maked active. marking partitions active is not
recommended anymore with grub so this makes life easier for
some people. multiple plan9 partitions on a single drive
is not supported.

have to copy partition table as buf gets trashed when reading
first block of fat partition. it worked only when the first
fat partition found (the one marked active) was the right one,
but conffat() can fail.
2013-09-01 21:18:11 +02:00
ppatience0 243cb68011 jpg(1), jpg: add -y flag to usage
png: colorspace will never be CYCbCr (this is no
doubt from copy-pasting from jpg)

tif: everyone else uses colorspace as a function
argument, so we will too

readtif, writetif: credit paul bourke
2013-08-31 13:39:51 -04:00
cinap_lenrek f104cc9d79 usbehci: portreset timing
assert port reset for 50ms, not 10ms.
2013-08-30 16:00:03 +02:00
mveety f459320bb4 removed unused variable resize in wind.c 2013-08-28 23:05:52 -04:00
mveety ba7c22f781 Added the p9p acme patch the allows multiline tags (thanks rsc and lf94). 2013-08-28 23:01:23 -04:00
cinap_lenrek 12ecb3e568 usbehci: fix portreset.
Port Reset R/W. 1=Port is in Reset. 0=Port is not in Reset. Default = 0. When
software writes a one to this bit (from a zero), the bus reset sequence as defined in the
USB Specification Revision 2.0 is started. Software writes a zero to this bit to terminate
the bus reset sequence. Software must keep this bit at a one long enough to ensure the
reset sequence, as specified in the USB Specification Revision 2.0, completes. Note:
when software writes this bit to a one, it must also write a zero to the Port Enable bit.
Note that when software writes a zero to this bit there may be a delay before the bit
status changes to a zero. The bit status will not read as a zero until after the reset
has completed.
2013-08-27 19:01:41 +02:00
cinap_lenrek d76eccaf88 imap4d: apply djc's patch to fix search (from /n/sources/patch/imap4d-cistrcmp)
Fix SEARCH command in imap4d by replacing the cistrstr typo with cistrcmp.
2013-08-27 00:34:17 +02:00
cinap_lenrek 43d3c87294 devproc: properly handle exclusive refcount for /proc/trace 2013-08-27 23:57:17 +02:00
cinap_lenrek 84109a3159 devshr, devaudio: openmode()/devopen() error handling 2013-08-27 23:27:46 +02:00
cinap_lenrek 52a84514ac devmouse: fix openmode() handling
openmode() can raise error with invalid mode passed, but we already
incremented the exclusive mouse refcount at that point! call openmode()
early to avoid this.
2013-08-27 23:26:30 +02:00
cinap_lenrek 244d2ee84b devkbd: fix wrong refcount on open error
only decrement refcount when file was successfully opend
on clunk, fix refcount when devopen() errors.
2013-08-27 23:23:29 +02:00
cinap_lenrek 5e37e6361c etheriwl: recover from rfkill toggle or firmware crash
spawn a kernel process to check the broken state of the controller.
if the firmware crashed, or rfkill was toggled we will reset and
reboot the firmware. also power down the card when rfkill is off.
2013-08-25 18:50:14 +02:00
ppatience0 334054e0e7 nusb/ether: add aue driver for admtek pegasus usb ethernet adapter 2013-08-24 19:18:15 -04:00
cinap_lenrek 808480f76b usbehci, usbuhci: paranoia
double the td abort delay and make sure the tsleep() isnt
shortened by a pending note. in that case, tsleep() would
raise error(Eintr); immidiately and would not sleep the
requested amount potentially cauing us to release active
dma memory too early! so we wrap the tsleep() call in a
while(waserror()) so we will at least wait the Abortdelay
amount if error is raised.

also, only try to idle the still active td's.

do not copy data in epio() when there was an error, theres
no reason to touch user buffer in that case.

for uhci, we also check that theres not more data in the
buffers than requested to avoid overflowing user buffer
in epio(). this should not happen but we'r paranoid.

for ehci, we also halt the queue head first in aborttds().
mark the queue heads as Qfree after unlinking and remove
some silly nil checks that are impossible.
2013-08-25 22:03:02 +02:00
stanley lieber 1556afae40 2c(1), torrent(1), uhtml(1), kbd(3), cwfs(4), hgfs(4), cifsd(8), cryptsetup(8), hjfs(8), kbdfs(8), realemu(8), wpa(8): fix spelling, typos 2013-08-23 15:48:52 -04:00
stanley lieber eca2dbed8b audio(1), hget(1), nusb(4), page(1): fix spelling, typos 2013-08-23 11:27:30 -04:00
stanley lieber d2ac298a80 webfs(4): read the whole man page before committing corrections 2013-08-23 11:15:52 -04:00
stanley lieber e1dfd6defe webfs(4): fix typo 2013-08-23 11:07:59 -04:00
stanley lieber 4ac8d862c1 webfs(4): correct typo 2013-08-22 17:58:51 -04:00
stanley lieber 89c964d0a4 fortunes: seems that so much is up on the net, it is hard to comprehend it all. 2013-08-22 12:15:29 -04:00
stanley lieber e112160105 file(1): recognize AAC audio files, from sources 2013-08-22 12:14:57 -04:00
cinap_lenrek e5095cca49 wifi: remove pool.h include 2013-08-20 19:48:39 +02:00
cinap_lenrek 9a3a722dde rc: flush environment variables (update /env) before fork
on races... normal forks will all share the /env environment but
not the in memory variables of rc. so when we would normally fork
whoever does an exec (flush) first will override what the values of the
/env variables are, *independent* of the variables that where
actually modified *in* the process.

when we flush *before* fork, then at least both processes start out
with marked clean in memory variables and the processes will flush
only the things they actually change.
2013-08-20 23:56:15 +02:00
cinap_lenrek d8cd5d197d rio: position keyboard window (-k) at the bottom of the screen 2013-08-20 23:48:18 +02:00
cinap_lenrek a0bc81f0be bitsy/keyboard: dont resize our own window
the resizing fails if run with rio in rio. dont try
to be too clever.
2013-08-20 23:36:04 +02:00
cinap_lenrek dda7b2c49f wpa: repeat rsne setup after deassociation (roamng between access points)
the "auth" ctl command only sets the rsne of the current selected
access point. so on deassociation, we wait for the connection to
the potentially new access point and then setup new rsne before
processing eapol messages.
2013-08-19 16:07:07 +02:00
stanley lieber 232dad19ad fortunes: GitHub is down...uh...now what? 2013-08-15 12:12:26 -04:00
cinap_lenrek 3c3a573562 libsec: only send client cert when we have one (fix regression from r6e976b2004dd) 2013-08-15 00:29:42 +02:00
cinap_lenrek c23a2f6a79 libc: Prevent infinite recursion when modf is called with NaN or Inf argument. (apply richard millers / modf-nan patch from sources) 2013-08-14 18:49:45 +02:00
cinap_lenrek 508b53a29a libdraw: fix leftover processes or programs failing to restore window labels when receiving interrupt note
fix the default note handler for event programs. only handle non system
notes or notes in the slave processes. for interrupt in the main process,
just call exits() which will do the cleanup and restore window label
properly.

this makes completely overriding the note handler in gping and
stats uneccesary.
2013-08-13 21:46:13 +02:00
cinap_lenrek df9597ecde resample: fix XRGB32 color channel handling 2013-08-12 19:28:10 +02:00
cinap_lenrek 1b58ec9279 esd: enlightenment sound daemon
this program allows one to stream audio from linux/windows
to plan9 /dev/audio. sometimes handy to augment vnc sessions
with sound.
2013-08-12 03:43:42 +02:00
cinap_lenrek d4f39b35bf games/doom: remove useless allocation of screen[0] buffer
screens 0-3 are already initialized by V_Init().
2013-08-12 00:40:09 +02:00
cinap_lenrek 762093d212 games/juggle, games/catclock: keep up with queued mouse events
many queued mouse events delay eresize() because
new ebread() takes from the queue first before attempting
to read from the event pipe. this is a waste of memory, so
just process (dequeue) all the events as long as there are
any on each iteration.
2013-08-12 00:08:51 +02:00
cinap_lenrek 883ded7b49 catclock: protect black border with clip rectangle and dont print when window is too small 2013-08-12 23:31:53 +02:00
cinap_lenrek 09d3dbc741 ether6105m: increase timeouts for Soekris 5501s (from sources) 2013-08-11 18:32:42 +02:00
cinap_lenrek 5fce388abf create /sys/lib/ssl 2013-08-11 18:23:22 +02:00
cinap_lenrek bf10f672ec vt: fix off by one memory corruption
account for the final 0 byte in host_buf.
2013-08-11 08:34:34 +02:00
cinap_lenrek 09d465a976 libdraw: make ebread() return buffer immidiately if available, cleanup
this reduces number of syscalls and improves performance for vt
2013-08-11 08:31:53 +02:00
cinap_lenrek 62bd2ae8b9 libdraw: fix ekbd() memory leak 2013-08-11 08:22:21 +02:00
cinap_lenrek 4e3a8e41fb tm2sec: assume local timezone when Tm.zone[0] == 0 (fixes dossrv, zipfs timestamps)
from the manual:

Tm2sec converts a broken-down time to seconds since the
start of the epoch.  It ignores wday, and assumes the local
time zone if zone is not GMT.

so we can assume localtime if Tm.zone is not set to GMT.

all code that wants no localtime conversion should set
Tm.zone explicitely to GMT. (see previous commits)

tm2sec() now does the reverse of localtime() when Tm.zone[0] == 0
which seems to be what the calling code (dossrv, zipfs) assumes.
this also makes sense because theres no simple way todo it
outside of libc as theres otherwise no access to the timezone
structure with the daylight saving periods.
2013-08-11 02:19:02 +02:00
cinap_lenrek 9fb29e09ea cifs: fix timezone for timestamps
tm2sec() ignores tm.tzoff and will use the local timezone for
conversion. to make it work right, we convert the dos timestamp
as GMT and then correct timezone with the offset provided by the
server.
2013-08-11 01:36:03 +02:00
cinap_lenrek c7b56cfe58 auth(8) commands: fix uninitialized Tm.zone in getdate() 2013-08-11 23:21:13 +02:00
cinap_lenrek f536320698 TEQ with S bit = 0 would be pointless, so ARM uses this case to encode "miscellaneous"
instructions like BKPT, BX and BLX.  Decoding these correctly allows db/acid to
single step through BX and BLX on armv5t+, and to show a breakpoint instruction
as 'BKPT $#0' instead of 'TEQ R0@>R0,R0'.
2013-08-10 16:40:36 +02:00
cinap_lenrek bfe852b3a2 nusb/kb: *really* only send to mousein when mouse state actually changes (zero detlas, same buttons) 2013-08-10 08:47:43 +02:00
cinap_lenrek 2012ba4d03 revert previous commit... stupid idea 2013-08-10 08:37:13 +02:00
cinap_lenrek f887f71320 nusb/kb: only send to mousein when mouse state actually changes 2013-08-10 07:59:54 +02:00
cinap_lenrek dfe6118e30 rio: fix unused variable warning in wscroll() 2013-08-10 03:58:52 +02:00
cinap_lenrek 66531b005f rio: shorten overlong window labels 2013-08-10 03:54:55 +02:00
cinap_lenrek e71ff9dc18 mothra: log post data with debug flag, increase max token length from 1K to 4K 2013-08-09 18:23:08 +02:00
cinap_lenrek 0e8fecdad5 mothra: fix nil pointer dereference 2013-08-09 17:24:48 +02:00
cinap_lenrek 7c25ff0c11 sam: avoid thread stack overflow with 32bit runes (from sources) 2013-08-08 01:44:20 +02:00
cinap_lenrek a28bdd3e1f cwfs: fix out of order replies
using a shared reply queue and a pool of worker procs does
result in replies to be send out of order under some conditions.
the symptoms are mnt errors when interrupting requests (Rflush
arriving before the original requests response).

this change gives each connection its own reply queue and its
own srvo process. so now a connection consists of one reply
queue, a srvi process reading the connections file descriptor
and a srvo process reading the reply queue and writng replies
to the connections file descriptor.

the srvi processes live as long as the connection is established.
the srvo prcoesses live forever and are attached to the chan
(which gets reused).

to avoid excessive process creation, we limit the number of
connections to 30. srvchan() returns nil when all 30 network
channels are in use.
2013-08-08 01:07:01 +02:00
cinap_lenrek 3663ffeefa cwfs: use atomic compare and swap to avoid semacquire() syscalls in new queue implementation 2013-08-07 01:32:11 +02:00
stanley lieber 2c8f291db2 fortunes: God bless the people who employ you, they need the blessing. 2013-08-06 14:52:13 -04:00
cinap_lenrek 2f3f8d50c1 wikifmt: handle & as &amp; in anchor name, cleanup 2013-08-05 06:25:23 +02:00
cinap_lenrek 98c6d867fd wikifmt: more complete title to name= anchor translation 2013-08-05 06:17:24 +02:00
cinap_lenrek 684cf70857 rio: make sure flush replies are send only *after* the request got flushed or was replied
due to the xfid handlers clearing flushtag too early, xfidflush might respond too early
causing spurious replies send later by the handler. now, we clear the flushtag in
filsysrespond *after* the reply was send. xfidflush will wait for us on the active
qlock.
2013-08-05 04:21:34 +02:00
cinap_lenrek 1df707a0b2 unsticky scrollbars
scrollbars used to put the mouse on the scrollbar while scrolling. if latency
is high, this often results to the cursor jumping back. instead, make button 2
srolling work without needing the mouse to be inside the scrollbar and leave
the mouse position alone.
2013-08-05 00:25:40 +02:00
cinap_lenrek cdc0b89d81 fix this megashit 2013-08-05 22:31:37 +02:00
cinap_lenrek 755108a144 cwfs: remove reflock
queues allow multiple readers, reflock seems unneccesary.
2013-08-05 22:07:50 +02:00
cinap_lenrek e3d9591283 cwfs: faster queue implementation using semacquire() 2013-08-04 06:47:56 +02:00
cinap_lenrek 24349c52b4 rio: add ^B control sequence to move cursor to output point 2013-08-04 06:45:58 +02:00
cinap_lenrek a269ced358 apply richard millers arm debug fixes (from sources)
From richard:

A couple of patches applied yesterday should make debugging on ARM a
bit more reliable.  Using db or acid on ARM, you may have noticed that
a program being debugged would sometimes execute through a breakpoint
without stopping, or run away while being single stepped.  It turns out,
as often happens, that one symptom had two separate causes.  For details:
	/n/sources/patch/applied/5db-condcode/readme
	/n/sources/patch/applied/arm-bkpt-cond/readme

To take advantage of the patches, rebuild libmach.a, then acid and db.
On machines with a kw kernel (sheevaplug et al), you'll also want to
rebuild /arm/9plug; otherwise breakpoints will stop working at all.
The new 9plug will, however, still work with the old libmach; and
the bcm and teg2 kernels are already compatible with the new libmach.
2013-08-04 01:52:46 +02:00
cinap_lenrek 7dee88ec33 dns: ignore spam addresses from cname answers 2013-08-04 00:52:39 +02:00
cinap_lenrek 631ac3d2e2 page: maintain a lru list and do unloading from oldest to newest 2013-08-03 17:37:20 +02:00
cinap_lenrek 79b16616d7 libhtml: handle &apos; character reference
the &apos; is not strickly html, but can appear in xhtml files.
2013-08-03 05:45:40 +02:00
cinap_lenrek 041eb4b30d page: use less aggressive read ahead and keep track of image memory allocation 2013-08-03 04:11:24 +02:00
cinap_lenrek 3904a8357d do not limit kernelpercent IFF *imagemaxmb= is used on a cpu server
the heuristics that limits kernel memory on a cpu server to
a fixed amout (64MB + size for page tables) makes using devdraw
impractical.

if *imagemaxmb= is specified, we can assume that the draw device
will be used so we want to get a reasonable amount (30% default)
of kernel memory.
2013-08-02 17:52:51 +02:00
cinap_lenrek b0a470fa0d smtp: fix -t flag 2013-08-02 01:22:53 +02:00
cinap_lenrek 2353a35dc8 ether82567: determine phy number by probing phy id registers
link status not working on 82567 was due to wrong phy number
used. instead of hardcoding the phy numbers, probe the phys
by reading id1 and id2 registers (code stolen from ethermii).
2013-07-30 22:51:40 +02:00
cinap_lenrek 3b06ca8566 ether82563: make link status work for 82567
on the 82567, reading any phy register just gives 0 back.
however, the card works just fine and no action is required
to (re-)start auto negotiation. so we add maclproc() which just
reads the speed setting and link status from the mac status
register instead of reading the phy registers.

we'v probably seen this symptom on other cards (link: 0) like
82566. we should test if we can make link status work on
these cards as well by just using the maclproc().
2013-07-29 02:32:16 +02:00
cinap_lenrek c23715d268 ether82598, etherigbe: remove receive buffer pool optimization 2013-07-27 12:39:34 +02:00
cinap_lenrek 95b7745419 ether82563: fix mistake (missing buffer alignment) 2013-07-27 10:33:51 +02:00
cinap_lenrek b116a9ad33 ether82563: remove buffer pool optimizations
rx pool exhaustion causes the system to deadlock when netbooted.
queue management should (etheroq) already makes sure the systen
can keep up with the data thowing away buffers.
2013-07-27 09:25:36 +02:00