Lines Matching refs:pFilter

233     PPDMNSFILTER pFilter = pBwGroup->pFiltersHeadR3;
234 while (pFilter)
236 bool fChoked = ASMAtomicXchgBool(&pFilter->fChoked, false);
237 Log3((LOG_FN_FMT ": pFilter=%#p fChoked=%RTbool\n", __PRETTY_FUNCTION__, pFilter, fChoked));
238 if (fChoked && pFilter->pIDrvNetR3)
240 LogFlowFunc(("Calling pfnXmitPending for pFilter=%#p\n", pFilter));
241 pFilter->pIDrvNetR3->pfnXmitPending(pFilter->pIDrvNetR3);
244 pFilter = pFilter->pNextR3;
251 static void pdmNsFilterLink(PPDMNSFILTER pFilter)
253 PPDMNSBWGROUP pBwGroup = pFilter->pBwGroupR3;
256 pFilter->pNextR3 = pBwGroup->pFiltersHeadR3;
257 pBwGroup->pFiltersHeadR3 = pFilter;
263 static void pdmNsFilterUnlink(PPDMNSFILTER pFilter)
265 PPDMNSBWGROUP pBwGroup = pFilter->pBwGroupR3;
276 if (pFilter == pBwGroup->pFiltersHeadR3)
277 pBwGroup->pFiltersHeadR3 = pFilter->pNextR3;
282 && pPrev->pNextR3 != pFilter)
286 pPrev->pNextR3 = pFilter->pNextR3;
300 * @param pFilter Pointer to the filter we attach.
302 VMMR3_INT_DECL(int) PDMR3NsAttach(PUVM pUVM, PPDMDRVINS pDrvIns, const char *pszBwGroup, PPDMNSFILTER pFilter)
305 AssertPtrReturn(pFilter, VERR_INVALID_POINTER);
306 AssertReturn(pFilter->pBwGroupR3 == NULL, VERR_ALREADY_EXISTS);
324 PPDMNSBWGROUP pBwGroupOld = ASMAtomicXchgPtrT(&pFilter->pBwGroupR3, pBwGroupNew, PPDMNSBWGROUP);
325 ASMAtomicWritePtr(&pFilter->pBwGroupR0, MMHyperR3ToR0(pUVM->pVM, pBwGroupNew));
328 pdmNsFilterLink(pFilter);
342 * @param pFilter Pointer to the filter we detach.
344 VMMR3_INT_DECL(int) PDMR3NsDetach(PUVM pUVM, PPDMDRVINS pDrvIns, PPDMNSFILTER pFilter)
347 AssertPtrReturn(pFilter, VERR_INVALID_POINTER);
350 if (!pFilter->pBwGroupR3)
352 AssertPtrReturn(pFilter->pBwGroupR3, VERR_INVALID_POINTER);
357 pdmNsFilterUnlink(pFilter);
358 PPDMNSBWGROUP pBwGroup = ASMAtomicXchgPtrT(&pFilter->pBwGroupR3, NULL, PPDMNSBWGROUP);