< 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 >