Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags   |
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <stdio.h>
#include "util/debug.h"
#include "util/parse-sublevel-options.h"
static int parse_one_sublevel_option(const char *str,
<------><------><------><------> struct sublevel_option *opts)
{
<------>struct sublevel_option *opt = opts;
<------>char *vstr, *s = strdup(str);
<------>int v = 1;
<------>if (!s) {
<------><------>pr_err("no memory\n");
<------><------>return -1;
<------>}
<------>vstr = strchr(s, '=');
<------>if (vstr)
<------><------>*vstr++ = 0;
<------>while (opt->name) {
<------><------>if (!strcmp(s, opt->name))
<------><------><------>break;
<------><------>opt++;
<------>}
<------>if (!opt->name) {
<------><------>pr_err("Unknown option name '%s'\n", s);
<------><------>free(s);
<------><------>return -1;
<------>}
<------>if (vstr)
<------><------>v = atoi(vstr);
<------>*opt->value_ptr = v;
<------>free(s);
<------>return 0;
}
/* parse options like --foo a=<n>,b,c... */
int perf_parse_sublevel_options(const char *str, struct sublevel_option *opts)
{
<------>char *s = strdup(str);
<------>char *p = NULL;
<------>int ret;
<------>if (!s) {
<------><------>pr_err("no memory\n");
<------><------>return -1;
<------>}
<------>p = strtok(s, ",");
<------>while (p) {
<------><------>ret = parse_one_sublevel_option(p, opts);
<------><------>if (ret) {
<------><------><------>free(s);
<------><------><------>return ret;
<------><------>}
<------><------>p = strtok(NULL, ",");
<------>}
<------>free(s);
<------>return 0;
}