/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* 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.
*
*/
#include "memory/cardTableModRefBS.hpp"
#include "memory/memRegion.hpp"
#include "oops/oop.inline.hpp"
#ifndef SERIALGC
class DirtyCardQueueSet;
// This barrier is specialized to use a logging barrier to support
// snapshot-at-the-beginning marking.
public:
// Add "pre_val" to a set of objects that may have been disconnected from the
// pre-marking object graph.
int max_covered_regions);
}
virtual bool has_write_ref_pre_barrier() { return true; }
// This notes that we don't need to access any BarrierSet data
// structures, so this can be called from a static context.
}
}
// We export this to make it available in cases where the static
// type of the barrier set is known. Note that it is non-virtual.
}
// These are the more general virtual versions.
}
}
guarantee(false, "Not needed");
}
if (!dest_uninitialized) {
}
}
if (!dest_uninitialized) {
}
}
};
// Adds card-table logging to the post-barrier.
// Usual invariant: all dirty cards are logged in the DirtyCardQueueSet.
private:
public:
int max_covered_regions);
}
// Can be called from static contexts.
// NB: if you do a whole-heap invalidation, the "usual invariant" defined
// above no longer applies.
};
#endif // SERIALGC
#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1SATBCARDTABLEMODREFBS_HPP