/* * Copyright (c) 2019, 2025, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ #ifndef SVM_G1_GC_STRUCTS_H #define SVM_G1_GC_STRUCTS_H #include #ifdef __cplusplus namespace svm_gc { #endif struct G1HeapOptions { size_t max_heap_size; size_t heap_address_space_size; size_t physical_memory_size; }; struct G1InitState { void* card_table_address; void* gc_total_collections_address; int tlab_top_offset; int tlab_end_offset; int satb_queue_marking_offset; int satb_queue_buffer_offset; int satb_queue_index_offset; int card_queue_buffer_offset; int card_queue_index_offset; int card_table_shift; int log_of_heap_region_grain_bytes; int java_thread_size; int vm_operation_data_size; int vm_operation_wrapper_data_size; char dirty_card_value; char young_card_value; }; struct G1RegionBoundaries { u_char *bottom; u_char *top; }; struct G1RegionInfo { u_char *bottom; u_char *top; u_char *end; u_char *top_at_mark_start; u_char *parsable_bottom; size_t pinned_object_count; char in_collection_set; char remembered_set_state; char region_type; }; struct G1InternalState { unsigned int total_collections; unsigned int full_collections; void* card_table_start; size_t card_table_size; void* block_offset_table_start; size_t block_offset_table_size; }; #ifdef __cplusplus } // namespace svm_gc #endif #endif // SVM_G1_GC_STRUCTS_H