本文整理汇总了C++中RtmpOSNetDevFree函数的典型用法代码示例。如果您正苦于以下问题:C++ RtmpOSNetDevFree函数的具体用法?C++ RtmpOSNetDevFree怎么用?C++ RtmpOSNetDevFree使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了RtmpOSNetDevFree函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MBSS_Remove
/*
========================================================================
Routine Description:
Remove Multi-BSS network interface.
Arguments:
pAd points to our adapter
Return Value:
None
Note:
FIRST_MBSSID = 1
Main BSS is not removed here.
========================================================================
*/
VOID MBSS_Remove(RTMP_ADAPTER *pAd)
{
struct wifi_dev *wdev;
UINT IdBss;
BSS_STRUCT *pMbss;
for(IdBss=FIRST_MBSSID; IdBss<MAX_MBSSID_NUM(pAd); IdBss++)
{
wdev = &pAd->ApCfg.MBSSID[IdBss].wdev;
pMbss = &pAd->ApCfg.MBSSID[IdBss];
if (pMbss) {
wdev_bcn_buf_deinit(pAd, &pMbss->bcn_buf);
}
if (wdev->if_dev)
{
RtmpOSNetDevProtect(1);
RtmpOSNetDevDetach(wdev->if_dev);
RtmpOSNetDevProtect(0);
rtmp_wdev_idx_unreg(pAd, wdev);
RtmpOSNetDevFree(wdev->if_dev);
wdev->if_dev = NULL;
}
}
}
示例2: RTMP_CFG80211_DummyP2pIf_Remove
VOID RTMP_CFG80211_DummyP2pIf_Remove(
IN VOID *pAdSrc)
{
PRTMP_ADAPTER pAd = (PRTMP_ADAPTER)pAdSrc;
PCFG80211_CTRL cfg80211_ctrl = &pAd->cfg80211_ctrl;
PNET_DEV dummy_p2p_net_dev = (PNET_DEV)cfg80211_ctrl->dummy_p2p_net_dev;
DBGPRINT(RT_DEBUG_TRACE, (" %s =====> \n", __FUNCTION__));
RtmpOSNetDevProtect(1);
if (dummy_p2p_net_dev)
{
RTMP_OS_NETDEV_STOP_QUEUE(dummy_p2p_net_dev);
RtmpOSNetDevDetach(dummy_p2p_net_dev);
if (dummy_p2p_net_dev->ieee80211_ptr)
{
kfree(dummy_p2p_net_dev->ieee80211_ptr);
dummy_p2p_net_dev->ieee80211_ptr = NULL;
}
RtmpOSNetDevProtect(0);
RtmpOSNetDevFree(dummy_p2p_net_dev);
RtmpOSNetDevProtect(1);
cfg80211_ctrl->flg_cfg_dummy_p2p_init = FALSE;
}
RtmpOSNetDevProtect(0);
DBGPRINT(RT_DEBUG_TRACE, (" %s <=====\n", __FUNCTION__));
}
示例3: MBSS_Remove
/*
========================================================================
Routine Description:
Remove Multi-BSS network interface.
Arguments:
pAd points to our adapter
Return Value:
None
Note:
FIRST_MBSSID = 1
Main BSS is not removed here.
========================================================================
*/
VOID MBSS_Remove(
IN PRTMP_ADAPTER pAd)
{
MULTISSID_STRUCT *pMbss;
UINT IdBss;
for(IdBss=FIRST_MBSSID; IdBss<MAX_MBSSID_NUM(pAd); IdBss++)
{
pMbss = &pAd->ApCfg.MBSSID[IdBss];
RtmpOSNetDevProtect(1);
if (pMbss->MSSIDDev)
{
RtmpOSNetDevDetach(pMbss->MSSIDDev);
RtmpOSNetDevProtect(0);
RtmpOSNetDevFree(pMbss->MSSIDDev);
RtmpOSNetDevProtect(1);
/* clear it as NULL to prevent latter access error */
pMbss->MSSIDDev = NULL;
}
RtmpOSNetDevProtect(0);
}
}
示例4: rt2860_remove_one
static VOID __devexit rt2860_remove_one(
IN struct pci_dev *pci_dev)
{
PNET_DEV net_dev = pci_get_drvdata(pci_dev);
RTMP_ADAPTER *pAd = NULL;
ULONG csr_addr = net_dev->base_addr; // pAd->CSRBaseAddress;
GET_PAD_FROM_NET_DEV(pAd, net_dev);
DBGPRINT(RT_DEBUG_TRACE, ("===> rt2860_remove_one\n"));
if (pAd != NULL)
{
// Unregister/Free all allocated net_device.
RtmpPhyNetDevExit(pAd, net_dev);
// Unmap CSR base address
iounmap((char *)(csr_addr));
// release memory region
release_mem_region(pci_resource_start(pci_dev, 0), pci_resource_len(pci_dev, 0));
#ifdef RT_CFG80211_SUPPORT
CFG80211_UnRegister(pAd, net_dev);
#endif // RT_CFG80211_SUPPORT //
#ifdef CREDENTIAL_STORE
NdisFreeSpinLock(&pAd->StaCtIf.Lock);
#endif /* CREDENTIAL_STORE */
// Free RTMP_ADAPTER related structures.
RtmpRaDevCtrlExit(pAd);
}
else
{
// Unregister network device
RtmpOSNetDevDetach(net_dev);
// Unmap CSR base address
iounmap((char *)(net_dev->base_addr));
// release memory region
release_mem_region(pci_resource_start(pci_dev, 0), pci_resource_len(pci_dev, 0));
}
// Free the root net_device
RtmpOSNetDevFree(net_dev);
#ifdef VENDOR_FEATURE4_SUPPORT
{
extern ULONG OS_NumOfMemAlloc, OS_NumOfMemFree;
DBGPRINT(RT_DEBUG_TRACE, ("OS_NumOfMemAlloc = %ld, OS_NumOfMemFree = %ld\n",
OS_NumOfMemAlloc, OS_NumOfMemFree));
}
#endif // VENDOR_FEATURE4_SUPPORT //
}
示例5: rt2870_disconnect
/*
========================================================================
Routine Description:
Release allocated resources.
Arguments:
*dev Point to the PCI or USB device
pAd driver control block pointer
Return Value:
None
Note:
========================================================================
*/
static void rt2870_disconnect(struct usb_device *dev, PRTMP_ADAPTER pAd)
{
DBGPRINT(RT_DEBUG_ERROR, ("rtusb_disconnect: unregister usbnet usb-%s-%s\n",
dev->bus->bus_name, dev->devpath));
if (!pAd)
{
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) /* kernel 2.4 series */
while(MOD_IN_USE > 0)
{
MOD_DEC_USE_COUNT;
}
#else
usb_put_dev(dev);
#endif // LINUX_VERSION_CODE //
printk("rtusb_disconnect: pAd == NULL!\n");
return;
}
RTMP_SET_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST);
// for debug, wait to show some messages to /proc system
udelay(1);
RtmpPhyNetDevExit(pAd, pAd->net_dev);
// FIXME: Shall we need following delay and flush the schedule??
udelay(1);
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) /* kernel 2.4 series */
#else
flush_scheduled_work();
#endif // LINUX_VERSION_CODE //
udelay(1);
// free the root net_device
RtmpOSNetDevFree(pAd->net_dev);
#ifdef RT_CFG80211_SUPPORT
CFG80211_UnRegister(pAd, pAd->net_dev);
#endif // RT_CFG80211_SUPPORT //
RtmpRaDevCtrlExit(pAd);
// release a use of the usb device structure
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) /* kernel 2.4 series */
while(MOD_IN_USE > 0)
{
MOD_DEC_USE_COUNT;
}
#else
usb_put_dev(dev);
#endif // LINUX_VERSION_CODE //
udelay(1);
DBGPRINT(RT_DEBUG_ERROR, (" RTUSB disconnect successfully\n"));
}
示例6: rt2860_remove_one
static VOID __devexit rt2860_remove_one(struct pci_dev *pci_dev)
{
PNET_DEV net_dev = pci_get_drvdata(pci_dev);
VOID *pAd = NULL;
ULONG csr_addr = net_dev->base_addr;
GET_PAD_FROM_NET_DEV(pAd, net_dev);
DBGPRINT(RT_DEBUG_TRACE, ("===> rt2860_remove_one\n"));
if (pAd != NULL)
{
/* Unregister/Free all allocated net_device. */
RtmpPhyNetDevExit(pAd, net_dev);
#ifdef RT_CFG80211_SUPPORT
RTMP_DRIVER_80211_UNREGISTER(pAd, net_dev);
#endif /* RT_CFG80211_SUPPORT */
/* Free RTMP_ADAPTER related structures. */
RtmpRaDevCtrlExit(pAd);
/* Unmap CSR base address */
iounmap((char *)(csr_addr));
/* release memory region */
release_mem_region(pci_resource_start(pci_dev, 0), pci_resource_len(pci_dev, 0));
}
else
{
/* Unregister network device */
RtmpOSNetDevDetach(net_dev);
/* Unmap CSR base address */
iounmap((char *)(net_dev->base_addr));
/* release memory region */
release_mem_region(pci_resource_start(pci_dev, 0), pci_resource_len(pci_dev, 0));
}
/* Free the root net_device */
RtmpOSNetDevFree(net_dev);
wl_proc_exit();
}
示例7: WDS_Remove
VOID WDS_Remove(
IN PRTMP_ADAPTER pAd)
{
UINT index;
for(index = 0; index < MAX_WDS_ENTRY; index++)
{
if (pAd->WdsTab.WdsEntry[index].dev)
{
RtmpOSNetDevDetach(pAd->WdsTab.WdsEntry[index].dev);
RtmpOSNetDevFree(pAd->WdsTab.WdsEntry[index].dev);
/* Clear it as NULL to prevent latter access error. */
pAd->WdsTab.WdsEntry[index].dev = NULL;
}
}
}
示例8: rt2860_remove_one
static VOID __devexit rt2860_remove_one(
IN struct pci_dev *pci_dev)
{
PNET_DEV net_dev = pci_get_drvdata(pci_dev);
RTMP_ADAPTER *pAd = NULL;
ULONG csr_addr = net_dev->base_addr; // pAd->CSRBaseAddress;
GET_PAD_FROM_NET_DEV(pAd, net_dev);
DBGPRINT(RT_DEBUG_TRACE, ("===> rt2860_remove_one\n"));
if (pAd != NULL)
{
// Unregister/Free all allocated net_device.
RtmpPhyNetDevExit(pAd, net_dev);
// Unmap CSR base address
iounmap((char *)(csr_addr));
// release memory region
release_mem_region(pci_resource_start(pci_dev, 0), pci_resource_len(pci_dev, 0));
#ifdef RT_CFG80211_SUPPORT
CFG80211_UnRegister(pAd, net_dev);
#endif // RT_CFG80211_SUPPORT //
// Free RTMP_ADAPTER related structures.
RtmpRaDevCtrlExit(pAd);
}
else
{
// Unregister network device
RtmpOSNetDevDetach(net_dev);
// Unmap CSR base address
iounmap((char *)(net_dev->base_addr));
// release memory region
release_mem_region(pci_resource_start(pci_dev, 0), pci_resource_len(pci_dev, 0));
}
// Free the root net_device
RtmpOSNetDevFree(net_dev);
}
示例9: rt_pci_remove
static VOID DEVEXIT rt_pci_remove(struct pci_dev *pci_dev)
{
PNET_DEV net_dev = pci_get_drvdata(pci_dev);
VOID *pAd = NULL;
ULONG csr_addr = net_dev->base_addr;
GET_PAD_FROM_NET_DEV(pAd, net_dev);
MTWF_LOG(DBG_CAT_ALL, DBG_SUBCAT_ALL, DBG_LVL_TRACE, ("===> %s()\n", __FUNCTION__));
if (pAd != NULL)
{
/* Unregister/Free all allocated net_device. */
RtmpPhyNetDevExit(pAd, net_dev);
#ifdef RT_CFG80211_SUPPORT
RTMP_DRIVER_80211_UNREGISTER(pAd, net_dev);
#endif /* RT_CFG80211_SUPPORT */
/* Free RTMP_ADAPTER related structures. */
RtmpRaDevCtrlExit(pAd);
/* Unmap CSR base address */
iounmap((char *)(csr_addr));
/* release memory region */
release_mem_region(pci_resource_start(pci_dev, 0), pci_resource_len(pci_dev, 0));
}
else
{
/* Unregister network device */
RtmpOSNetDevDetach(net_dev);
/* Unmap CSR base address */
iounmap((char *)(net_dev->base_addr));
/* release memory region */
release_mem_region(pci_resource_start(pci_dev, 0), pci_resource_len(pci_dev, 0));
}
/* Free the root net_device */
RtmpOSNetDevFree(net_dev);
}
示例10: rt2880_module_exit
VOID rt2880_module_exit(VOID)
{
struct net_device *net_dev = rt2880_dev;
RTMP_ADAPTER *pAd;
if (net_dev == NULL)
return;
pAd = RTMP_OS_NETDEV_GET_PRIV(net_dev);
if (pAd != NULL)
{
#ifdef WLAN_LED
//extern RALINK_TIMER_STRUCT LedCheckTimer;
//extern unsigned char CheckTimerEbl;
{
BOOLEAN Cancelled;
RTMPCancelTimer(&LedCheckTimer, &Cancelled);
CheckTimerEbl=0;
}
#endif // WLAN_LED //
RtmpPhyNetDevExit(pAd, net_dev);
RtmpRaDevCtrlExit(pAd);
}
else
{
RtmpOSNetDevDetach(net_dev);
}
// Free the root net_device.
RtmpOSNetDevFree(net_dev);
#if defined(CONFIG_RA_CLASSIFIER)&&(!defined(CONFIG_RA_CLASSIFIER_MODULE))
proc_ptr = proc_ralink_wl_video;
if(ra_classifier_release_func!=NULL)
ra_classifier_release_func();
#endif
wl_proc_exit();
}
示例11: rt2860_remove_one
static void __devexit rt2860_remove_one(IN struct pci_dev *pci_dev)
{
struct net_device *net_dev = pci_get_drvdata(pci_dev);
struct rt_rtmp_adapter *pAd = NULL;
unsigned long csr_addr = net_dev->base_addr; /* pAd->CSRBaseAddress; */
GET_PAD_FROM_NET_DEV(pAd, net_dev);
DBGPRINT(RT_DEBUG_TRACE, ("===> rt2860_remove_one\n"));
if (pAd != NULL) {
/* Unregister/Free all allocated net_device. */
RtmpPhyNetDevExit(pAd, net_dev);
/* Unmap CSR base address */
iounmap((char *)(csr_addr));
/* release memory region */
release_mem_region(pci_resource_start(pci_dev, 0),
pci_resource_len(pci_dev, 0));
/* Free struct rt_rtmp_adapter related structures. */
RtmpRaDevCtrlExit(pAd);
} else {
/* Unregister network device */
RtmpOSNetDevDetach(net_dev);
/* Unmap CSR base address */
iounmap((char *)(net_dev->base_addr));
/* release memory region */
release_mem_region(pci_resource_start(pci_dev, 0),
pci_resource_len(pci_dev, 0));
}
/* Free the root net_device */
RtmpOSNetDevFree(net_dev);
}
示例12: MBSS_Remove
/*
========================================================================
Routine Description:
Remove Multi-BSS network interface.
Arguments:
pAd points to our adapter
Return Value:
None
Note:
FIRST_MBSSID = 1
Main BSS is not removed here.
========================================================================
*/
VOID MBSS_Remove(RTMP_ADAPTER *pAd)
{
struct wifi_dev *wdev;
UINT IdBss;
#ifdef RELEASE_EXCLUDE
DBGPRINT(RT_DEBUG_INFO, ("%s --->\n", __FUNCTION__));
#endif /* RELEASE_EXCLUDE */
for(IdBss=FIRST_MBSSID; IdBss<MAX_MBSSID_NUM(pAd); IdBss++)
{
wdev = &pAd->ApCfg.MBSSID[IdBss].wdev;
if (wdev->if_dev)
{
RtmpOSNetDevDetach(wdev->if_dev);
rtmp_wdev_idx_unreg(pAd, wdev);
RtmpOSNetDevFree(wdev->if_dev);
wdev->if_dev = NULL;
}
}
}
示例13: WDS_Remove
VOID WDS_Remove(RTMP_ADAPTER *pAd)
{
UINT index;
struct wifi_dev *wdev;
for(index = 0; index < MAX_WDS_ENTRY; index++)
{
wdev = &pAd->WdsTab.WdsEntry[index].wdev;
if (wdev->if_dev)
{
RtmpOSNetDevProtect(1);
RtmpOSNetDevDetach(wdev->if_dev);
RtmpOSNetDevProtect(0);
rtmp_wdev_idx_unreg(pAd, wdev);
RtmpOSNetDevFree(wdev->if_dev);
/* Clear it as NULL to prevent latter access error. */
wdev->if_dev = NULL;
}
}
}
示例14: rt2880_module_init
int rt2880_module_init(VOID)
{
struct net_device *net_dev = NULL;
ULONG csr_addr;
INT rv;
PVOID *handle = NULL;
RTMP_ADAPTER *pAd = NULL;
unsigned int dev_irq;
RTMP_OS_NETDEV_OP_HOOK netDevHook;
DBGPRINT(RT_DEBUG_TRACE, ("===> rt2880_probe\n"));
//RtmpRaBusInit============================================
// map physical address to virtual address for accessing register
csr_addr = (unsigned long)RTMP_MAC_CSR_ADDR;
dev_irq = RTMP_MAC_IRQ_NUM;
//RtmpDevInit==============================================
// Allocate RTMP_ADAPTER adapter structure
handle = kmalloc(sizeof(struct os_cookie) , GFP_KERNEL);
if (!handle)
{
DBGPRINT(RT_DEBUG_ERROR, ("Allocate memory for os_cookie failed!\n"));
goto err_out;
}
NdisZeroMemory(handle, sizeof(struct os_cookie));
rv = RTMPAllocAdapterBlock(handle, &pAd);
if (rv != NDIS_STATUS_SUCCESS)
{
DBGPRINT(RT_DEBUG_ERROR, (" RTMPAllocAdapterBlock != NDIS_STATUS_SUCCESS\n"));
kfree(handle);
goto err_out;
}
// Here are the RTMP_ADAPTER structure with rbus-bus specific parameters.
pAd->CSRBaseAddress = (PUCHAR)csr_addr;
RtmpRaDevCtrlInit(pAd, RTMP_DEV_INF_RBUS);
//NetDevInit==============================================
net_dev = RtmpPhyNetDevInit(pAd, &netDevHook);
if (net_dev == NULL)
goto err_out_free_radev;
// Here are the net_device structure with pci-bus specific parameters.
net_dev->irq = dev_irq; // Interrupt IRQ number
net_dev->base_addr = csr_addr; // Save CSR virtual address and irq to device structure
((POS_COOKIE)handle)->pci_dev = (struct pci_dev *)net_dev;
#ifdef CONFIG_STA_SUPPORT
pAd->StaCfg.OriDevType = net_dev->type;
#endif // CONFIG_STA_SUPPORT //
//All done, it's time to register the net device to kernel.
// Register this device
rv = RtmpOSNetDevAttach(net_dev, &netDevHook);
if (rv)
{
DBGPRINT(RT_DEBUG_ERROR, ("failed to call RtmpOSNetDevAttach(), rv=%d!\n", rv));
goto err_out_free_netdev;
}
// due to we didn't have any hook point when do module remove, we use this static as our hook point.
rt2880_dev = net_dev;
wl_proc_init();
DBGPRINT(RT_DEBUG_TRACE, ("%s: at CSR addr 0x%1lx, IRQ %d. \n", net_dev->name, (ULONG)csr_addr, net_dev->irq));
DBGPRINT(RT_DEBUG_TRACE, ("<=== rt2880_probe\n"));
return 0;
err_out_free_netdev:
RtmpOSNetDevFree(net_dev);
err_out_free_radev:
/* free RTMP_ADAPTER strcuture and os_cookie*/
RTMPFreeAdapter(pAd);
err_out:
return -ENODEV;
}
示例15: WDS_Init
VOID WDS_Init(RTMP_ADAPTER *pAd, RTMP_OS_NETDEV_OP_HOOK *pNetDevOps)
{
INT index;
PNET_DEV pWdsNetDev;
/* sanity check to avoid redundant virtual interfaces are created */
if (pAd->flg_wds_init != FALSE)
return;
for(index = 0; index < MAX_WDS_ENTRY; index++)
{
UINT32 MC_RowID = 0, IoctlIF = 0;
RT_802_11_WDS_ENTRY *wds_entry;
struct wifi_dev *wdev;
char *dev_name;
#ifdef MULTIPLE_CARD_SUPPORT
MC_RowID = pAd->MC_RowID;
#endif /* MULTIPLE_CARD_SUPPORT */
#ifdef HOSTAPD_SUPPORT
IoctlIF = pAd->IoctlIF;
#endif /* HOSTAPD_SUPPORT */
dev_name = get_dev_name_prefix(pAd, INT_WDS);
pWdsNetDev = RtmpOSNetDevCreate(MC_RowID, &IoctlIF, INT_WDS, index, sizeof(struct mt_dev_priv), dev_name);
#ifdef HOSTAPD_SUPPORT
pAd->IoctlIF = IoctlIF;
#endif /* HOSTAPD_SUPPORT */
wds_entry = &pAd->WdsTab.WdsEntry[index];
wdev = &wds_entry->wdev;
if (pWdsNetDev == NULL)
{
/* allocation fail, exit */
DBGPRINT(RT_DEBUG_ERROR, ("Allocate network device fail (WDS)...\n"));
break;
}
DBGPRINT(RT_DEBUG_TRACE, ("The new WDS interface MAC = %02X:%02X:%02X:%02X:%02X:%02X\n",
PRINT_MAC(pAd->MacTab.Content[wds_entry->MacTabMatchWCID].Addr)));
NdisZeroMemory(&wds_entry->WdsCounter, sizeof(WDS_COUNTER));
wdev->wdev_type = WDEV_TYPE_WDS;
wdev->func_dev = wds_entry;
wdev->func_idx = index;
wdev->sys_handle = (void *)pAd;
wdev->if_dev = pWdsNetDev;
wdev->tx_pkt_allowed = ApWdsAllowToSendPacket;
// TODO: shiang-usw, modify this to WDSSendPacket
wdev->tx_pkt_handle = APSendPacket;
wdev->wdev_hard_tx = APHardTransmit;
wdev->rx_pkt_allowed = ap_rx_pkt_allow;
wdev->rx_pkt_foward = wds_rx_foward_handle;
wdev->PhyMode = 0xff;
wdev->allow_data_tx = TRUE; // let tx_pkt_allowed() to check it!
wdev->PortSecured = WPA_802_1X_PORT_SECURED;
NdisMoveMemory(&wdev->if_addr[0], &pNetDevOps->devAddr[0], MAC_ADDR_LEN);
RTMP_OS_NETDEV_SET_PRIV(pWdsNetDev, pAd);
RTMP_OS_NETDEV_SET_WDEV(pWdsNetDev, wdev);
if (rtmp_wdev_idx_reg(pAd, wdev) < 0) {
DBGPRINT(RT_DEBUG_ERROR, ("Assign wdev idx for %s failed, free net device!\n",
RTMP_OS_NETDEV_GET_DEVNAME(pWdsNetDev)));
RtmpOSNetDevFree(pWdsNetDev);
break;
}
pNetDevOps->priv_flags = INT_WDS;
pNetDevOps->needProtcted = TRUE;
pNetDevOps->wdev = wdev;
/* Register this device */
RtmpOSNetDevAttach(pAd->OpMode, pWdsNetDev, pNetDevOps);
}
if (index > 0)
pAd->flg_wds_init = TRUE;
NdisAllocateSpinLock(pAd, &pAd->WdsTabLock);
DBGPRINT(RT_DEBUG_TRACE, ("Total allocated %d WDS interfaces!\n", index));
}