Changes in uspace/app/init/init.c [7c014d1:5f88293] in mainline


Ignore:
File:
1 edited

Legend:

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

    r7c014d1 r5f88293  
    4646#include <macros.h>
    4747#include <str.h>
    48 #include <loc.h>
     48#include <devmap.h>
    4949#include <str_error.h>
    5050#include "init.h"
     
    5353#define ROOT_MOUNT_POINT  "/"
    5454
    55 #define LOCFS_FS_TYPE      "locfs"
    56 #define LOCFS_MOUNT_POINT  "/loc"
     55#define DEVFS_FS_TYPE      "devfs"
     56#define DEVFS_MOUNT_POINT  "/dev"
    5757
    5858#define TMPFS_FS_TYPE      "tmpfs"
     
    6666#define APP_GETTERM  "/app/getterm"
    6767
    68 /** Print banner */
    6968static void info_print(void)
    7069{
     
    7271}
    7372
    74 /** Report mount operation success */
    7573static bool mount_report(const char *desc, const char *mntpt,
    7674    const char *fstype, const char *dev, int rc)
     
    102100}
    103101
    104 /** Mount root filesystem
    105  *
    106  * The operation blocks until the root filesystem
    107  * server is ready for mounting.
    108  *
    109  * @param[in] fstype Root filesystem type.
    110  *
    111  * @return True on success.
    112  * @return False on failure.
    113  *
    114  */
    115102static bool mount_root(const char *fstype)
    116103{
     
    126113}
    127114
    128 /** Mount locfs filesystem
    129  *
    130  * The operation blocks until the locfs filesystem
    131  * server is ready for mounting.
    132  *
    133  * @return True on success.
    134  * @return False on failure.
    135  *
    136  */
    137 static bool mount_locfs(void)
    138 {
    139         int rc = mount(LOCFS_FS_TYPE, LOCFS_MOUNT_POINT, "", "",
     115static bool mount_devfs(void)
     116{
     117        int rc = mount(DEVFS_FS_TYPE, DEVFS_MOUNT_POINT, "", "",
    140118            IPC_FLAG_BLOCKING);
    141         return mount_report("Location service filesystem", LOCFS_MOUNT_POINT,
    142             LOCFS_FS_TYPE, NULL, rc);
     119        return mount_report("Device filesystem", DEVFS_MOUNT_POINT, DEVFS_FS_TYPE,
     120            NULL, rc);
    143121}
    144122
     
    179157        rc = task_wait(id, &texit, &retval);
    180158        if (rc != EOK) {
    181                 printf("%s: Error waiting for %s (%s)\n", NAME, fname,
     159                printf("%s: Error waiting for %s (%s(\n", NAME, fname,
    182160                    str_error(rc));
    183161                return;
     
    196174}
    197175
    198 static void console(const char *isvc, const char *fbsvc)
    199 {
    200         printf("%s: Spawning %s %s %s\n", NAME, SRV_CONSOLE, isvc, fbsvc);
    201        
    202         /* Wait for the input service to be ready */
    203         service_id_t service_id;
    204         int rc = loc_service_get_id(isvc, &service_id, IPC_FLAG_BLOCKING);
    205         if (rc != EOK) {
    206                 printf("%s: Error waiting on %s (%s)\n", NAME, isvc,
    207                     str_error(rc));
    208                 return;
    209         }
    210        
    211         /* Wait for the framebuffer service to be ready */
    212         rc = loc_service_get_id(fbsvc, &service_id, IPC_FLAG_BLOCKING);
    213         if (rc != EOK) {
    214                 printf("%s: Error waiting on %s (%s)\n", NAME, fbsvc,
    215                     str_error(rc));
    216                 return;
    217         }
    218        
    219         rc = task_spawnl(NULL, SRV_CONSOLE, SRV_CONSOLE, isvc, fbsvc, NULL);
    220         if (rc != EOK) {
    221                 printf("%s: Error spawning %s %s %s (%s)\n", NAME, SRV_CONSOLE,
    222                     isvc, fbsvc, str_error(rc));
    223         }
    224 }
    225 
    226 static void getterm(const char *svc, const char *app, bool wmsg)
    227 {
    228         char term[LOC_NAME_MAXLEN];
     176static void console(const char *dev)
     177{
     178        printf("%s: Spawning %s %s\n", NAME, SRV_CONSOLE, dev);
     179       
     180        /* Wait for the input device to be ready */
     181        devmap_handle_t handle;
     182        int rc = devmap_device_get_handle(dev, &handle, IPC_FLAG_BLOCKING);
     183        if (rc != EOK) {
     184                printf("%s: Error waiting on %s (%s)\n", NAME, dev,
     185                    str_error(rc));
     186                return;
     187        }
     188       
     189        rc = task_spawnl(NULL, SRV_CONSOLE, SRV_CONSOLE, dev, NULL);
     190        if (rc != EOK) {
     191                printf("%s: Error spawning %s %s (%s)\n", NAME, SRV_CONSOLE,
     192                    dev, str_error(rc));
     193        }
     194}
     195
     196static void getterm(const char *dev, const char *app, bool wmsg)
     197{
     198        char term[DEVMAP_NAME_MAXLEN];
    229199        int rc;
    230200       
    231         snprintf(term, LOC_NAME_MAXLEN, "%s/%s", LOCFS_MOUNT_POINT, svc);
     201        snprintf(term, DEVMAP_NAME_MAXLEN, "%s/%s", DEVFS_MOUNT_POINT, dev);
    232202       
    233203        printf("%s: Spawning %s %s %s\n", NAME, APP_GETTERM, term, app);
    234204       
    235         /* Wait for the terminal service to be ready */
    236         service_id_t service_id;
    237         rc = loc_service_get_id(svc, &service_id, IPC_FLAG_BLOCKING);
     205        /* Wait for the terminal device to be ready */
     206        devmap_handle_t handle;
     207        rc = devmap_device_get_handle(dev, &handle, IPC_FLAG_BLOCKING);
    238208        if (rc != EOK) {
    239209                printf("%s: Error waiting on %s (%s)\n", NAME, term,
     
    287257        }
    288258       
    289         spawn("/srv/locfs");
     259        spawn("/srv/devfs");
    290260        spawn("/srv/taskmon");
    291261       
    292         if (!mount_locfs()) {
     262        if (!mount_devfs()) {
    293263                printf("%s: Exiting\n", NAME);
    294264                return -2;
     
    300270        spawn("/srv/apic");
    301271        spawn("/srv/i8259");
     272        spawn("/srv/fhc");
    302273        spawn("/srv/obio");
    303274        srv_start("/srv/cuda_adb");
    304275        srv_start("/srv/i8042");
    305276        srv_start("/srv/s3c24ser");
     277        srv_start("/srv/adb_ms");
     278        srv_start("/srv/char_ms");
    306279        srv_start("/srv/s3c24ts");
    307280       
    308281        spawn("/srv/fb");
    309282        spawn("/srv/input");
    310         console("hid/input", "hid/fb0");
     283        console("hid_in/input");
    311284       
    312285        spawn("/srv/clip");
     
    324297       
    325298#ifdef CONFIG_MOUNT_DATA
    326         /* Make sure fat is running. */
    327         if (str_cmp(STRING(RDFMT), "fat") != 0) {
    328                 srv_start("/srv/fat");
    329         }
    330299        mount_data();
    331300#else
Note: See TracChangeset for help on using the changeset viewer.