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

Commit fa8bfcb9 authored by Afshin Arani's avatar Afshin Arani Committed by alexax66
Browse files

a3xelte: add Kernel Commandline Helper



Note: based on Jessec Commit in Exynos8890 Kernel

Signed-off-by: default avatarAfshin Arani <afshinarani79@gmail.com>
parent b70b6df0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ obj-$(CONFIG_OF_FLATTREE) += fdt.o
obj-$(CONFIG_OF_PROMTREE) += pdt.o
obj-$(CONFIG_OF_ADDRESS)  += address.o
obj-$(CONFIG_OF_IRQ)    += irq.o
obj-y += cmdline_helper.o
obj-$(CONFIG_OF_DEVICE) += device.o platform.o
obj-$(CONFIG_OF_I2C)	+= of_i2c.o
obj-$(CONFIG_OF_NET)	+= of_net.o
+49 −0
Original line number Diff line number Diff line
/*
 * Copyright 2016 Jesse Chan <cjx123@outlook.com>
 *
 * This file is part of the Linux kernel and is made available under
 * the terms of the GNU General Public License, version 2, or at your
 * option, any later version, incorporated herein by reference.
 */

#include <linux/string.h>
#include <linux/cmdline_helper.h>
#include <asm/setup.h>

char* add_cmdline(char* original_cmdline, char* cmdline_to_be_add)
{
	static char new_command_line[COMMAND_LINE_SIZE];
	char *cmd = new_command_line;

	strcpy(cmd, original_cmdline);

	strcat(cmd, " ");
	strcat(cmd, cmdline_to_be_add);

	return new_command_line;
}

char* del_cmdline(char* original_cmdline, char* cmdline_to_be_del)
{
	static char new_command_line[COMMAND_LINE_SIZE];
	char *offset_addr, *cmd = new_command_line;

	strcpy(cmd, original_cmdline);

	offset_addr = strstr(cmd, cmdline_to_be_del);
	if (offset_addr) {
		size_t i, len, offset;

		len = strlen(cmd);
		offset = offset_addr - cmd;

		for (i = 1; i < (len - offset); i++) {
			if (cmd[offset + i] == ' ')
				break;
		}

		memmove(offset_addr, &cmd[offset + i + 1], len - i - offset);
	}

	return new_command_line;
}
+15 −0
Original line number Diff line number Diff line
/*
 * Copyright 2016 Jesse Chan <cjx123@outlook.com>
 *
 * This file is part of the Linux kernel and is made available under
 * the terms of the GNU General Public License, version 2, or at your
 * option, any later version, incorporated herein by reference.
 */

#ifndef _LINUX_CMDLINE_HELPER_H
#define _LINUX_CMDLINE_HELPER_H

extern char* add_cmdline(char* original_cmdline, char* cmdline_to_be_add);
extern char* del_cmdline(char* original_cmdline, char* cmdline_to_be_del);

#endif  /*_LINUX_CMDLINE_HELPER_H*/