Changeset 433131d in mainline for uspace/lib/libc/generic/libc.c
- Timestamp:
- 2009-06-03T19:18:02Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- b78d0bd
- Parents:
- 937aeee
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/libc/generic/libc.c
r937aeee r433131d 28 28 29 29 /** @addtogroup lc Libc 30 * @brief 30 * @brief HelenOS C library 31 31 * @{ 32 32 * @} 33 33 */ 34 34 35 /** @addtogroup libc generic 35 36 * @ingroup lc 36 37 * @{ 37 38 */ 39 38 40 /** @file 39 */ 41 */ 40 42 41 43 #include <libc.h> 44 #include <stdio.h> 42 45 #include <unistd.h> 43 46 #include <malloc.h> … … 45 48 #include <thread.h> 46 49 #include <fibril.h> 47 #include <io/stream.h>48 50 #include <ipc/ipc.h> 49 51 #include <async.h> 50 52 #include <as.h> 51 #include <console.h>52 53 #include <loader/pcb.h> 53 54 … … 64 65 void __main(void *pcb_ptr) 65 66 { 66 fibril_t *f; 67 (void) as_area_create(&_heap, 1, AS_AREA_WRITE | AS_AREA_READ); 68 69 _async_init(); 70 fibril_t *fibril = fibril_setup(); 71 __tcb_set(fibril->tcb); 72 73 /* Save the PCB pointer */ 74 __pcb = (pcb_t *) pcb_ptr; 75 67 76 int argc; 68 77 char **argv; 69 70 (void) as_area_create(&_heap, 1, AS_AREA_WRITE | AS_AREA_READ);71 _async_init();72 f = fibril_setup();73 __tcb_set(f->tcb);74 78 75 /* Save the PCB pointer */76 __pcb = (pcb_t *)pcb_ptr;77 78 79 if (__pcb == NULL) { 79 80 argc = 0; … … 82 83 argc = __pcb->argc; 83 84 argv = __pcb->argv; 85 86 if (__pcb->filc > 0) 87 stdin = fopen_node(__pcb->filv[0], "r"); 88 89 if (__pcb->filc > 1) 90 stdout = fopen_node(__pcb->filv[1], "w"); 91 92 if (__pcb->filc > 2) 93 stderr = fopen_node(__pcb->filv[2], "w"); 84 94 } 85 95 86 96 main(argc, argv); 87 console_flush(); 97 98 if (stdin != NULL) 99 fclose(stdin); 100 101 if (stdout != NULL) 102 fclose(stdout); 103 104 if (stderr != NULL) 105 fclose(stderr); 88 106 } 89 107
Note:
See TracChangeset
for help on using the changeset viewer.