Lines Matching full:mapping
29 // Mapping app memory and back does not produce the same address,
33 // Mapping is non-linear for linear user range.
60 C/C++ on netbsd/amd64 can reuse the same mapping:
821 template <typename Mapping>
825 return Mapping::kLoAppMemBeg; in Apply()
827 return Mapping::kLoAppMemEnd; in Apply()
829 return Mapping::kMidAppMemBeg; in Apply()
831 return Mapping::kMidAppMemEnd; in Apply()
833 return Mapping::kHiAppMemBeg; in Apply()
835 return Mapping::kHiAppMemEnd; in Apply()
837 return Mapping::kHeapMemBeg; in Apply()
839 return Mapping::kHeapMemEnd; in Apply()
841 return Mapping::kVdsoBeg; in Apply()
843 return Mapping::kShadowBeg; in Apply()
845 return Mapping::kShadowEnd; in Apply()
847 return Mapping::kMetaShadowBeg; in Apply()
849 return Mapping::kMetaShadowEnd; in Apply()
889 template <typename Mapping>
891 return (mem >= Mapping::kHeapMemBeg && mem < Mapping::kHeapMemEnd) || in Apply()
892 (mem >= Mapping::kMidAppMemBeg && mem < Mapping::kMidAppMemEnd) || in Apply()
893 (mem >= Mapping::kLoAppMemBeg && mem < Mapping::kLoAppMemEnd) || in Apply()
894 (mem >= Mapping::kHiAppMemBeg && mem < Mapping::kHiAppMemEnd); in Apply()
902 template <typename Mapping>
904 return mem >= Mapping::kShadowBeg && mem <= Mapping::kShadowEnd; in Apply()
914 template <typename Mapping>
916 return mem >= Mapping::kMetaShadowBeg && mem <= Mapping::kMetaShadowEnd; in Apply()
926 template <typename Mapping>
928 DCHECK(IsAppMemImpl::Apply<Mapping>(x)); in Apply()
929 return (((x) & ~(Mapping::kShadowMsk | (kShadowCell - 1))) ^ in Apply()
930 Mapping::kShadowXor) * in Apply()
932 Mapping::kShadowAdd; in Apply()
942 template <typename Mapping>
944 DCHECK(IsAppMemImpl::Apply<Mapping>(x)); in Apply()
945 return (u32 *)(((((x) & ~(Mapping::kShadowMsk | (kMetaShadowCell - 1)))) / in Apply()
947 Mapping::kMetaShadowBeg); in Apply()
955 template <typename Mapping>
957 if (!IsShadowMemImpl::Apply<Mapping>(sp)) in Apply()
959 // The shadow mapping is non-linear and we've lost some bits, so we don't in Apply()
960 // have an easy way to restore the original app address. But the mapping is in Apply()
962 // low/mid/high range consecutively and see if shadow->app->shadow mapping in Apply()
965 ((sp - Mapping::kShadowAdd) / kShadowMultiplier) ^ Mapping::kShadowXor; in Apply()
966 if (p >= Mapping::kLoAppMemBeg && p < Mapping::kLoAppMemEnd && in Apply()
967 MemToShadowImpl::Apply<Mapping>(p) == sp) in Apply()
969 if (Mapping::kMidAppMemBeg) { in Apply()
970 uptr p_mid = p + (Mapping::kMidAppMemBeg & Mapping::kShadowMsk); in Apply()
971 if (p_mid >= Mapping::kMidAppMemBeg && p_mid < Mapping::kMidAppMemEnd && in Apply()
972 MemToShadowImpl::Apply<Mapping>(p_mid) == sp) in Apply()
975 return p | Mapping::kShadowMsk; in Apply()
991 template <typename Mapping>
998 Mapping::kLoAppMemBeg, Mapping::kLoAppMemEnd, Mapping::kMidAppMemBeg, in Apply()
999 Mapping::kMidAppMemEnd, Mapping::kHiAppMemBeg, Mapping::kHiAppMemEnd, in Apply()
1000 Mapping::kHeapMemBeg, Mapping::kHeapMemEnd, in Apply()