init_mount.c 1.5 KB
Newer Older
1
/*
M
Mupceet 已提交
2
 * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3 4 5 6 7 8 9 10 11 12 13 14 15
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

M
Mupceet 已提交
16 17 18 19
#include "init_mount.h"

#include <errno.h>
#include <stdbool.h>
20 21 22
#include "fs_manager/fs_manager.h"
#include "init_cmds.h"
#include "init_log.h"
M
Mupceet 已提交
23 24
#include "init_utils.h"
#include "securec.h"
25

X
xionglei6 已提交
26
int MountRequriedPartitions(const Fstab *fstab)
27
{
M
Mupceet 已提交
28
    INIT_ERROR_CHECK(fstab != NULL, return -1, "fstab is NULL");
X
xionglei6 已提交
29
    int rc;
X
xionglei6 已提交
30 31
    INIT_LOGI("Mount required partitions");
    rc = MountAllWithFstab(fstab, 1);
32
    return rc;
X
xionglei6 已提交
33
}
M
Mupceet 已提交
34 35 36 37 38 39 40

Fstab* LoadRequiredFstab(void)
{
    Fstab *fstab = NULL;
    fstab = LoadFstabFromCommandLine();
    if (fstab == NULL) {
        INIT_LOGI("Cannot load fstab from command line, try read from fstab.required");
C
cheng_jinsong 已提交
41
        const char *fstabFile = STARTUP_INIT_UT_PATH"/etc/fstab.required";
L
laiguizhong 已提交
42
        INIT_CHECK(access(fstabFile, F_OK) == 0, fstabFile = "/system/etc/fstab.required");
M
Mupceet 已提交
43 44 45 46 47
        INIT_ERROR_CHECK(access(fstabFile, F_OK) == 0, abort(), "Failed get fstab.required");
        fstab = ReadFstabFromFile(fstabFile, false);
    }
    return fstab;
}