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

Commit 04bb171e authored by Anton Vorontsov's avatar Anton Vorontsov Committed by Jason Wessel
Browse files

kdb: Use KDB_REPEAT_* values as flags



The actual values of KDB_REPEAT_* enum values and overall logic stayed
the same, but we now treat the values as flags.

This makes it possible to add other flags and combine them, plus makes
the code a lot simpler and shorter. But functionality-wise, there should
be no changes.

Signed-off-by: default avatarAnton Vorontsov <anton.vorontsov@linaro.org>
Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
parent 42c884c1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -15,8 +15,8 @@

typedef enum {
	KDB_REPEAT_NONE = 0,	/* Do not repeat this command */
	KDB_REPEAT_NO_ARGS,	/* Repeat the command without arguments */
	KDB_REPEAT_WITH_ARGS,	/* Repeat the command including its arguments */
	KDB_REPEAT_NO_ARGS	= 0x1, /* Repeat the command w/o arguments */
	KDB_REPEAT_WITH_ARGS	= 0x2, /* Repeat the command w/ its arguments */
} kdb_cmdflags_t;

typedef int (*kdb_func_t)(int, const char **);
+7 −14
Original line number Diff line number Diff line
@@ -1008,20 +1008,13 @@ int kdb_parse(const char *cmdstr)
		if (result && ignore_errors && result > KDB_CMD_GO)
			result = 0;
		KDB_STATE_CLEAR(CMD);
		switch (tp->cmd_flags) {
		case KDB_REPEAT_NONE:
			argc = 0;
			if (argv[0])
				*(argv[0]) = '\0';
			break;
		case KDB_REPEAT_NO_ARGS:
			argc = 1;
			if (argv[1])
				*(argv[1]) = '\0';
			break;
		case KDB_REPEAT_WITH_ARGS:
			break;
		}

		if (tp->cmd_flags & KDB_REPEAT_WITH_ARGS)
			return result;

		argc = tp->cmd_flags & KDB_REPEAT_NO_ARGS ? 1 : 0;
		if (argv[argc])
			*(argv[argc]) = '\0';
		return result;
	}