-
Cyrill Gorcunov authored
Now threads restortion (and TLS as well) works. Threads test reports the following 2775 (main): Counter value: 3 tls_data = 1 2775 (main): ( 0) fsgs_base 7f9597aa46f0 2775 (main): ( 0) fsgs_base 0 2775 (thr3): Counter value: 4 tls_data = 4 2775 (thr3): ( 0) fsgs_base 42c57940 2775 (thr3): ( 0) fsgs_base 0 2775 (thr2): Counter value: 3 tls_data = 2 2775 (thr2): ( 0) fsgs_base 42456940 2775 (thr2): ( 0) fsgs_base 0 2775 (thr1): Counter value: 4 tls_data = 3 2775 (thr1): ( 0) fsgs_base 40c62940 2775 (thr1): ( 0) fsgs_base 0 2775 (main): Counter value: 4 tls_data = 1 2775 (main): ( 0) fsgs_base 7f9597aa46f0 2775 (main): ( 0) fsgs_base 0 2775 (thr1): Counter value: 5 tls_data = 3 2775 (thr1): ( 0) fsgs_base 40c62940 2775 (thr1): ( 0) fsgs_base 0 as expected. This commits merges all preliminary commits into the final one (sigreturn branch was always experimental and forced update). Still some problems remain: 1) While creating threads with clone() the flags are to be revisited. We use some predefined set here but it's not really correct. 2) No setup of pids in PCB thread zone. 3) No restore of FPU. But at least on some basic tasks restore works well. Signed-off-by:
Cyrill Gorcunov <gorcunov@gmail.com>
1e7bbd35