Giacomo Tesio
4f97f4a80b
qa: disable broken tests
2017-06-05 22:11:36 +02:00
Giacomo Tesio
87de13f1e0
kernel: mmuptpcheck: use less global memory
2017-05-31 01:10:18 +02:00
Giacomo Tesio
7108477c32
kernel: simplify mmuput
2017-05-30 22:41:44 +02:00
Giacomo Tesio
28c426055d
libposix: fix disposition for signals that are ignored by default
2017-05-30 01:15:25 +02:00
Giacomo Tesio
6bd285bdaa
libposix: fix SIGCLD disposition; use PosixSIGCHLD to identify the signal when SIGCHLD == SIGCLD
2017-05-30 00:49:28 +02:00
Giacomo Tesio
c45cffeaf5
cmd: fix ancient bug on consolefs flush
2017-05-30 00:11:34 +02:00
Giacomo Tesio
e525113266
libposix: cleanups
2017-05-29 23:27:30 +02:00
Giacomo Tesio
d1e285f721
libposix: honor SIG_IGN by doing nothing (DRAFT)
2017-05-29 02:04:48 +02:00
Giacomo Tesio
f6d44667f2
libposix: fix bind #p and POSIX_kill sigrtmin/sigrtmax usage
2017-05-29 01:11:07 +02:00
Giacomo Tesio
40ccb89835
libc: simplify Waitmsg
2017-05-26 01:55:09 +02:00
Giacomo Tesio
ac9969dadd
libposix: fix signals when no realtime signal is supported
2017-05-26 00:27:48 +02:00
Giacomo Tesio
abfc6958d6
libposix: build again
2017-05-25 22:42:20 +02:00
Giacomo Tesio
a59b992ed4
libposix: more code for signals
2017-05-25 01:04:53 +02:00
Giacomo Tesio
68bc46fe85
libposix: initial changes to POSIX_kill
2017-05-24 00:40:28 +02:00
Giacomo Tesio
3381f75d03
libposix: fix typo
2017-05-24 00:08:00 +02:00
Giacomo Tesio
3307c1e7e2
libposix: drafted Child structure
2017-05-24 00:04:30 +02:00
Giacomo Tesio
e0610f6b71
libposix: drafted SIGCHLD management
2017-05-23 00:27:50 +02:00
Giacomo Tesio
c27b2aa93b
kern: remove unused l64acidt.S
2017-05-22 00:45:03 +02:00
Giacomo Tesio
cc595c7c99
kernel: save and restore all registers on syscall
2017-05-21 00:15:51 +02:00
Giacomo Tesio
4b7957a28f
kernel: simplify init code
2017-05-20 14:06:26 +02:00
Giacomo Tesio
aedc31e925
libstdio: fix uninitialized variables
2017-05-19 01:33:09 +02:00
Giacomo Tesio
3b4af1e4d8
gcc: enable -O2 compilation
...
To enable -O2 compilation we have to disable some optimizations:
- strict-aliasing (TODO: introduce required unions to enable this)
- aggressive-loop-optimizations
- array-bounds
Affected builds are
- sys/src/cmd/dossrv/build.json
- sys/src/cmd/ip/build.json
- sys/src/lib/authsrv/build.json
- sys/src/lib/memdraw/build.json
2017-05-19 01:15:34 +02:00
Giacomo Tesio
901962f6c9
cmds: avoid duplicated compilation of ip tools
2017-05-19 00:54:23 +02:00
Giacomo Tesio
22d90985a5
kernel: awake() wake up only truly blocking syscalls
...
If a syscall did not entered sleep(), the pendingWakeup is not consumed.
2017-05-17 02:04:08 +02:00
Giacomo Tesio
1dc8991331
kernel: reset and restore up->cursyscall in trap
...
This way sleep() knows that it should not interrupt the process
to serve awake().
Also rename Proc.insyscall to Proc.inkernel since that's the meaning
of the flag, which is only read to serve awake()'s mechanics and
to accounttime(). Indeed faultAmd64 was setting insyscall to 1.
2017-05-17 01:16:49 +02:00
Giacomo Tesio
2b1baf8de1
kernel: devpipe: fix error management on writes
...
The "write on closed pipe" note should be posted only
if the write occurred on a closed pipe.
Before this fix, on any interrupt caused the note to be sent,
despite the pipe being open and fully working.
2017-05-17 00:27:57 +02:00
Giacomo Tesio
031201a1ac
kernel: reset process wakeups on exec
2017-05-15 00:35:22 +02:00
Giacomo Tesio
f9b2e9aba4
kernel: generalize awake
...
Awake can now interrupt several blocking syscalls (even
during note handling).
Among others, it can interrupt await, pread and pwrite.
It cannot interrupt several others for different reasons:
- awake cannot be interrupted by awake;
- syscalls like remove and create can be used for kernel comunication
and it would be hard to know if the effect occurred in the
receiving fs if they were interrupted;
- other syscalls do not need awake since they just provide access
to kernel infos (eg seek or fd2path)
NOTE: awakes registered before a note cannot occur during the note
handling and will be deferred till the next call to noted.
2017-05-15 00:05:59 +02:00
Giacomo Tesio
79f8204766
kern: move tsemaquire to userspace (given a generalized awake)
2017-05-12 11:13:19 +02:00
Giacomo Tesio
46664994d4
libposix: fix usleep
2017-05-12 11:13:08 +02:00
Giacomo Tesio
aa4172a1de
libposix: document timers
2017-05-08 23:46:19 +02:00
Giacomo Tesio
a3791c88f7
libposix: add usleep
2017-05-08 23:45:46 +02:00
Giacomo Tesio
d62ca1162f
Merge branch 'libposix-new-signals' of https://bitbucket.org/tesio/jehanne into libposix-new-signals
2017-05-08 22:54:34 +02:00
Giacomo Tesio
edc116ef45
libposix: documented new signal machinery
2017-05-08 00:43:35 +02:00
Giacomo Tesio
333d5dcbcd
Merge branch 'master' into libposix-new-signals
2017-05-07 19:44:47 +02:00
Giacomo Tesio
b08218529d
devproc: can't wait for up to stop
2017-05-06 16:03:16 +02:00
Giacomo Tesio
8d5eb5914f
libposix: fix default_signal_disposition
2017-05-06 13:33:08 +02:00
Giacomo Tesio
da0381a213
libposix: big refactor of signal handling
2017-05-05 19:01:18 +02:00
Giacomo Tesio
d29859684b
libposix: complete POSIX_signal_execute
2017-05-03 03:02:56 +02:00
Giacomo Tesio
bd5063666f
libposix: introduce POSIX_signal_execute and PosixSignalDisposition enum
2017-05-03 01:14:53 +02:00
Giacomo Tesio
cf974abe0e
libposix: (almost working) waitpid
2017-05-02 00:57:18 +02:00
Giacomo Tesio
8c33c921b4
libposix: draft waitpid (still broken)
2017-05-01 23:57:05 +02:00
Giacomo Tesio
14934ee51f
libposix: sleep and pipe
2017-04-30 16:49:50 +02:00
Giacomo Tesio
3707eaece6
libposix: simplify kill
2017-04-30 16:49:01 +02:00
Giacomo Tesio
ac33157c37
kern: usbehcipc.c fix CID 155940: Out-of-bounds write
2017-04-25 16:07:47 +02:00
Giacomo Tesio
80a8501c05
kern/ip/gre: fix CID 156224: Uninitialized scalar variable
2017-04-25 15:53:20 +02:00
Giacomo Tesio
ea6f34f4f7
kern: mark pexit() as noreturn
...
Since pexit() calls sched() it wont return to the caller.
Should fix
- CID 155655: Missing break in switch
- CID 155672: Missing break in switch
2017-04-24 09:55:45 +02:00
Giacomo Tesio
c2204d83a5
libposix: getppid
2017-04-22 00:40:39 +02:00
Giacomo Tesio
a1b4085b7b
libc: keep __libc_init weak definition private
2017-04-21 23:58:06 +02:00
Giacomo Tesio
4142b70d32
libposix: allow custom translations of exit status
2017-04-21 23:56:43 +02:00