static int set_autofem(struct nl80211_state *state, struct nl_cb *cb, struct nl_msg *msg, int argc, char **argv) { char *fname = NULL; unsigned char val; struct wl12xx_common cmn = { .arch = UNKNOWN_ARCH, .parse_ops = NULL }; argc -= 2; argv += 2; if (argc < 1) { fprintf(stderr, "Missing argument\n"); return 2; } sscanf(argv[0], "%2x", (unsigned int *)&val); if (argc == 2) fname = argv[1]; if (set_nvs_file_autofem(fname, val, &cmn)) { fprintf(stderr, "Fail to set AutoFEM\n"); return 1; } return 0; }
static int set_autofem(struct nl80211_state *state, struct nl_cb *cb, struct nl_msg *msg, int argc, char **argv) { char *fname = NULL; int res; unsigned int val; struct wl12xx_common cmn = { .arch = UNKNOWN_ARCH, .parse_ops = NULL }; argc -= 2; argv += 2; if (argc < 1) { fprintf(stderr, "Missing argument\n"); return 2; } res = sscanf(argv[0], "%x", &val); if (res != 1 || val > 1) { fprintf(stderr, "Invalid argument\n"); return 1; } argv++; argc--; fname = get_opt_nvsinfile(argc, argv); if (set_nvs_file_autofem(fname, val, &cmn)) { fprintf(stderr, "Fail to set AutoFEM\n"); return 1; } return 0; }