18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0+ */ 28c2ecf20Sopenharmony_ci/* Copyright (c) 2015 Quantenna Communications. All rights reserved. */ 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci#ifndef QTNFMAC_UTIL_H 58c2ecf20Sopenharmony_ci#define QTNFMAC_UTIL_H 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci#include <linux/kernel.h> 88c2ecf20Sopenharmony_ci#include "core.h" 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ciconst char *qtnf_chipid_to_string(unsigned long chip_id); 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_civoid qtnf_sta_list_init(struct qtnf_sta_list *list); 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_cistruct qtnf_sta_node *qtnf_sta_list_lookup(struct qtnf_sta_list *list, 158c2ecf20Sopenharmony_ci const u8 *mac); 168c2ecf20Sopenharmony_cistruct qtnf_sta_node *qtnf_sta_list_lookup_index(struct qtnf_sta_list *list, 178c2ecf20Sopenharmony_ci size_t index); 188c2ecf20Sopenharmony_cistruct qtnf_sta_node *qtnf_sta_list_add(struct qtnf_vif *vif, 198c2ecf20Sopenharmony_ci const u8 *mac); 208c2ecf20Sopenharmony_cibool qtnf_sta_list_del(struct qtnf_vif *vif, const u8 *mac); 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_civoid qtnf_sta_list_free(struct qtnf_sta_list *list); 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_cistatic inline size_t qtnf_sta_list_size(const struct qtnf_sta_list *list) 258c2ecf20Sopenharmony_ci{ 268c2ecf20Sopenharmony_ci return atomic_read(&list->size); 278c2ecf20Sopenharmony_ci} 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_cistatic inline bool qtnf_sta_list_empty(const struct qtnf_sta_list *list) 308c2ecf20Sopenharmony_ci{ 318c2ecf20Sopenharmony_ci return list_empty(&list->head); 328c2ecf20Sopenharmony_ci} 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci#endif /* QTNFMAC_UTIL_H */ 35