MCPcopy Create free account
hub / github.com/F-Stack/f-stack / pmap_extract

Function pmap_extract

freebsd/arm/arm/pmap-v6.c:1956–1975  ·  view source on GitHub ↗

* Routine: pmap_extract * Function: * Extract the physical page address associated * with the given map/virtual_address pair. */

Source from the content-addressed store, hash-verified

1954 * with the given map/virtual_address pair.
1955 */
1956vm_paddr_t
1957pmap_extract(pmap_t pmap, vm_offset_t va)
1958{
1959 vm_paddr_t pa;
1960 pt1_entry_t pte1;
1961 pt2_entry_t *pte2p;
1962
1963 PMAP_LOCK(pmap);
1964 pte1 = pte1_load(pmap_pte1(pmap, va));
1965 if (pte1_is_section(pte1))
1966 pa = pte1_pa(pte1) | (va & PTE1_OFFSET);
1967 else if (pte1_is_link(pte1)) {
1968 pte2p = pmap_pte2(pmap, va);
1969 pa = pte2_pa(pte2_load(pte2p)) | (va & PTE2_OFFSET);
1970 pmap_pte2_release(pte2p);
1971 } else
1972 pa = 0;
1973 PMAP_UNLOCK(pmap);
1974 return (pa);
1975}
1976
1977/*
1978 * Routine: pmap_extract_and_hold

Callers 5

db_validate_addressFunction · 0.70
memrwFunction · 0.70
pmap_sync_icacheFunction · 0.70
_bus_dmamap_count_pagesFunction · 0.70
_bus_dmamap_load_bufferFunction · 0.70

Calls 9

pte1_loadFunction · 0.85
pmap_pte1Function · 0.85
pte1_is_sectionFunction · 0.85
pte1_paFunction · 0.85
pte1_is_linkFunction · 0.85
pmap_pte2Function · 0.85
pte2_paFunction · 0.85
pte2_loadFunction · 0.85
pmap_pte2_releaseFunction · 0.85

Tested by

no test coverage detected