root/net/mac80211/tests/util.h
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Utilities for mac80211 unit testing
 *
 * Copyright (C) 2024 Intel Corporation
 */
#ifndef __MAC80211_UTILS_H
#define __MAC80211_UTILS_H

#include "../ieee80211_i.h"

struct t_sdata {
        struct ieee80211_sub_if_data *sdata;
        struct wiphy *wiphy;
        struct ieee80211_local local;

        void *ctx;

        struct ieee80211_supported_band band_2ghz;
        struct ieee80211_supported_band band_5ghz;
};

#define T_SDATA(test) ({                                                \
                struct t_sdata *__t_sdata =                             \
                        kunit_alloc_resource(test, t_sdata_init,        \
                                             t_sdata_exit,              \
                                             GFP_KERNEL, NULL);         \
                                                                        \
                KUNIT_ASSERT_NOT_NULL(test, __t_sdata);                 \
                __t_sdata;                                              \
        })

int t_sdata_init(struct kunit_resource *resource, void *data);
void t_sdata_exit(struct kunit_resource *resource);

#endif /* __MAC80211_UTILS_H */