//
// Copyright 2004-2009 Sun Microsystems, Inc.  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.
//
// 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
// CA 95054 USA or visit www.sun.com if you need additional information or
// have any questions.
//
//

// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps!

bufferingOopClosure.hpp			genOopClosures.hpp
bufferingOopClosure.hpp			generation.hpp
bufferingOopClosure.hpp			os.hpp

cardTableRS.cpp				concurrentMark.hpp
cardTableRS.cpp				g1SATBCardTableModRefBS.hpp

collectionSetChooser.cpp		g1CollectedHeap.inline.hpp
collectionSetChooser.cpp		g1CollectorPolicy.hpp
collectionSetChooser.cpp		collectionSetChooser.hpp
collectionSetChooser.cpp		space.inline.hpp

collectionSetChooser.hpp		heapRegion.hpp
collectionSetChooser.hpp                growableArray.hpp

concurrentG1Refine.cpp			atomic.hpp
concurrentG1Refine.cpp			concurrentG1Refine.hpp
concurrentG1Refine.cpp			concurrentG1RefineThread.hpp
concurrentG1Refine.cpp			copy.hpp
concurrentG1Refine.cpp			g1CollectedHeap.inline.hpp
concurrentG1Refine.cpp			g1RemSet.hpp
concurrentG1Refine.cpp			space.inline.hpp

concurrentG1Refine.hpp			globalDefinitions.hpp
concurrentG1Refine.hpp			allocation.hpp

concurrentG1RefineThread.cpp		concurrentG1Refine.hpp
concurrentG1RefineThread.cpp		concurrentG1RefineThread.hpp
concurrentG1RefineThread.cpp		g1CollectedHeap.inline.hpp
concurrentG1RefineThread.cpp            g1CollectorPolicy.hpp
concurrentG1RefineThread.cpp		handles.inline.hpp
concurrentG1RefineThread.cpp		mutexLocker.hpp
concurrentG1RefineThread.cpp		resourceArea.hpp

concurrentG1RefineThread.hpp		concurrentGCThread.hpp
concurrentG1RefineThread.hpp		coTracker.hpp

concurrentMark.cpp			concurrentMark.hpp
concurrentMark.cpp			concurrentMarkThread.inline.hpp
concurrentMark.cpp			g1CollectedHeap.inline.hpp
concurrentMark.cpp                      g1CollectorPolicy.hpp
concurrentMark.cpp                      g1RemSet.hpp
concurrentMark.cpp		        gcOverheadReporter.hpp
concurrentMark.cpp		        genOopClosures.inline.hpp
concurrentMark.cpp                      heapRegionRemSet.hpp
concurrentMark.cpp                      heapRegionSeq.inline.hpp
concurrentMark.cpp                      handles.inline.hpp
concurrentMark.cpp			java.hpp
concurrentMark.cpp			oop.inline.hpp
concurrentMark.cpp                      referencePolicy.hpp
concurrentMark.cpp			resourceArea.hpp
concurrentMark.cpp			symbolTable.hpp

concurrentMark.hpp			coTracker.hpp
concurrentMark.hpp			heapRegion.hpp
concurrentMark.hpp			taskqueue.hpp

concurrentMarkThread.cpp		concurrentMarkThread.inline.hpp
concurrentMarkThread.cpp		g1CollectedHeap.inline.hpp
concurrentMarkThread.cpp		g1CollectorPolicy.hpp
concurrentMarkThread.cpp                g1MMUTracker.hpp
concurrentMarkThread.cpp		resourceArea.hpp
concurrentMarkThread.cpp		vm_operations_g1.hpp
concurrentMarkThread.cpp                vmThread.hpp

concurrentMarkThread.hpp		concurrentGCThread.hpp

concurrentMarkThread.inline.hpp		concurrentMark.hpp
concurrentMarkThread.inline.hpp		concurrentMarkThread.hpp

concurrentZFThread.cpp			concurrentZFThread.hpp
concurrentZFThread.cpp			heapRegion.hpp
concurrentZFThread.cpp			g1CollectedHeap.inline.hpp
concurrentZFThread.cpp			copy.hpp
concurrentZFThread.cpp			mutexLocker.hpp
concurrentZFThread.cpp			space.inline.hpp

concurrentZFThread.hpp			concurrentGCThread.hpp
concurrentZFThread.hpp			coTracker.hpp

dirtyCardQueue.cpp                      atomic.hpp
dirtyCardQueue.cpp                      dirtyCardQueue.hpp
dirtyCardQueue.cpp			heapRegionRemSet.hpp
dirtyCardQueue.cpp                      mutexLocker.hpp
dirtyCardQueue.cpp                      ptrQueue.inline.hpp
dirtyCardQueue.cpp                      safepoint.hpp
dirtyCardQueue.cpp                      thread.hpp
dirtyCardQueue.cpp                      thread_<os_family>.inline.hpp
dirtyCardQueue.cpp                      workgroup.hpp

dirtyCardQueue.hpp                      allocation.hpp
dirtyCardQueue.hpp                      ptrQueue.hpp

g1BlockOffsetTable.cpp			g1BlockOffsetTable.inline.hpp
g1BlockOffsetTable.cpp			java.hpp
g1BlockOffsetTable.cpp			oop.inline.hpp
g1BlockOffsetTable.cpp			space.hpp

g1BlockOffsetTable.hpp			globalDefinitions.hpp
g1BlockOffsetTable.hpp			memRegion.hpp
g1BlockOffsetTable.hpp			virtualspace.hpp

g1BlockOffsetTable.inline.hpp		g1BlockOffsetTable.hpp
g1BlockOffsetTable.inline.hpp		space.hpp

g1CollectedHeap.cpp                     aprofiler.hpp
g1CollectedHeap.cpp                     bufferingOopClosure.hpp
g1CollectedHeap.cpp                     concurrentG1Refine.hpp
g1CollectedHeap.cpp                     concurrentG1RefineThread.hpp
g1CollectedHeap.cpp			concurrentMarkThread.inline.hpp
g1CollectedHeap.cpp                     concurrentZFThread.hpp
g1CollectedHeap.cpp                     g1CollectedHeap.inline.hpp
g1CollectedHeap.cpp                     g1CollectorPolicy.hpp
g1CollectedHeap.cpp                     g1MarkSweep.hpp
g1CollectedHeap.cpp                     g1RemSet.hpp
g1CollectedHeap.cpp                     g1OopClosures.inline.hpp
g1CollectedHeap.cpp                     genOopClosures.inline.hpp
g1CollectedHeap.cpp                     gcLocker.inline.hpp
g1CollectedHeap.cpp                     gcOverheadReporter.hpp
g1CollectedHeap.cpp                     generationSpec.hpp
g1CollectedHeap.cpp                     heapRegionRemSet.hpp
g1CollectedHeap.cpp                     heapRegionSeq.inline.hpp
g1CollectedHeap.cpp                     icBuffer.hpp
g1CollectedHeap.cpp                     isGCActiveMark.hpp
g1CollectedHeap.cpp			oop.inline.hpp
g1CollectedHeap.cpp			oop.pcgc.inline.hpp
g1CollectedHeap.cpp			parGCAllocBuffer.hpp
g1CollectedHeap.cpp                     vm_operations_g1.hpp
g1CollectedHeap.cpp                     vmThread.hpp

g1CollectedHeap.hpp                     barrierSet.hpp
g1CollectedHeap.hpp                     heapRegion.hpp
g1CollectedHeap.hpp                     memRegion.hpp
g1CollectedHeap.hpp                     sharedHeap.hpp

g1CollectedHeap.inline.hpp              concurrentMark.hpp
g1CollectedHeap.inline.hpp              g1CollectedHeap.hpp
g1CollectedHeap.inline.hpp              heapRegionSeq.hpp
g1CollectedHeap.inline.hpp		taskqueue.hpp

g1CollectorPolicy.cpp			concurrentG1Refine.hpp
g1CollectorPolicy.cpp			concurrentMark.hpp
g1CollectorPolicy.cpp			concurrentMarkThread.inline.hpp
g1CollectorPolicy.cpp			debug.hpp
g1CollectorPolicy.cpp			java.hpp
g1CollectorPolicy.cpp                   g1CollectedHeap.inline.hpp
g1CollectorPolicy.cpp                   g1CollectorPolicy.hpp
g1CollectorPolicy.cpp                   heapRegionRemSet.hpp
g1CollectorPolicy.cpp			mutexLocker.hpp
g1CollectorPolicy.cpp			gcPolicyCounters.hpp

g1CollectorPolicy.hpp                   collectorPolicy.hpp
g1CollectorPolicy.hpp                   collectionSetChooser.hpp
g1CollectorPolicy.hpp			g1MMUTracker.hpp

g1_globals.cpp				g1_globals.hpp

g1_globals.hpp                          globals.hpp

globals.cpp                             g1_globals.hpp
top.hpp                                 g1_globals.hpp

g1MarkSweep.cpp                         aprofiler.hpp
g1MarkSweep.cpp                         biasedLocking.hpp
g1MarkSweep.cpp                         codeCache.hpp
g1MarkSweep.cpp                         events.hpp
g1MarkSweep.cpp                         fprofiler.hpp
g1MarkSweep.hpp                         g1CollectedHeap.inline.hpp
g1MarkSweep.cpp                         g1MarkSweep.hpp
g1MarkSweep.cpp                         gcLocker.hpp
g1MarkSweep.cpp                         genCollectedHeap.hpp
g1MarkSweep.hpp                         heapRegion.hpp
g1MarkSweep.cpp                         icBuffer.hpp
g1MarkSweep.cpp                         instanceRefKlass.hpp
g1MarkSweep.cpp                         javaClasses.hpp
g1MarkSweep.cpp				jvmtiExport.hpp
g1MarkSweep.cpp                         copy.hpp
g1MarkSweep.cpp                         modRefBarrierSet.hpp
g1MarkSweep.cpp                         oop.inline.hpp
g1MarkSweep.cpp                         referencePolicy.hpp
g1MarkSweep.cpp                         space.hpp
g1MarkSweep.cpp                         symbolTable.hpp
g1MarkSweep.cpp                         synchronizer.hpp
g1MarkSweep.cpp                         systemDictionary.hpp
g1MarkSweep.cpp                         thread.hpp
g1MarkSweep.cpp                         vmSymbols.hpp
g1MarkSweep.cpp                         vmThread.hpp

g1MarkSweep.hpp                         generation.hpp
g1MarkSweep.hpp                         growableArray.hpp
g1MarkSweep.hpp                         markOop.hpp
g1MarkSweep.hpp                         genMarkSweep.hpp
g1MarkSweep.hpp                         oop.hpp
g1MarkSweep.hpp                         timer.hpp
g1MarkSweep.hpp                         universe.hpp

g1OopClosures.inline.hpp		concurrentMark.hpp
g1OopClosures.inline.hpp		g1OopClosures.hpp
g1OopClosures.inline.hpp		g1CollectedHeap.hpp
g1OopClosures.inline.hpp		g1RemSet.hpp

g1MMUTracker.cpp			g1MMUTracker.hpp
g1MMUTracker.cpp			ostream.hpp
g1MMUTracker.cpp			mutexLocker.hpp

g1MMUTracker.hpp			debug.hpp
g1MMUTracker.hpp			allocation.hpp
g1RemSet.cpp				bufferingOopClosure.hpp
g1RemSet.cpp				concurrentG1Refine.hpp
g1RemSet.cpp				concurrentG1RefineThread.hpp
g1RemSet.cpp				g1BlockOffsetTable.inline.hpp
g1RemSet.cpp				g1CollectedHeap.inline.hpp
g1RemSet.cpp				g1CollectorPolicy.hpp
g1RemSet.cpp				g1RemSet.inline.hpp
g1RemSet.cpp				g1OopClosures.inline.hpp
g1RemSet.cpp				heapRegionSeq.inline.hpp
g1RemSet.cpp				intHisto.hpp
g1RemSet.cpp				iterator.hpp
g1RemSet.cpp				oop.inline.hpp

g1RemSet.inline.hpp			g1RemSet.hpp
g1RemSet.inline.hpp			heapRegionRemSet.hpp

g1SATBCardTableModRefBS.cpp		g1SATBCardTableModRefBS.hpp
g1SATBCardTableModRefBS.cpp		heapRegion.hpp
g1SATBCardTableModRefBS.cpp		mutexLocker.hpp
g1SATBCardTableModRefBS.cpp		thread.hpp
g1SATBCardTableModRefBS.cpp		thread_<os_family>.inline.hpp
g1SATBCardTableModRefBS.cpp		satbQueue.hpp

g1SATBCardTableModRefBS.hpp		cardTableModRefBS.hpp
g1SATBCardTableModRefBS.hpp		memRegion.hpp

heapRegion.cpp                          concurrentZFThread.hpp
heapRegion.cpp                          g1BlockOffsetTable.inline.hpp
heapRegion.cpp                          g1CollectedHeap.inline.hpp
heapRegion.cpp                          g1OopClosures.inline.hpp
heapRegion.cpp                          genOopClosures.inline.hpp
heapRegion.cpp                          heapRegion.inline.hpp
heapRegion.cpp                          heapRegionRemSet.hpp
heapRegion.cpp                          heapRegionSeq.inline.hpp
heapRegion.cpp                          iterator.hpp
heapRegion.cpp                          oop.inline.hpp

heapRegion.hpp                          space.inline.hpp
heapRegion.hpp                          spaceDecorator.hpp
heapRegion.hpp                          g1BlockOffsetTable.inline.hpp
heapRegion.hpp                          watermark.hpp
heapRegion.hpp				g1_specialized_oop_closures.hpp
heapRegion.hpp				survRateGroup.hpp
heapRegion.hpp				ageTable.hpp

heapRegionRemSet.hpp			sparsePRT.hpp

heapRegionRemSet.cpp                    allocation.hpp
heapRegionRemSet.cpp                    bitMap.inline.hpp
heapRegionRemSet.cpp                    g1BlockOffsetTable.inline.hpp
heapRegionRemSet.cpp                    g1CollectedHeap.inline.hpp
heapRegionRemSet.cpp                    heapRegionRemSet.hpp
heapRegionRemSet.cpp			heapRegionSeq.inline.hpp
heapRegionRemSet.cpp                    globalDefinitions.hpp
heapRegionRemSet.cpp                    space.inline.hpp

heapRegionSeq.cpp                       allocation.hpp
heapRegionSeq.cpp                       g1CollectedHeap.inline.hpp
heapRegionSeq.cpp                       heapRegionSeq.hpp

heapRegionSeq.hpp                       growableArray.hpp
heapRegionSeq.hpp                       heapRegion.hpp

heapRegionSeq.inline.hpp                heapRegionSeq.hpp

klass.hpp				g1OopClosures.hpp

ptrQueue.cpp                            allocation.hpp
ptrQueue.cpp                            allocation.inline.hpp
ptrQueue.cpp                            mutex.hpp
ptrQueue.cpp                            mutexLocker.hpp
ptrQueue.cpp                            ptrQueue.hpp
ptrQueue.cpp                            ptrQueue.inline.hpp
ptrQueue.cpp                            thread_<os_family>.inline.hpp

ptrQueue.hpp                            allocation.hpp
ptrQueue.hpp                            sizes.hpp

ptrQueue.inline.hpp                     ptrQueue.hpp

satbQueue.cpp                           allocation.inline.hpp
satbQueue.cpp                           mutexLocker.hpp
satbQueue.cpp                           ptrQueue.inline.hpp
satbQueue.cpp                           satbQueue.hpp
satbQueue.cpp                           sharedHeap.hpp
satbQueue.cpp                           thread.hpp

satbQueue.hpp                           ptrQueue.hpp

sparsePRT.cpp				allocation.inline.hpp
sparsePRT.cpp				cardTableModRefBS.hpp
sparsePRT.cpp				heapRegion.hpp
sparsePRT.cpp				heapRegionRemSet.hpp
sparsePRT.cpp				mutexLocker.hpp
sparsePRT.cpp				sparsePRT.hpp
sparsePRT.cpp				space.inline.hpp

sparsePRT.hpp				allocation.hpp
sparsePRT.hpp				cardTableModRefBS.hpp
sparsePRT.hpp				globalDefinitions.hpp
sparsePRT.hpp				heapRegion.hpp
sparsePRT.hpp				mutex.hpp

specialized_oop_closures.hpp		g1_specialized_oop_closures.hpp

survRateGroup.hpp			numberSeq.hpp

survRateGroup.cpp			allocation.hpp
survRateGroup.cpp			g1CollectedHeap.inline.hpp
survRateGroup.cpp			g1CollectorPolicy.hpp
survRateGroup.cpp			heapRegion.hpp
survRateGroup.cpp			survRateGroup.hpp

thread.cpp				concurrentMarkThread.inline.hpp

universe.cpp                            g1CollectedHeap.inline.hpp
universe.cpp                            g1CollectorPolicy.hpp

vm_operations_g1.hpp			vmGCOperations.hpp

vm_operations_g1.cpp			vm_operations_g1.hpp
vm_operations_g1.cpp                    g1CollectedHeap.inline.hpp
vm_operations_g1.cpp                    isGCActiveMark.hpp
