+/*
+ * Copyright (c) 2013 Qualcomm Atheros, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted (subject to the limitations in the
+ * disclaimer below) provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of Qualcomm Atheros nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+ * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+ * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
/**
* @defgroup adf_net_public network abstraction API
*/
return (__adf_net_dev_create(hdl, op, info));
}
-
-/**
- * @brief unregister a real device with the kernel
- *
- * @param[in] hdl opaque device handle returned by adf_net_dev_create()
- * @see adf_net_dev_create()
- */
-static inline void
-adf_net_dev_delete(adf_net_handle_t hdl)
-{
- __adf_net_dev_delete(hdl);
-}
-
-
/**
* @brief register a virtual device with the kernel.
* A virtual device is always backed by a real device.
return (__adf_net_vdev_create(dev_hdl, hdl, op, info));
}
-
-/**
- * @brief unregister the virtual device with the kernel.
- *
- * @param[in] hdl opaque device handle returned by adf_net_vdev_create()
- *
- * @see adf_net_vdev_create()
- */
-static inline void
-adf_net_vdev_delete(adf_net_handle_t hdl)
-{
- __adf_net_vdev_delete(hdl);
-}
-
-
-/**
- * @brief open the real device
- *
- * @param[in] hdl opaque device handle
- *
- * @return status of the operation
- *
- * @see adf_net_dev_create()
- */
-static inline a_status_t
-adf_net_dev_open(adf_net_handle_t hdl)
-{
- return (__adf_net_dev_open(hdl));
-}
-
-
-/**
- * @brief close the real device
- *
- * @param[in] hdl opaque device handle
- *
- * @see adf_net_dev_open()
- */
-static inline void
-adf_net_dev_close(adf_net_handle_t hdl)
-{
- __adf_net_dev_close(hdl);
-}
-
-
-/**
- * @brief transmit a network buffer using a device
- *
- * @param[in] hdl opaque device handle
- * @param[in] pkt network buffer to transmit
- *
- * @return status of the operation
- */
-static inline a_status_t
-adf_net_dev_tx(adf_net_handle_t hdl, adf_nbuf_t pkt)
-{
- return (__adf_net_dev_tx(hdl,pkt));
-}
-
-
/**
* @brief Checks if the interface is running or not
*
return(__adf_net_queue_stopped(hdl));
}
-
-/**
- * @brief This indicates a packet to the networking stack
- * (minus the FCS). The driver should just strip
- * the FCS and give the packet as a whole. This is
- * necessary because different native stacks have
- * different expectation of how they want to recv the
- * packet. This fucntion will strip off whatever is
- * required for the OS interface. The routine will also
- * figure out whether its being called in irq context and
- * call the appropriate OS API.
- *
- * @param[in] hdl opaque device handle
- * @param[in] pkt network buffer to indicate
- * @param[in] len length of buffer
- */
-static inline void
-adf_net_indicate_packet(adf_net_handle_t hdl, adf_nbuf_t pkt, a_uint32_t len)
-{
- __adf_net_indicate_packet(hdl, pkt, len);
-}
-
-/**
- * @brief use this when indicating a vlan tagged packet on RX
- *
- * @param[in] hdl opaque device handle
- * @param[in] pkt network buffer to indicate
- * @param[in] len length of buffer
- * @param[in] vid vlan id
- *
- * @return status of operation
- */
-static inline a_status_t
-adf_net_indicate_vlanpkt(adf_net_handle_t hdl, adf_nbuf_t pkt,
- a_uint32_t len, adf_net_vid_t *vid)
-{
- return (__adf_net_indicate_vlanpkt(hdl, pkt, len, vid));
-}
-
/**
* @brief get interface name
*
return (__adf_net_ifname(hdl));
}
-/**
- * @brief send management packets to apps (listener).
- * This is used for wireless applications.
- *
- * @param[in] hdl opaque device handle
- * @param[in] pkt network buffer to send
- * @param[in] len length of buffer
- */
-static inline void
-adf_net_fw_mgmt_to_app(adf_net_handle_t hdl, adf_nbuf_t pkt, a_uint32_t len)
-{
- __adf_net_fw_mgmt_to_app(hdl, pkt, len);
-}
-/**
- * @brief send wireless events to listening applications
- *
- * @param[in] hdl opaque device handle
- * @param[in] what event to send
- * @param[in] data information about event
- * @param[in] data_len length of accompanying information
- */
-static inline void
-adf_net_send_wireless_event(adf_net_handle_t hdl,
- adf_net_wireless_event_t what,
- void *data, adf_os_size_t data_len)
-{
- __adf_net_send_wireless_event(hdl, what, data, data_len);
-}
-
-/**
- * @brief schedule the poll controller.
- *
- * @param[in] hdl opaque device handle
- */
-static inline void
-adf_net_poll_schedule(adf_net_handle_t hdl)
-{
- __adf_net_poll_schedule(hdl);
-}
-
-
-/**
- * @brief per cpu deffered callback (e.g. for RSS)
- *
- * @param[in] hdl opaque device handle
- * @param[in] cpu_msk
- * @param[in] arg
- */
-static inline void
-adf_net_poll_schedule_cpu(adf_net_handle_t hdl, a_uint32_t cpu_msk, void *arg)
-{
- __adf_net_poll_schedule_cpu(hdl, cpu_msk, arg);
-}
-
/**
* @brief Get OS Handle from OS device object.
*