blob: d2fafa8623e96399a4a260e2d3ce053ed366b6cb [file] [log] [blame]
// SPDX-License-Identifier: ISC
/* Copyright (C) 2020 Felix Fietkau <nbd@nbd.name> */
#ifndef __MT76_TEST_H
#define __MT76_TEST_H
#include <stdbool.h>
#include <stdint.h>
#include <linux/nl80211.h>
#include <unl.h>
#include "../testmode.h"
#ifndef ARRAY_SIZE
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
#endif
#ifndef DIV_ROUND_UP
#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
#endif
#define EEPROM_FILE_PATH_FMT "/tmp/mt76-test-%s"
#define EEPROM_PART_SIZE 20480
struct nl_msg;
struct nlattr;
struct tm_field {
const char *name;
const char *prefix;
bool (*parse)(const struct tm_field *field, int idx, struct nl_msg *msg,
const char *val);
void (*print)(const struct tm_field *field, struct nlattr *attr);
union {
struct {
const char * const *enum_str;
int enum_len;
};
struct {
bool (*parse2)(const struct tm_field *field, int idx,
struct nl_msg *msg, const char *val);
void (*print2)(const struct tm_field *field,
struct nlattr *attr);
};
struct {
void (*print_extra)(const struct tm_field *field,
struct nlattr **tb);
const struct tm_field *fields;
struct nla_policy *policy;
int len;
};
};
};
extern struct unl unl;
extern const struct tm_field msg_field;
extern unsigned char *eeprom_data;
void usage(void);
int mt76_eeprom(int phy, int argc, char **argv);
int mt76_fwlog(const char *phyname, int argc, char **argv);
#endif