Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1e94e123 authored by Hung-ying Tyan's avatar Hung-ying Tyan Committed by android-build-merger
Browse files

resolve merge conflicts of 66277db8 to stage-aosp-master am: 23a574a1

am: 2acf4a81

Change-Id: Ib4dc107656666bc1036bcef920ed55c183a9f283
parents 70fbe30c 2acf4a81
Loading
Loading
Loading
Loading
+12 −10
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@
#include <sys/wait.h>
#include <unistd.h>
#include <linux/loop.h>
#include <linux/module.h>
#include <ext4_crypt.h>
#include <ext4_crypt_init_extensions.h>

@@ -45,6 +46,7 @@
#include <fs_mgr.h>
#include <android-base/file.h>
#include <android-base/parseint.h>
#include <android-base/strings.h>
#include <android-base/stringprintf.h>
#include <bootloader_message_writer.h>
#include <cutils/partition_utils.h>
@@ -68,13 +70,13 @@

static const int kTerminateServiceDelayMicroSeconds = 50000;

static int insmod(const char *filename, const char *options) {
static int insmod(const char *filename, const char *options, int flags) {
    int fd = open(filename, O_RDONLY | O_NOFOLLOW | O_CLOEXEC);
    if (fd == -1) {
        ERROR("insmod: open(\"%s\") failed: %s", filename, strerror(errno));
        return -1;
    }
    int rc = syscall(__NR_finit_module, fd, options, 0);
    int rc = syscall(__NR_finit_module, fd, options, flags);
    if (rc == -1) {
        ERROR("finit_module for \"%s\" failed: %s", filename, strerror(errno));
    }
@@ -282,17 +284,17 @@ static int do_ifup(const std::vector<std::string>& args) {
}

static int do_insmod(const std::vector<std::string>& args) {
    std::string options;
    int flags = 0;
    auto it = args.begin() + 1;

    if (args.size() > 2) {
        options += args[2];
        for (std::size_t i = 3; i < args.size(); ++i) {
            options += ' ';
            options += args[i];
        }
    if (!(*it).compare("-f")) {
        flags = MODULE_INIT_IGNORE_VERMAGIC | MODULE_INIT_IGNORE_MODVERSIONS;
        it++;
    }

    return insmod(args[1].c_str(), options.c_str());
    std::string filename = *it++;
    std::string options = android::base::Join(std::vector<std::string>(it, args.end()), ' ');
    return insmod(filename.c_str(), options.c_str(), flags);
}

static int do_mkdir(const std::vector<std::string>& args) {
+5 −2
Original line number Diff line number Diff line
@@ -281,8 +281,11 @@ hostname <name>
ifup <interface>
   Bring the network interface <interface> online.

insmod <path>
   Install the module at <path>
insmod [-f] <path> [<options>]
   Install the module at <path> with the specified options.
   -f
   Force installation of the module even if the version of the running kernel
   and the version of the kernel for which the module was compiled do not match.

load_all_props
   Loads properties from /system, /vendor, et cetera.