Changeset 860271d4 in mainline


Ignore:
Timestamp:
2008-06-03T15:12:08Z (17 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
78d0da8
Parents:
6a7f6b8
Message:

use common devmap.h

Location:
uspace/app
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/init/init.c

    r6a7f6b8 r860271d4  
    3535 */
    3636
     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"
    3746#include "version.h"
    38 #include <stdio.h>
    3947
    40 static void test_console(void)
     48#define BUF_SIZE 150000
     49
     50static char *buf;
     51
     52static void console_wait(void)
    4153{
    42         int c;
     54        while (get_cons_phone() < 0)
     55                usleep(50000);  // FIXME
     56}
    4357
    44         while ((c = getchar()) != EOF)
    45                 putchar(c);
     58static 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
     83static 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        }
    46108}
    47109
    48110int main(int argc, char *argv[])
    49111{
     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();
    50128        version_print();
    51 
    52         printf("This is init\n");
    53129       
    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);
    58136        return 0;
    59137}
     
    61139/** @}
    62140 */
    63 
  • uspace/app/init/init.h

    r6a7f6b8 r860271d4  
    3737#define __INIT_H__
    3838
    39 #include "version.h"
     39#define NAME "init"
    4040
    4141#endif
  • uspace/app/init/version.c

    r6a7f6b8 r860271d4  
    3636#include <unistd.h>
    3737#include <stdio.h>
     38#include "init.h"
    3839#include "version.h"
    3940
     
    5253#endif
    5354
     55void info_print(void)
     56{
     57        printf(NAME ": HelenOS init\n");
     58}
     59
    5460/** Print version information. */
    5561void version_print(void)
  • uspace/app/init/version.h

    r6a7f6b8 r860271d4  
    3737#define __VERSION_H__
    3838
     39extern void info_print(void);
    3940extern void version_print(void);
    4041
  • uspace/app/tester/devmap/devmap1.c

    r6a7f6b8 r860271d4  
    3333#include <async.h>
    3434#include <errno.h>
    35 #include <../../../srv/devmap/devmap.h>
     35#include <ipc/devmap.h>
    3636#include "../tester.h"
    3737
Note: See TracChangeset for help on using the changeset viewer.