Subversion Repositories HelenOS-historic

Rev

Rev 1367 | Rev 1406 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1367 Rev 1392
Line 31... Line 31...
31
#include <thread.h>
31
#include <thread.h>
32
#include <malloc.h>
32
#include <malloc.h>
33
#include <psthread.h>
33
#include <psthread.h>
34
#include <io/stream.h>
34
#include <io/stream.h>
35
#include <ipc/ipc.h>
35
#include <ipc/ipc.h>
-
 
36
#include <async.h>
36
 
37
 
37
void _exit(int status) {
38
void _exit(int status) {
38
    thread_exit(status);
39
    thread_exit(status);
39
}
40
}
40
 
41
 
41
void __main(void) {
42
void __main(void) {
42
    tcb_t *tcb;
43
    psthread_data_t *pt;
43
   
44
 
44
    tcb = __make_tls();
-
 
45
    __tcb_set(tcb);
45
    _async_init();
46
    psthread_setup(tcb);
46
    pt = psthread_setup();
47
    _ipc_init();
47
    __tcb_set(pt->tcb);
48
}
48
}
49
 
49
 
50
void __io_init(void) {
50
void __io_init(void) {
51
    open("stdin", 0);
51
    open("stdin", 0);
52
    open("stdout", 0);
52
    open("stdout", 0);
53
    open("stderr", 0);
53
    open("stderr", 0);
54
}
54
}
55
 
55
 
56
void __exit(void) {
56
void __exit(void) {
57
    tcb_t *tcb;
-
 
58
 
-
 
59
    tcb = __tcb_get();
-
 
60
    psthread_teardown(tcb->pst_data);
57
    psthread_teardown(__tcb_get()->pst_data);
61
    __free_tls(tcb);
-
 
62
    _exit(0);
58
    _exit(0);
63
}
59
}