56 lines · 1.3 KB · C
RawDownload
// SPDX-License-Identifier: GPL-2.0-only/* * KUnit fixture to have a (configurable) wiphy * * Copyright (C) 2023 Intel Corporation */#include <linux/ieee80211.h>#include <net/cfg80211.h>#include <kunit/test.h>#include <kunit/test-bug.h>#include "util.h" int t_wiphy_init(struct kunit_resource *resource, void *ctx){	struct kunit *test = kunit_get_current_test();	struct cfg80211_ops *ops;	struct wiphy *wiphy;	struct t_wiphy_priv *priv; 	ops = kzalloc_obj(*ops);	KUNIT_ASSERT_NOT_NULL(test, ops); 	wiphy = wiphy_new_nm(ops, sizeof(*priv), "kunit");	KUNIT_ASSERT_NOT_NULL(test, wiphy); 	priv = wiphy_priv(wiphy);	priv->ctx = ctx;	priv->ops = ops; 	/* Initialize channels, feel free to add more here channels/bands */	memcpy(priv->channels_2ghz, channels_2ghz, sizeof(channels_2ghz));	wiphy->bands[NL80211_BAND_2GHZ] = &priv->band_2ghz;	priv->band_2ghz.channels = priv->channels_2ghz;	priv->band_2ghz.n_channels = ARRAY_SIZE(channels_2ghz); 	resource->data = wiphy;	resource->name = "wiphy"; 	return 0;} void t_wiphy_exit(struct kunit_resource *resource){	struct t_wiphy_priv *priv;	struct cfg80211_ops *ops; 	priv = wiphy_priv(resource->data);	ops = priv->ops; 	/* Should we ensure anything about the state here?	 * e.g. full destruction or no calls to any ops on destruction?	 */ 	wiphy_free(resource->data);	kfree(ops);}