Changeset 860271d4 in mainline
- Timestamp:
- 2008-06-03T15:12:08Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 78d0da8
- Parents:
- 6a7f6b8
- Location:
- uspace/app
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/init/init.c
r6a7f6b8 r860271d4 35 35 */ 36 36 37 #include <stdio.h> 38 #include <unistd.h> 39 #include <vfs/vfs.h> 40 #include <bool.h> 41 #include <errno.h> 42 #include <fcntl.h> 43 #include <task.h> 44 #include <malloc.h> 45 #include "init.h" 37 46 #include "version.h" 38 #include <stdio.h>39 47 40 static void test_console(void) 48 #define BUF_SIZE 150000 49 50 static char *buf; 51 52 static void console_wait(void) 41 53 { 42 int c; 54 while (get_cons_phone() < 0) 55 usleep(50000); // FIXME 56 } 43 57 44 while ((c = getchar()) != EOF) 45 putchar(c); 58 static bool mount_tmpfs(void) 59 { 60 int rc = -1; 61 62 while (rc < 0) { 63 rc = mount("tmpfs", "/", "initrd"); 64 65 switch (rc) { 66 case EOK: 67 printf(NAME ": Root filesystem mounted\n"); 68 break; 69 case EBUSY: 70 printf(NAME ": Root filesystem already mounted\n"); 71 break; 72 case ELIMIT: 73 printf(NAME ": Unable to mount root filesystem\n"); 74 return false; 75 default: 76 sleep(5); // FIXME 77 } 78 } 79 80 return true; 81 } 82 83 static void spawn(char *fname) 84 { 85 printf(NAME ": Spawning %s\n", fname); 86 87 int fd = open(fname, O_RDONLY); 88 if (fd >= 0) { 89 90 ssize_t rd; 91 size_t len = 0; 92 93 // FIXME: cannot do long reads yet 94 do { 95 rd = read(fd, buf + len, 1024); 96 if (rd > 0) 97 len += rd; 98 99 } while (rd > 0); 100 101 if (len > 0) { 102 task_spawn(buf, len); 103 sleep(1); // FIXME 104 } 105 106 close(fd); 107 } 46 108 } 47 109 48 110 int main(int argc, char *argv[]) 49 111 { 112 info_print(); 113 sleep(5); // FIXME 114 115 if (!mount_tmpfs()) { 116 printf(NAME ": Exiting\n"); 117 return -1; 118 } 119 120 buf = malloc(BUF_SIZE); 121 122 // FIXME: spawn("/sbin/pci"); 123 spawn("/sbin/fb"); 124 spawn("/sbin/kbd"); 125 spawn("/sbin/console"); 126 127 console_wait(); 50 128 version_print(); 51 52 printf("This is init\n");53 129 54 test_console(); 55 56 printf("\nBye.\n"); 57 130 spawn("/sbin/fat"); 131 spawn("/sbin/tetris"); 132 // FIXME: spawn("/sbin/tester"); 133 // FIXME: spawn("/sbin/klog"); 134 135 free(buf); 58 136 return 0; 59 137 } … … 61 139 /** @} 62 140 */ 63 -
uspace/app/init/init.h
r6a7f6b8 r860271d4 37 37 #define __INIT_H__ 38 38 39 # include "version.h"39 #define NAME "init" 40 40 41 41 #endif -
uspace/app/init/version.c
r6a7f6b8 r860271d4 36 36 #include <unistd.h> 37 37 #include <stdio.h> 38 #include "init.h" 38 39 #include "version.h" 39 40 … … 52 53 #endif 53 54 55 void info_print(void) 56 { 57 printf(NAME ": HelenOS init\n"); 58 } 59 54 60 /** Print version information. */ 55 61 void version_print(void) -
uspace/app/init/version.h
r6a7f6b8 r860271d4 37 37 #define __VERSION_H__ 38 38 39 extern void info_print(void); 39 40 extern void version_print(void); 40 41 -
uspace/app/tester/devmap/devmap1.c
r6a7f6b8 r860271d4 33 33 #include <async.h> 34 34 #include <errno.h> 35 #include < ../../../srv/devmap/devmap.h>35 #include <ipc/devmap.h> 36 36 #include "../tester.h" 37 37
Note:
See TracChangeset
for help on using the changeset viewer.