Commit graph

4011 commits

Author SHA1 Message Date
cinap_lenrek
76ee4c3988 usbd: set device info for control file (see usb(3), thanks qeed) 2015-05-18 01:26:29 +02:00
cinap_lenrek
c8c65f183d merge 2015-05-18 00:32:19 +02:00
cinap_lenrek
8183f0ec85 cdproto: /sys/log/pop3 2015-05-18 00:29:12 +02:00
stanley lieber
86f22d3c08 colors(1), who(1): add missing SOURCE entries 2015-05-17 12:53:05 -04:00
cinap_lenrek
dfdc52ea7a libc: use Runemax instead of hardcoded 0x65536 for fmtchar check (thanks qrstuv) 2015-05-17 07:02:44 +02:00
cinap_lenrek
bf74dfbc7a kbdfs: Runemax is inclusive. 2015-05-17 06:59:09 +02:00
stanley lieber
45384b0026 fortunes: What's wrong with the obvious? 2015-05-15 21:08:37 -04:00
cinap_lenrek
0d701b7759 gunzip: the extra length field (XLEN) is two bytes instead of one
example file:
https://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R50f.tgz
2015-05-15 07:53:22 +02:00
cinap_lenrek
21f97338f8 tcp: fix loopback slowness issue / set tcb->mss for incoming connections (thanks David du Colombier)
David du Colombier wrote:
> The slowness issue only appears on the loopback, because
> it provides a 16384 MTU.
>
> There is an old bug in the Plan 9 TCP stack, were the TCP
> MSS doesn't take account the MTU for incoming connections.
>
> I originally fixed this issue in January 2015 for the Plan 9
> port on Google Compute Engine. On GCE, there is an unusual
> 1460 MTU.
>
> The Plan 9 TCP stack defines a default 1460 MSS corresponding
> to a 1500 MTU. Then, the MSS is fixed according to the MTU
> for outgoing connections, but not incoming connections.
>
> On GCE, this issue leads to IP fragmentation, but GCE didn't
> handle IP fragmentation properly, so the connections
> were dropped.
>
> On the loopback medium, I suppose this is the opposite issue.
> Since the TCP stack didn't fix the MSS in the incoming
> connection, the programs sent multiple small 1500 bytes
> IP packets instead of large 16384 IP packets, but I don't
> know why it leads to such a slowdown.
2015-05-14 21:09:12 +02:00
Matthew Veety
2b4a488762 fixed by fuck up 2015-05-13 00:15:18 -04:00
Matthew Veety
80845af98b removed ukill. 2015-05-13 00:11:59 -04:00
cinap_lenrek
aa0a20ed6e boot/zynq: use ./boothead.$cputype to invoke helper 2015-05-13 04:22:21 +02:00
cinap_lenrek
2d564a5004 boot/zynq: add jtagload utility 2015-05-13 04:12:49 +02:00
cinap_lenrek
d57f23fb87 boot/zynq: implement sdmmc boot (fat) 2015-05-13 01:07:35 +02:00
stanley lieber
bc4f14e015 fortunes: Feature requests will be ignored. 2015-05-11 11:52:44 -04:00
cinap_lenrek
fb9a4ac610 emmc/pmmc: make all symbols static 2015-05-11 05:27:05 +02:00
cinap_lenrek
646062da1c kernel: state errstr.h dependency for proc.acid target (fixes acid kinit() on cleaned kernel source tree) 2015-05-11 05:09:31 +02:00
cinap_lenrek
4bfd4122d9 nusb/serial: recognize aijuboard jtag interface 2015-05-11 02:34:54 +02:00
cinap_lenrek
5275d49d8f webfs: fix proxy authentication 2015-05-10 07:46:53 +02:00
cinap_lenrek
0da5888901 realemu: ignore access to CMOS/RTC address/data registers
the kernel wont allow access to i/o ports 0x70/0x71, so
ignore the access. reads return 0xFF. this fixes vesa on
lenovo e540.
2015-05-09 07:50:05 +02:00
stanley lieber
4547b5070c passwd(1): passwd no longer needs to be run on a terminal; netkey is more stubborn. 2015-05-03 17:37:54 -04:00
stanley lieber
bafadebc19 audio(1): explain mp3enc wants raw data in the opposite byte order to /dev/audio (thanks, eekee) 2015-05-01 14:03:29 -04:00
stanley lieber
14ebbcb75b audio(1): fix example 2015-05-01 12:05:30 -04:00
cinap_lenrek
35c9648ee1 pass Ureg* argument to note handler in R0 register on arm
userspace note handlers, like any function, expect ther
first argument in R0 register on arm.
2015-04-30 16:29:40 +02:00
cinap_lenrek
12bb7bcfff libsec: remove aesCTRencrypt()/aesCTRdecrypt() (thanks mischief and qrstuv)
as mischief and qrstuv point out, these functions are not very usefull
and are even implemented wrong (incrementCTR()), so deleting the code.
2015-04-29 02:58:10 +02:00
cinap_lenrek
e9c9ea4235 sam: don't make scroll-wheel-up change focus (thanks clsmith) 2015-04-28 19:32:21 +02:00
cinap_lenrek
da689241d0 sam: prevent array overflow with multiple -i and -a arguments (thanks clsmith) 2015-04-28 19:30:52 +02:00
cinap_lenrek
e20d7c4aad etheriwl: make rxon() static (thanks aap) 2015-04-27 21:32:17 +02:00
cinap_lenrek
64849ab5f3 etheriwl: check the bluetooth co-existance errors (thanks qeed) 2015-04-26 18:02:49 +02:00
cinap_lenrek
e10287042e etheriwl: support for Centrino Wireless-N 2230 from freebsd driver (thanks qeed)
big thanks to qeed for porting support for Wireless-N 2230 from
freebsd driver!
2015-04-24 04:13:19 +02:00
cinap_lenrek
99718a581b bzfs: handle erealloc(..., 0) 2015-04-23 18:40:00 +02:00
cinap_lenrek
a645a2f83d lib9p: handle erealloc9p(..., 0) 2015-04-23 18:25:19 +02:00
cinap_lenrek
4e7efadf12 hjfs: fix erealloc(..., 0) crash when removing member from group array makes it empty (thanks 9dan) 2015-04-23 18:19:48 +02:00
cinap_lenrek
c1ff805e23 cc: fix non constant pointer initializer for other compilers than 8c/6c
i made a mistake here as this change breaks the arm and mips compilers
which lack an optimiation in xcom() that folds constant pointer arithmetic
into the offset. on arm, the a node is a complex expression with op OADD of
type TIND but the test rejected the (valid) pointer arithmetic.

instead, we now test for the operations which cannot be constant instead
of using the type as a proxy.
2015-04-23 05:12:57 +02:00
cinap_lenrek
7f0728b7f4 aux/listen: removing service script sholud kill listener (thanks mischief)
mischief spotted that the only way for listeners to go away was
truncating (but not removing) a service script. this is wrong and
not as described in the manpage.

this change makes removing (or truncating) a listen script stop
the listener.

scandir() first marks all current announces, then reads the service
directory adding announces which will clear the marks for the ones
already there or add a new unmarked one. finally, we shoot down and
remove all still marked announces.
2015-04-23 03:17:25 +02:00
cinap_lenrek
8cb7211a42 secstore(1): add DIAGNOSTICS section 2015-04-22 20:18:11 +02:00
cinap_lenrek
07faf720c9 secstore: don't print errors for dial() and readnvram() when not in verbose mode
when no secstore server has been configured or no nvram is
setup, exit silently with error status.
2015-04-22 20:08:50 +02:00
cinap_lenrek
fd80dde429 hjfs: preserve newlines in commit message (thanks BurnZeZ) 2015-04-22 19:54:13 +02:00
cinap_lenrek
81cbff917f gs: avoid 6c type propagation / constant folding issue for set_cb_end()
6c changed "- cmd_lagest_size + 1" into a *unsigned* 32bit constant. which
got added to 64bit pointer making pcb->limit > pcb->end resulting
in errors for partial commands in the buffer. removing the parentesis
propagates the operation to 64bit.
2015-04-17 06:18:43 +02:00
cinap_lenrek
57ad566dfc games/doom: fix mips 2015-04-17 22:19:23 +02:00
cinap_lenrek
82a797da70 kernel: leave shared, physical and fixed segments alone in killbig() 2015-04-16 16:30:14 +02:00
cinap_lenrek
ef647a54c0 kernel: cannot interrupt segmentio commands
once we submit a command to segmentio process, we have to wait
for it to complete even if we got interrupted.
2015-04-16 16:07:36 +02:00
cinap_lenrek
39cf6b34e3 kernel: avoid posting note to kernel process in faulterror()
the intend of posting a note to the faulting process is to
interrupt the syscall to give the note handler a chance
to handle it. kernel processes however, have no note handlers
and all the postnote() does is set up->notepending which will
make the next attempt to sleep raise an Eintr[] error. this
is harmless, but usually not what we want.
2015-04-16 15:31:51 +02:00
cinap_lenrek
433b18ec2b cc: catch non constant pointer initializers
char	FOO[] = "abc";	/* ok */
char	*BAR = FOO;		/* ok */
char	*BAZ = BAR;		/* wrong */
2015-04-16 14:32:42 +02:00
cinap_lenrek
3d4fcc6c8a sokoban: fix non constant inializer 2015-04-16 14:29:13 +02:00
cinap_lenrek
bcf54c0bfb kernel: pass segio error string by pointer
there's no need to waste space for a error buffer in the Segio
structure, as the segmentio kproc will be waiting for the next
command after an error and will not overwite it until we issue
another command.
2015-04-16 01:20:30 +02:00
cinap_lenrek
46070c3122 kernel: add segio() function for reading/writing segments
devproc's procctlmemio() did not handle physical segment
types correctly, as it assumed it can just kmap() the page
in question and write to it. physical segments however
need to be mapped uncached but kmap() will always map
cached as it assumes normal memory. on some machines with
aliasing memory with different cache attributes
leads to undefined behaviour!

we borrow the code from devsegment and provide a generic
segio() function to read and write user segments which
handles all the cases without using kmap by just spawning
a kproc that attaches the segment that needs to be read
from or written to. fault() will setup the right mmu
attributes for us. it will also properly flush pages for
segments that maintain instruction cache when written.
however, tlb's have to be flushed separately.

segio() is used for devsegment and devproc now, which
also allows for simplification of fixfault() as there is no
special error handling case anymore as fixfault() is now
called from faulting process *only*.

reads from /proc/$pid/mem can now span multiple pages.
2015-04-16 00:45:25 +02:00
cinap_lenrek
88d7d8428a upas/smtp: cleanup mkfile
no need to list headers explicitely as they are implied by $HFILES.
2015-04-15 01:59:17 +02:00
cinap_lenrek
35e1aa1bfa segment: don't store pointers in a long 2015-04-13 23:35:36 +02:00
cinap_lenrek
656dd953a8 segment: fix read/write g->dlen race, avoid copying kernel memory, qlock
code like "return g->dlen;" is wrong as we do not hold the
qlock of the global segment. another process could come in
and override g->dlen making us return the wrong byte count.

avoid copying when we already got a kernel address (kernel memory
is the same on processes) which is the case with bread()/bwrite().
this is the same optimization that devsd does.

also avoid allocating/freeing and copying while holding the qlock.
when we copy to/from user memory, we might fault preventing
others from accessing the segment while fault handling is in
progress.
2015-04-13 23:18:56 +02:00
cinap_lenrek
85e144dcb0 zynq: invalidate cache before booting cpu1
sometimes, machine would crash on boot because
of data cache inconsistency. invalidating the
cache before booting cpu1 fixes it.
2015-04-13 23:04:53 +02:00
cinap_lenrek
a43321946e segment: speed up fixedseg() doing single pass over freelist
walking the freelist for every page is too slow. as we
are freeing a range, we can do a single pass unlinking all
pages in our range and at the end, check if all pages
where freed, if not put the pages that we did free back
and retry, otherwise we'r done.
2015-04-12 18:08:06 +02:00
cinap_lenrek
98a7eae9c0 segment(3): document fixed segment creation 2015-04-12 16:38:39 +02:00
aiju
d9880518f0 merge 2015-04-12 16:16:19 +02:00
cinap_lenrek
a079cd1a3a merge 2015-04-12 16:06:28 +02:00
cinap_lenrek
647a1da108 segment: fix print buffer overflow, map fixed segments uncached, add to zynq kernel 2015-04-12 16:05:05 +02:00
cinap_lenrek
81e6b7e9c9 merge 2015-04-12 22:31:34 +02:00
cinap_lenrek
461c2b68a1 kernel: fixed segment support (for fpga experiments)
fixed segments are continuous in physical memory but
allocated in user pages. unlike shared segments, they
are not allocated on demand but the pages are allocated
on creation time (devsegment). fixed segments are
never swapped out, segfreed or resized and can only be
destroyed as a whole.

the physical base address can be discovered by userspace
reading the ctl file in devsegment.
2015-04-12 22:30:30 +02:00
aiju
e8221d07d8 games/gb: improve sound emulation by modelling analog behaviour 2015-04-12 14:55:25 +02:00
stanley lieber
d009b0013d nintendo(1), qer(8): fix typos 2015-04-11 23:34:25 -04:00
aiju
2a1d369281 games/gb: limit audio range to prevent clipping 2015-04-11 16:07:15 +02:00
stanley lieber
aadbcf0a32 nintendo(1): update for gbc compatability 2015-04-10 18:32:22 -04:00
cinap_lenrek
5951073a57 merge 2015-04-11 22:05:00 +02:00
cinap_lenrek
771cb2a9cb ether82563: work arround bad eeprom checksum for some i218 card (thanks BurnZeZ)
on some machines, the eeprom checksum reads out as 0x3ABA
because of some bios issue. adding a flag for ignoring the
checksum and on i218 controllers.
2015-04-11 22:03:47 +02:00
stanley lieber
61f826d45f mothra(1): replace code.google.com with code.9front.org 2015-04-10 15:00:05 -04:00
cinap_lenrek
74b37c286f bootrc: simplify bootargs splitting avoiding awk 2015-04-09 15:36:20 +02:00
cinap_lenrek
5fd97c7d60 pc, pc64: remove PCICONS debug buffer from pci.c 2015-04-09 14:55:01 +02:00
cinap_lenrek
ca4e12839a pool: avoid triggering assert(b->magic != FREE_MAGIC) in blocksetsize() for mallocalignl()
when we trim the front of a block with freefromfront(),
the block magic of the back was not initialized which
could sometimes trigger the assert in blocksetsize()
to fail. fix is to just move the initialization of the
magic field before the blocksetsize() call.

the second b->magic = UNALLOC_MAGIC isnt really required
but just done for consistency with the trim() code above.
2015-04-08 21:04:10 +02:00
cinap_lenrek
adfb8dff26 nusb/kb: always try to recover on error, fix recover for multi-function devices
when we get an i/o error, always call hdrecover() which
will reset the port and reinitialize the interface of
the calling processes endpoint.

handle the case when we have multi-function device with
multiple reader procs in hdrecover(). the sequence is
as follows:

1) any of the reader procs encounters i/o error and calls hdrecover(),
acquires qlock and initiates port reset.
2) any other readerprocs will now encounter i/o error (due to reset) and also call
hdrecover() but will be waiting on the qlock for reset to complete.
3) first process completes reset and reinitializes its interface with setproto()
and then releases the qlock for the other readers todo the same.
2015-04-08 18:07:16 +02:00
cinap_lenrek
fcd45e0cdd pci: just in case the bios is drunk 2015-04-08 03:46:49 +02:00
cinap_lenrek
b7ceab84d3 pc, pc64: handle 64-bit pci membars
this avoids listing the upper half of 64-bit membars
in Pcidev.mem[] array avoiding potential confusion
in drivers.

we also check if the upper half is programmed to zero
by bios and otherwise zap the entry in Pcidev.mem[]
and print a warning.
2015-04-08 03:34:08 +02:00
cinap_lenrek
fba26da490 pc, pc64: extend initial memory map for qemu multiboot data
qemu puts multiboot data after the end of the kernel image, so
to be able to KADDR() that memory early, we extend the initial
identity mapping by 16K. right now we just got lucky with
the pc kernel as it rounds the map to 4MB pages.
2015-04-08 02:50:09 +02:00
mischief
853823f435 pc: import intel i218 nic changes from 9atom 2015-04-07 11:38:48 -07:00
cinap_lenrek
49fe7b0dd0 kernel: move arrow cursor definition to port/devmouse.c 2015-04-07 22:05:48 +02:00
cinap_lenrek
39c3bc277d sgi: disable graphical arcs console printing on screen modeset
when we switch to graphics mode, we do not want graphical arcs console
to print on the screen anymore as it assumes 8bit color mode and just
messes up the screen on kernel prints.
2015-04-07 22:02:57 +02:00
cinap_lenrek
022856f94e sgi: keyboard, mouse and cursor for indy 2015-04-02 18:35:43 +02:00
aiju
d9af840ca2 games/gb: improved audio code 2015-04-02 15:30:12 +02:00
cinap_lenrek
ec8d0d9e80 merge 2015-04-02 05:31:23 +02:00
aiju
8e588754bc games/gba: fix -3 crash and prevent >100% speed 2015-04-02 22:09:34 +02:00
cinap_lenrek
ba7fbf0114 audiohda: add AMD FCH Azalia Controller (thanks qeed) 2015-04-02 05:30:00 +02:00
aiju
52ab0d1534 games/gb: fix gbc dma 2015-04-01 19:27:52 +02:00
aiju
66c98fab71 games/gb: fix -2/-3 2015-04-01 19:02:03 +02:00
aiju
edfdc4ac07 new games/gb: better emulation and gbc support 2015-04-01 16:17:17 +02:00
cinap_lenrek
0b001e265c ether8169: fix Macv45 2015-04-01 15:22:37 +02:00
cinap_lenrek
0f785af644 ether8169: add 8168GU mac id (thanks qeed) 2015-04-01 14:58:29 +02:00
aiju
86bfd0331d games/c64: writes to I/O area do not affect underlying memory (documentation lied) 2015-04-01 12:49:59 +02:00
cinap_lenrek
2d0088598b devkbd: remove kbdputc() unused definition. 2015-04-01 12:21:11 +02:00
cinap_lenrek
736df3bd6c devkbd: remove unused constants 2015-04-01 12:15:54 +02:00
cinap_lenrek
3b08fd0769 merge 2015-04-01 01:32:37 +02:00
aiju
277185b51d games/gba: remove debugging print 2015-04-01 22:16:52 +02:00
cinap_lenrek
b7ad532993 sgi: very primitive newport graphics driver for indy 2015-04-01 01:31:31 +02:00
cinap_lenrek
ebf85fb7b7 vl: prevent stack altering instructions to be hoisted above loads
fixes bug with libmemdraw where the linker would hoist
the final ADD $const, SP at the end over loads from the
stack causing the front to fall off once a interrupt hits.
2015-04-01 01:30:16 +02:00
cinap_lenrek
1769b00b91 nintendo(1): add SOURCE entry for games/gba 2015-03-30 15:55:50 +02:00
cinap_lenrek
e9e45e17eb sgi: preserve R27 in setregisters(), use setregisters() in noted()
GEVector() saves the exception return PC in Ureg.r27 which needs
to be preserved.

there should be no reason for the user to change the status
register from noted() eigther, so we now just use setregisters()
in noted() to restore previous general purpose registers. this
means that CU1 will always be off after noted() because notify()
has disabled the FPU on entry and set fpstatus to FPinactive
if it was on. once user starts using FPU again, it will trap and
restore fpu registers.
2015-03-30 00:26:33 +02:00
cinap_lenrek
2c9b1c6b53 etherseeq: reset the card when it gets stuck (dma timeouts) 2015-03-30 23:45:09 +02:00
cinap_lenrek
eff2a40c16 merge 2015-03-28 14:12:35 +01:00
cinap_lenrek
feb92fedb1 sgi: new approach for etherseeq
touching transmit descriptors while dma is running causes the
front to fall off. new approach keeps a counter of free
descriptors in the Ring structure that is incremented
by txintr() when transmit completed.

txintr() will clean descriptors once dma has stopped and
restart dma when there are more descrtors in the chain.
2015-03-28 14:11:17 +01:00
aiju
5a34ad16cd games/gba: very subtle timer bug fixed 2015-03-28 10:20:52 +01:00
cinap_lenrek
177cbace73 sgi: work in progress kernel for sgi mips machines (only tested with r5k indy)
this provides basic console support using the ARC bios routines
theu uartarcs driver. and has native seeq ethernet driver which
was written by reading the 2ed devseq driver as i have no
documentation on the hardware. mmu and trap code is based on the
routerboard kernel.
2015-03-28 05:15:40 +01:00
ethan
9fd3e3f239 mothra: remove unused confirmcurs; move confirmcursor up with the other cursors. 2015-03-27 01:57:46 +00:00