Changes in uspace/app/init/init.c [1bbc6dc:e229148] in mainline


Ignore:
File:
1 edited

Legend:

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

    r1bbc6dc re229148  
    11/*
    2  * Copyright (c) 2024 Jiri Svoboda
    32 * Copyright (c) 2005 Martin Decky
    43 * All rights reserved.
     
    3635
    3736#include <fibril.h>
    38 #include <futil.h>
    3937#include <stdio.h>
    4038#include <stdarg.h>
     
    8078static const char *sys_dirs[] = {
    8179        "/w/cfg",
    82         "/w/data",
    83         NULL,
     80        "/w/data"
    8481};
    8582
     
    354351        vol_info_t vinfo;
    355352        volume_id_t *volume_ids = NULL;
    356         service_id_t *part_ids = NULL;
    357         vol_part_info_t pinfo;
    358353        size_t nvols;
    359         size_t nparts;
    360         bool sv_mounted;
    361354        size_t i;
    362355        errno_t rc;
     
    392385        }
    393386
     387        vol_destroy(vol);
    394388        free(volume_ids);
    395         volume_ids = NULL;
    396389
    397390        if (!found_cfg) {
     
    404397                                printf("%s: Error creating directory '%s'.\n",
    405398                                    NAME, *cp);
    406                                 goto error;
     399                                return rc;
    407400                        }
    408401
    409402                        ++cp;
    410403                }
    411 
    412                 /* Copy initial configuration files */
    413                 rc = futil_rcopy_contents("/cfg", "/w/cfg");
    414                 if (rc != EOK)
    415                         goto error;
    416404        } else {
    417405                printf("%s: System volume is configured.\n", NAME);
    418 
    419                 /* Wait until system volume is mounted */
    420                 sv_mounted = false;
    421 
    422                 while (true) {
    423                         rc = vol_get_parts(vol, &part_ids, &nparts);
    424                         if (rc != EOK) {
    425                                 printf("Error getting list of volumes.\n");
    426                                 goto error;
    427                         }
    428 
    429                         for (i = 0; i < nparts; i++) {
    430                                 rc = vol_part_info(vol, part_ids[i], &pinfo);
    431                                 if (rc != EOK) {
    432                                         printf("Error getting partition "
    433                                             "information.\n");
    434                                         rc = EIO;
    435                                         goto error;
    436                                 }
    437 
    438                                 if (str_cmp(pinfo.cur_mp, "/w") == 0) {
    439                                         sv_mounted = true;
    440                                         break;
    441                                 }
    442                         }
    443 
    444                         if (sv_mounted)
    445                                 break;
    446 
    447                         free(part_ids);
    448                         part_ids = NULL;
    449 
    450                         fibril_sleep(1);
    451                         printf("Sleeping(1) for system volume.\n");
    452                 }
    453         }
    454 
    455         vol_destroy(vol);
     406        }
     407
    456408        return EOK;
    457409error:
     
    459411        if (volume_ids != NULL)
    460412                free(volume_ids);
    461         if (part_ids != NULL)
    462                 free(part_ids);
    463413
    464414        return rc;
     
    488438        srv_start("/srv/klog");
    489439        srv_start("/srv/fs/locfs");
     440        srv_start("/srv/taskmon");
    490441
    491442        if (!mount_locfs()) {
     
    503454        srv_start("/srv/volsrv");
    504455
    505         init_sysvol();
    506 
    507         srv_start("/srv/taskmon");
    508 
    509456        srv_start("/srv/net/loopip");
    510457        srv_start("/srv/net/ethip");
    511         srv_start("/srv/net/dhcp");
    512458        srv_start("/srv/net/inetsrv");
    513459        srv_start("/srv/net/tcp");
    514460        srv_start("/srv/net/udp");
    515461        srv_start("/srv/net/dnsrsrv");
     462        srv_start("/srv/net/dhcp");
     463        srv_start("/srv/net/nconfsrv");
    516464
    517465        srv_start("/srv/clipboard");
     
    521469        srv_start("/srv/hid/output", HID_OUTPUT);
    522470        srv_start("/srv/audio/hound");
     471
     472        init_sysvol();
    523473
    524474#ifdef CONFIG_WINSYS
Note: See TracChangeset for help on using the changeset viewer.