On 2020-06-09 07:21, Thomas Huth wrote:
On 08/06/2020 10.12, Pierre Morel wrote:
We often need to retrieve hexadecimal kernel parameters.
Let's implement a shared utility to do it.
Signed-off-by: Pierre Morel <pmorel@xxxxxxxxxxxxx>
---
lib/s390x/kernel-args.c | 60 +++++++++++++++++++++++++++++++++++++++++
lib/s390x/kernel-args.h | 18 +++++++++++++
s390x/Makefile | 1 +
3 files changed, 79 insertions(+)
create mode 100644 lib/s390x/kernel-args.c
create mode 100644 lib/s390x/kernel-args.h
[...]
+int kernel_arg(int argc, char *argv[], const char *str, unsigned long *val)
+{
+ int i, ret;
+ char *p;
+
+ for (i = 0; i < argc; i++) {
+ ret = strncmp(argv[i], str, strlen(str));
+ if (ret)
+ continue;
+ p = strchr(argv[i], '=');
+ if (!p)
+ return -1;
+ p = strchr(p, 'x');
+ if (!p)
+ *val = atol(p + 1);
If p is NULL, then you call atol(NULL + 1) ... I think you need another
temporary variable here instead to hold the new pointer / NULL value?
grrrr, clearly!
Thomas
Thanks,
Pierre
--
Pierre Morel
IBM Lab Boeblingen