blob: be26fd6355e6210077a2c95e9e61df13c198cba8 [file] [log] [blame]
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @brief Header containing OS interface specific declarations for the
* Zephyr OS layer of the Wi-Fi driver.
*/
#ifndef __SHIM_H__
#define __SHIM_H__
#include <zephyr/kernel.h>
#include <zephyr/drivers/gpio.h>
#include <zephyr/net/net_pkt.h>
/**
* struct zep_shim_bus_qspi_priv - Structure to hold context information for the Linux OS
* shim.
* @pcie_callbk_data: Callback data to be passed to the PCIe callback functions.
* @pcie_prb_callbk: The callback function to be called when a PCIe device
* has been probed.
* @pcie_rem_callbk: The callback function to be called when a PCIe device
* has been removed.
*
* This structure maintains the context information necessary for the operation
* of the Linux shim. Some of the elements of the structure need to be
* initialized during the initialization of the Linux shim while others need to
* be kept updated over the duration of the Linux shim operation.
*/
struct zep_shim_bus_qspi_priv {
void *qspi_dev;
bool dev_added;
bool dev_init;
};
struct zep_shim_intr_priv {
struct gpio_callback gpio_cb_data;
void *callbk_data;
int (*callbk_fn)(void *callbk_data);
struct k_work_delayable work;
};
struct zep_shim_llist_node {
sys_dnode_t head;
void *data;
};
struct zep_shim_llist {
sys_dlist_t head;
unsigned int len;
};
void *net_pkt_to_nbuf(struct net_pkt *pkt);
void *net_pkt_from_nbuf(void *iface, void *frm);
#if defined(CONFIG_NRF70_RAW_DATA_RX) || defined(CONFIG_NRF70_PROMISC_DATA_RX)
void *net_raw_pkt_from_nbuf(void *iface,
void *frm,
unsigned short raw_hdr_len,
void *raw_rx_hdr,
bool pkt_free);
#endif /* CONFIG_NRF70_RAW_DATA_RX || CONFIG_NRF70_PROMISC_DATA_RX */
#endif /* __SHIM_H__ */