1 /* 2 * Copyright (c) 2014-2020 The Linux Foundation. All rights reserved. 3 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for 6 * any purpose with or without fee is hereby granted, provided that the 7 * above copyright notice and this permission notice appear in all 8 * copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17 * PERFORMANCE OF THIS SOFTWARE. 18 */ 19 20 /** 21 * DOC: qdf_net_if 22 * QCA driver framework (QDF) network interface management APIs 23 */ 24 25 #if !defined(__QDF_NET_IF_H) 26 #define __QDF_NET_IF_H 27 28 /* Include Files */ 29 #include <qdf_types.h> 30 #include <i_qdf_net_if.h> 31 32 struct qdf_net_if; 33 34 #ifdef ENHANCED_OS_ABSTRACTION 35 /** 36 * qdf_net_if_create_dummy_if() - create dummy interface 37 * @nif: interface handle 38 * 39 * This function will create a dummy network interface 40 * 41 * Return: QDF_STATUS_SUCCESS on success 42 */ 43 QDF_STATUS 44 qdf_net_if_create_dummy_if(struct qdf_net_if *nif); 45 46 /** 47 * qdf_net_if_get_dev_by_name() - Find a network device by its name 48 * @nif_name: network device name 49 * 50 * This function retrieves the network device by its name 51 * 52 * Return: qdf network device 53 */ 54 struct qdf_net_if * 55 qdf_net_if_get_dev_by_name(char *nif_name); 56 57 /** 58 * qdf_net_if_release_dev() - Release reference to network device 59 * @nif: network device 60 * 61 * This function releases reference to the network device 62 * 63 * Return: QDF_STATUS_SUCCESS on success 64 */ 65 QDF_STATUS 66 qdf_net_if_release_dev(struct qdf_net_if *nif); 67 68 /** 69 * qdf_net_update_net_device_dev_addr() - update net_device dev_addr 70 * @ndev: net_device 71 * @src_addr: source mac address 72 * @len: length 73 * 74 * This function updates dev_addr in net_device 75 * 76 * Return: void 77 */ 78 void 79 qdf_net_update_net_device_dev_addr(struct net_device *ndev, 80 const void *src_addr, 81 size_t len); 82 #else /* ENHANCED_OS_ABSTRACTION */ 83 static inline QDF_STATUS 84 qdf_net_if_create_dummy_if(struct qdf_net_if *nif) 85 { 86 return __qdf_net_if_create_dummy_if(nif); 87 } 88 89 static inline struct qdf_net_if * 90 qdf_net_if_get_dev_by_name(char *nif_name) 91 { 92 return __qdf_net_if_get_dev_by_name(nif_name); 93 } 94 95 static inline QDF_STATUS 96 qdf_net_if_release_dev(struct qdf_net_if *nif) 97 { 98 return __qdf_net_if_release_dev(nif); 99 } 100 101 /** 102 * qdf_net_update_net_device_dev_addr() - update net_device dev_addr 103 * @ndev: net_device 104 * @src_addr: source mac address 105 * @len: length 106 * 107 * This function updates dev_addr in net_device 108 * 109 * Return: void 110 */ 111 static inline void 112 qdf_net_update_net_device_dev_addr(struct net_device *ndev, 113 const void *src_addr, 114 size_t len) 115 { 116 __qdf_net_update_net_device_dev_addr(ndev, src_addr, len); 117 } 118 #endif /* ENHANCED_OS_ABSTRACTION */ 119 120 /** 121 * qdf_net_if_get_devname() - Retrieve netdevice name 122 * @nif: Abstraction of netdevice 123 * 124 * Return: netdevice name 125 */ 126 char *qdf_net_if_get_devname(struct qdf_net_if *nif); 127 #endif /* __QDF_NET_IF_H */ 128