< prev index next >

src/hotspot/share/gc/z/zGranuleMap.hpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 19,63 **** * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ ! #ifndef SHARE_GC_Z_ZADDRESSRANGEMAP_HPP ! #define SHARE_GC_Z_ZADDRESSRANGEMAP_HPP #include "memory/allocation.hpp" ! template<typename T, size_t AddressRangeShift> ! class ZAddressRangeMapIterator; ! template <typename T, size_t AddressRangeShift> ! class ZAddressRangeMap { friend class VMStructs; ! friend class ZAddressRangeMapIterator<T, AddressRangeShift>; private: T* const _map; size_t index_for_addr(uintptr_t addr) const; size_t size() const; public: ! ZAddressRangeMap(); ! ~ZAddressRangeMap(); T get(uintptr_t addr) const; void put(uintptr_t addr, T value); }; ! template <typename T, size_t AddressRangeShift> ! class ZAddressRangeMapIterator : public StackObj { public: ! const ZAddressRangeMap<T, AddressRangeShift>* const _map; ! size_t _next; public: ! ZAddressRangeMapIterator(const ZAddressRangeMap<T, AddressRangeShift>* map); bool next(T* value); }; ! #endif // SHARE_GC_Z_ZADDRESSRANGEMAP_HPP --- 19,63 ---- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ ! #ifndef SHARE_GC_Z_ZGRANULEMAP_HPP ! #define SHARE_GC_Z_ZGRANULEMAP_HPP #include "memory/allocation.hpp" ! template<typename T> ! class ZGranuleMapIterator; ! template <typename T> ! class ZGranuleMap { friend class VMStructs; ! friend class ZGranuleMapIterator<T>; private: T* const _map; size_t index_for_addr(uintptr_t addr) const; size_t size() const; public: ! ZGranuleMap(); ! ~ZGranuleMap(); T get(uintptr_t addr) const; void put(uintptr_t addr, T value); }; ! template <typename T> ! class ZGranuleMapIterator : public StackObj { public: ! const ZGranuleMap<T>* const _map; ! size_t _next; public: ! ZGranuleMapIterator(const ZGranuleMap<T>* map); bool next(T* value); }; ! #endif // SHARE_GC_Z_ZGRANULEMAP_HPP
< prev index next >