Commit graph

3224 commits

Author SHA1 Message Date
cinap_lenrek c994152a90 ipconfig: fix dhcp watch
in dhcpwatch, the sleep time "secs" could become
zero potentially freezing the lease time.

give up when in Sinit state in dhcpquery() as this
is a terminal state.
2014-05-18 19:20:31 +02:00
stanley lieber 48a644aa31 fortunes: 14:37 -!- kfx was kicked from #suckless by __20h__ [kfx] 2014-05-16 16:31:41 -04:00
cinap_lenrek b3eeb59964 sdiahci: fix (unused) hba reset function (thanks erik quanstro)
from the specification:

software may reset the entire HBA by setting GHC.HR to '1'.
When software sets the GHC.HR bit to '1', the HBA shall perform
an internal reset action. The bit shall be cleared to '0'
by the HBA when the reset is complete.
2014-05-16 21:33:49 +02:00
Matthew Veety eb687adecd added devgpio (thanks Krystian!). Also added getrevision() to vcore which allows you to get the raspberry pi board revision. I kept in the segment that allows direct access to the gpio memory 2014-05-16 10:56:23 -04:00
ftrvxmtrx ead171d29f sam(1): add ctrl+b 2014-05-12 14:49:10 +02:00
ftrvxmtrx 704bd2b513 samterm: fix esc, change ctrl+b behaviour to a more useful one (thanks cinap) 2014-05-12 14:19:22 +02:00
ftrvxmtrx e993ea3e30 samterm: clean up key defines. use ctrl+b as in rio 2014-05-12 12:58:24 +02:00
cinap_lenrek 679b092ee0 htmlfmt: use uhtml for character set conversion 2014-05-12 02:38:53 +02:00
cinap_lenrek 66f76c2821 doom: get rid of floating point code for division 2014-05-11 20:24:27 +02:00
cinap_lenrek 17d932eca9 pc, pc64: add simd error exception name in trap.c 2014-05-11 06:17:13 +02:00
cinap_lenrek a9155014c0 pc, pc64: handle sse simd exceptions 2014-05-11 05:59:10 +02:00
cinap_lenrek edca217bb9 tcs: handle surrogate pairs 2014-05-11 00:54:59 +02:00
cinap_lenrek 7388792a12 tcs: prevent accidents with runes beyond 16-bit 2014-05-11 22:29:47 +02:00
cinap_lenrek 14cd6df332 tcs: fix inplace 16 bit unicode conversion
inplace conversions do not work anymore as
Rune is not unsigned short anymore.
2014-05-10 17:28:17 +02:00
cinap_lenrek 807af1d847 webfs: use mozilla compatible user agent as default
sites like google return the wrong characterset when
they do not recognize the user-agent. so setting default
user agent to something thats likely to pass these
idiotic browser tests.
2014-05-09 18:22:51 +02:00
cinap_lenrek 144c4ab223 abaco: need more stack on amd64 2014-05-09 17:16:34 +02:00
cinap_lenrek 87fd5240f0 remove old copies of kernels l.s from cmd/?a 2014-05-08 18:48:51 +02:00
cinap_lenrek 47d131c088 abaco: remove strange line 2014-05-08 18:41:30 +02:00
ftrvxmtrx 7ea0732c55 tail: fix follow for empty files (thanks cinap_lenrek) 2014-05-08 14:29:44 +02:00
ftrvxmtrx 1c835e370f tail: seek to EOF to check if seekable. fixes tail on /proc files 2014-05-08 12:33:24 +02:00
cinap_lenrek f4f2ff6038 hgfs: avoid revlogupdate() calls when reading root (thanks burnzez)
we do not need to check for revlog updates on every
(directory) read when reading the root. only do it
when reading from the start.
2014-05-08 22:20:26 +02:00
ftrvxmtrx 428cc541f8 sed: remove unused ecmp function 2014-05-07 14:43:11 +02:00
cinap_lenrek 3426459ab5 cc: fix spurious warning on comparsion with scope redeclared variable (thanks aiju)
> warning: a.c:9 useless or misleading comparison: UINT < 0

the error can be observed by compiling the following code
with warnings enabled:

#include <u.h>
#include <libc.h>

uint r;

void
main(int argc, char *argv[])
{
	int r;

	if(r < 0){
		exits(0);
	}
}

the offending code in the compiler is:

-	if(l->op == ONAME && l->sym->type){
-		lt = l->sym->type;
-		if(lt->etype == TARRAY)
-			lt = lt->link;
-	}

compiler handles scope by overwritin and reverting
symbols while parsing. in the ccom phase, the nodes symbol
(n->sym) is not in the right scope and we wrongly think r
is uint instead of int.

it is not clear to me what this code tried to accomplish in
the first place nor could anyone answer me this question.

the risk is small as this change doesnt affect the compiled
program, only the warning, so removing the offending code.
2014-05-06 21:36:28 +02:00
cinap_lenrek 59e53f818d pc64: fix embrassing typo in mmuzap() 2014-05-06 18:59:56 +02:00
cinap_lenrek ff7d68e41a gs: fix /undefined in --setcolor-- errors on amd64 2014-05-05 00:49:26 +02:00
cinap_lenrek 826f4c0daf gs: remove PStorage data type from ttf interpreter
i dont see that pointers are stored in PStorage at all,
so just use PLong directly avoding all this confusion.
2014-05-04 00:17:27 +02:00
cinap_lenrek 9cc9d6113c gs: fix truetype interpreter for amd64 2014-05-04 23:31:59 +02:00
ftrvxmtrx d2c3185bfa fix threadsetname usage in few places 2014-05-03 13:07:52 +02:00
ftrvxmtrx 6f58f7fed4 thread.h: varargck argpos for threadsetname 2014-05-03 12:09:53 +02:00
ftrvxmtrx 462f1d0688 bio.h: add varargck argpos pragma for Berror 2014-05-03 11:46:01 +02:00
ftrvxmtrx 19cdd8c4b9 uniq: document -s option (thanks heaumer) 2014-05-03 11:38:36 +02:00
ftrvxmtrx 306bee92e1 uniq: use Bsize for buffers 2014-05-03 10:48:13 +02:00
cinap_lenrek 4c639475ce cwfs: fix 1GB memsize limitation
the malloc pool allocator is limited in its allocation
size. as almost all data structures in cwfs are never
freed, use brk() in ialloc() instead of mallocalign().
this means memory returned by ialloc() cannot be freed!

to make sure we do not call free by accident, remove
the #define malloc(n) ialloc(n, 0) macro and use ialloc()
directly as in the original code to show the intend
of permanent allocations.
2014-05-03 00:51:45 +02:00
ftrvxmtrx 72e4d850a4 wc: simplify and avoid buffer overflow on long filenames 2014-05-03 23:38:17 +02:00
cinap_lenrek bd3e9e4b7c 1l, 2l, 7l, kl, vl: add missing setmalloctag() dummy in compat.c 2014-05-02 05:17:40 +02:00
ftrvxmtrx f7f3e4780a bio: Brdstr, Bopen: set malloc tag to the caller 2014-05-02 04:27:29 +02:00
cinap_lenrek beb665051b sdide: never timeout or retry scsi commands from the controller driver
this was a big mistake. we should never attempt to
timeout or retry a scsi command from the controller
driver because theres no way to tell how long a
command would take or if a command has side effects
when being retried.
2014-05-02 04:23:21 +02:00
ftrvxmtrx 8fea0399b0 bio: on a second thought, make it one line less 2014-05-02 04:03:35 +02:00
ftrvxmtrx f9b6c4c5a3 bio: do not leak memory if realloc fails 2014-05-02 03:58:38 +02:00
ftrvxmtrx e610c573d7 samterm: free() after getenv() 2014-05-02 03:47:18 +02:00
cinap_lenrek 405de1e6a2 pc64: increase sizes of physical memory bank maps
number of bank slots in Conf.mem[4] was too small
for kenjis machine, set it to maximum 16 (the
size of the RAM map in pc64/memory.c).

also increasing the UPA memory map to 64. the
e820 map on my x200s has 31 entries and many
holes. this gets rid of the "mapfree: ... losing"
messages on boot.
2014-05-01 17:24:50 +02:00
ftrvxmtrx a1ee457ebc leak(1): typo 2014-05-01 13:08:43 +02:00
cinap_lenrek a2d96d47c9 kernel: always reset notepending in eqlock, handle forceclosefgrp in eqlocks 2014-04-29 21:17:07 +02:00
cinap_lenrek b7d8431036 kernel: stop queue bloat before allocating blocks 2014-04-29 21:15:09 +02:00
ftrvxmtrx a2f0fdbfa0 aan(8): fix aanuke synopsis 2014-04-29 23:17:06 +02:00
cinap_lenrek 40b6959788 devmnt: make abandoning fid on botched clunk handle flushes
make mntflushfree() return the original rpc and do the
botched clunk check on the original instead of the
current rpc.

so if we get a botched flush of a clunk, we abandon the
fid of the channel as well.
2014-04-28 06:55:06 +02:00
cinap_lenrek 2c2a71cd51 devmnt: abandon fid on botched Tclunk or Tremove
if theres an error transmitting a Tclunk or Tremove request,
we cannot assume the fid to be clunked. in case this was
a transient error, reusing the fid on further requests
will fail.

as a work arround, we zero the channels fid and allocate
a new fid before the chan is reused.

this is not correct as we essentially leak the fid
on the fileserver, but we will still be able to use
the mount.
2014-04-28 05:59:10 +02:00
cinap_lenrek 219c312163 libip: use snprint() in myetheraddr() to prevent accidents 2014-04-28 02:32:06 +02:00
cinap_lenrek 391198888a 8c, 6c: fix peephole bug for eleminating CMPL $0,R after shift
the shift instructions does not change the zero flag
when the shift count is 0, so we cannot remove the
compare instruction in this case.

this fixes oggdec under 386.
2014-04-28 22:53:50 +02:00
ftrvxmtrx 7b8f4b25be btc mkfile: mkdir -p 2014-04-28 22:39:12 +02:00
ftrvxmtrx 9f2e627ec6 iwl: support another (broken) variant of centrino ultimate-n 6300 2014-04-27 15:12:15 +02:00
ftrvxmtrx c0fada1560 merge 2014-04-26 18:24:39 +02:00
ftrvxmtrx e41893d94f iwl: add Wifi Link 5150 did 2014-04-26 18:22:50 +02:00
cinap_lenrek f3749669ba pmmc: recognize generic mmc controllers (untested) 2014-04-26 18:22:17 +02:00
cinap_lenrek 28f7f3f9d7 tlshand: cleanup 36 -> MD5dlen+SHA1dlen 2014-04-26 18:09:26 +02:00
cinap_lenrek 3b1a0ab1f3 tlshand: fix memory leaks, fix alloc element size for certs pointer array, error handling 2014-04-26 18:04:04 +02:00
glenda c8ac5d7eb7 games/geigerstats: fix usage() to exit; games(1): geigerstats args 2014-04-26 15:08:28 +01:00
ftrvxmtrx 6a905b4560 tr: fix 4-byte runes fix (thanks rsc) 2014-04-26 14:26:40 +02:00
ftrvxmtrx 4468438c70 merge 2014-04-26 13:22:48 +02:00
ftrvxmtrx b4fa1e617b man pages: fix duplicate words 2014-04-26 13:22:15 +02:00
glenda 5e201a7d2e draw(2): fix missing arg of bezspline on page 5 2014-04-26 03:38:07 +01:00
ftrvxmtrx 244bb0038d man pages: the the wich 2014-04-26 01:47:36 +02:00
mischief 3dbc32d794 nusb(4): fix spelling 2014-04-24 20:05:09 -07:00
aiju bfbe480319 games/snes: mode 5/6; overscan fix 2014-04-24 19:22:50 +02:00
cinap_lenrek 0753d7852d revert previous change, i was confused. 2014-04-24 22:02:47 +02:00
cinap_lenrek 634b40fe27 nusb: use ep->addr instead of ep->id in unstall() library function
this is not a bug, but using ep->addr makes the intend more clear.
2014-04-24 22:00:31 +02:00
ftrvxmtrx 70d7f4c32a nusb/rndis: avoid allocation on each transmission
The slack space for outgoing packets set to 44+16 bytes.
2014-04-23 21:20:11 +02:00
cinap_lenrek 41908149de nusb: resolve endpoint id conflict with different input and output types
ftrvxmtrx repots devices that use the endpoint number for
input and output of different types like:

 nusb/ether:             parsedesc endpoint 5[7]  07 05 81 03 08 00 09	# ep1 in intr
 nusb/ether:             parsedesc endpoint 5[7]  07 05 82 02 00 02 00
 nusb/ether:             parsedesc endpoint 5[7]  07 05 01 02 00 02 00	# ep1 out bulk

the previous change tried to work arround this but had the
concequence that only the lastly defined endpoint was
usable.

this change addresses the issue by allowing up to 32 endpoints
per device (16 output + 16 input endpoints) in devusb. the
hci driver will ignore the 4th bit and will only use the
lower 4 bits as endpoint address when talking to the usb
device.

when we encounter a conflict, we map the input endpoint
to the upper id range 16..31 and the output endpoint
to id 0..15 so two distinct endpoints are created.
2014-04-23 20:03:01 +02:00
ftrvxmtrx 07bf5a24ab merge 2014-04-23 23:47:49 +02:00
ftrvxmtrx 645510e5ce boot/nusbrc: add another rndis device 2014-04-23 23:46:00 +02:00
ftrvxmtrx 2ef8c9ed41 nusb: workaround for endpoints with same index but different types
nusb code assumes endpoint numbers are unique.  It's true in general
case, but it becomes false once the direction bit is ignored.  The
commit adds a check so that two endpoints of different types are not
merged into one with Eboth direction.  It does overwrite endpoint
though, so it shouldn't be considered as a full fix.
2014-04-23 23:45:00 +02:00
ftrvxmtrx 99c0abc76d nusb/ether: add RNDIS support (tested on Nexus 5) 2014-04-22 23:34:52 +02:00
stanley lieber 39d6af1c1f fortunes: i was up at 9am, climbed a mountain, hiked 6 km through 4ft deep slush (the image you are supposed to get is of 12 million overturned slurpee cups, and of geting your groin wet in slurpee), nearly died eating beef vindaloo, wrote some code, talked on the phone, wrote mail, and now it's almost 4am and this is absolutely beyond ridiculous. 2014-04-22 11:49:32 -04:00
cinap_lenrek 0f98415f99 wifi: set ether->mbps to highest supported rate of the associated ap 2014-04-21 16:44:38 +02:00
cinap_lenrek 49825fa795 etheriwl: set msb for all rates
the 802.11 spec only specifies the msb of the rate for
Beacon, Probe Response, Association Response, Reassociation Response,
Mesh Peering Open, and Mesh Peering Confirm management frames
...
The MSB of each Supported Rate octet in other
management frame types is ignored by receiving STAs.

this should make no difference but on some netgear ap's not
setting this bit seems to ignore these data rates.
2014-04-21 05:22:17 +02:00
cinap_lenrek 3b87d6114d wifi: first attempt on negotiating data rates
driver sets wifi->rates array to tell wifi layer what
rates it supports. when we receive beacon, we determine
the minimum and maximum data rates and set wn->minrate
and wn->maxrate to point to the entries in wifi->rates.

it is the responsibility of the driver to use this
information on transmit.
2014-04-21 03:43:51 +02:00
cinap_lenrek b94c766fef nusb: dont include <bio.h>, we'r not using it (thanks erik) 2014-04-19 16:18:39 +02:00
cinap_lenrek 8d0e4cf37b wpa support for tcp boot, remove duplicate secstore code from factotum
to run aux/wpa at boot, we need factotum to be running. tho
factotum was started only after the network was configured.

what we do now is start factotum early, not fetching keys
from secstore. once network is available and the auth server
is known, we fetch keys from secstore using auth/secstore in
bootrc.

to pass the authserver for p9 authentication to factotum, we
write it in /net/ndb and the special _authdial() in factotum
will picks it up.

as we are using auth/secstore binary in any case, we remove
the duplicated secstore code from factotum and make it just
exec auth/secstore to fetch the keys on startup (unless -n
or -S is specified).
2014-04-18 20:55:41 +02:00
cinap_lenrek fc15a01d1d kernel: add secstore and wpa to bootfs 2014-04-18 20:44:40 +02:00
cinap_lenrek 6a7ba3d24a secstore: fix wrong "readnvram %r" error status 2014-04-18 20:41:43 +02:00
ftrvxmtrx 9204ed8910 nusb/kb: fix trackpoint on thinkpad usb keyboard
The trackpoint has no subclass, but it's still a pointer device.
Also close the device while we are here.
2014-04-18 16:43:43 +02:00
cinap_lenrek d9ea4a71b9 secstore: fix gfile/pfile/rfile array sizes
need to have one more entry for terminating nil
2014-04-17 18:57:58 +02:00
cinap_lenrek 66aa949039 kernel: fix printing wrong memory sizes in pageinit(), overflowed on amd64 (thanks aram) 2014-04-15 21:34:41 +02:00
cinap_lenrek 75079ab18c vga: add support nVidia 7600GS (and possibly 7950) (from kenji okamoto) 2014-04-15 09:40:41 +02:00
stanley lieber 1c3e6a3e5a aan(8): add HISTORY 2014-04-14 19:09:33 -04:00
stanley lieber 0812a26f00 add /rc/bin/aanuke 2014-04-14 19:05:57 -04:00
cinap_lenrek f02f05ca6a libmach: fix printing of amd64 modrm byte register with rex prefix 2014-04-15 00:37:01 +02:00
cinap_lenrek 81545f346f games/snes: faster scaling
load x-stretched scanline and use image replication bit to let
devdraw do the y-stretching. this reduces slow RGB15 -> display
conversions as devdraw caches small numbers of converted source
scanlines (one in hour case). setting pixels should also be a
bit faster. (only 3 writes instead of 9 for x3 scaling)
2014-04-14 20:44:04 +02:00
cinap_lenrek 96a94c3891 libmemdraw: improve readbyte() and writebyte() routines
remove unused memsetb() routine.

replace foo ? 1 : 0 with foo != 0

avoid double calculation of rgb components in readbyte()

handle byte aligned color components in writebyte()
which lets us avoid the read-modify-write and the shifting.
surprisingly, the branches in the loop are way less important
than avoiding the memory access.

this change makes ganes/snes playable at -3 scaling.
2014-04-12 21:59:52 +02:00
cinap_lenrek a321204a20 icmp: use snprint, add more unreachable error messages (from erik quanstro) 2014-04-12 18:59:16 +02:00
cinap_lenrek d2618d03f5 games/snes: upsample audio to 44100 hz instead of setting audio device frequency
used to set audio device frequency thru /dev/volume tho
only ac97 driver supports this. as a quick work arround,
upsample the 32000 hz audio signal to 44100 hz (without
any interpolation).

move the sample buffer room check from audiosample() into
dspstep() so that when the buffer is full (shouldnt happen),
we wont advance dspstate so samples will not get dropped.
2014-04-12 22:25:26 +02:00
stanley lieber 4ae2015d86 newt: add 'kf' command to grep $home/lib/newsgroups for group names 2014-04-11 13:19:18 -04:00
stanley lieber 44c94fbe07 fortunes: Can somebody please include this in the fortunes database? 2014-04-09 21:19:39 -04:00
cinap_lenrek b7e30ec83d libc: allow announce address of the form #I1/tcp!*!564
we allow protocol path to begin with # for dial, so should
allow this for announce as well. this is primarily usefull
when booting the fileserver to listen on alternate ip stack.
2014-04-09 19:41:25 +02:00
cinap_lenrek aec3d8022a process acpi interrupt source override entries in a 2nd pass over the madt (APIC) table (thanks erik)
according to erik, virtualbox puts the source overrides
before the ioapic entries so the addirq() call fails
as no ioapics have been declared yet. use a second pass
over the table after we processed the apic entries.
2014-04-08 19:35:29 +02:00
cinap_lenrek ae3afb12a0 merge 2014-04-03 09:46:18 +02:00
ftrvxmtrx c3f2448a56 spin(1): fix typo 2014-04-03 23:58:25 +02:00
cinap_lenrek 8515f4ecb7 eqn: fix parallel build (thanks eekee)
dont just mv y.tab.c, this can cause y.tab.c and y.tab.h to
be accidently regenerated breaking parallel build.
2014-04-03 23:20:48 +02:00
cinap_lenrek 7058640179 webfs: do not unescape escape 2014-04-03 09:44:48 +02:00
stanley lieber 95c100a3d6 newt: clean up regexp 2014-04-02 15:49:24 -04:00