summaryrefslogtreecommitdiff
path: root/src/inc/gchost.idl
blob: 6d85f91513650c1aea390dceae5fe80240a90d5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
/* -------------------------------------------------------------------------- *
 * Common Language Runtime Profiling interfaces
 *
 * The IGCHost allows a host environment to get statistics about the
 * garbage collector as well as to gain some limited control over collections.
 * This interface can be QueryInterface'd for on from the CorHost object.
 * -------------------------------------------------------------------------- */
import "unknwn.idl";


#if defined(FEATURE_WINDOWSPHONE)
/*
 * This structure is used to return statics for the GC system.  Set the Flags
 * value to a bitmask of values that should be returned.  Only those values which
 * are requested are calculated and returned to the caller.
 */
typedef struct _COR_GC_STATS
{
    ULONG       Flags;                                  // What values to get.

    // Value when COR_GC_COUNTS is specified.
    SIZE_T       ExplicitGCCount;                        // How many times was GC forced to run by external request.
    SIZE_T       GenCollectionsTaken[3];                    // Number of collections done for each generation

    // Memory sizes, valid for COR_GC_MEMORYUSAGE.
    SIZE_T       CommittedKBytes;                        // Total committed bytes from all heaps.    
    SIZE_T       ReservedKBytes;                         // Total reserved bytes from all heaps.    
    SIZE_T       Gen0HeapSizeKBytes;                     // Size of gen 0 heap.
    SIZE_T       Gen1HeapSizeKBytes;                     // Size of gen 1 heap.
    SIZE_T       Gen2HeapSizeKBytes;                     // Size of gen 2 heap.
    SIZE_T       LargeObjectHeapSizeKBytes;              // Size of large object heap.
    SIZE_T       KBytesPromotedFromGen0;                 // How many bytes promoted to next generation.
    SIZE_T       KBytesPromotedFromGen1;

} COR_GC_STATS;
#endif // FEATURE_WINDOWSPHONE

cpp_quote("/*")
cpp_quote(" * WARNING - This is a dummy interface that should never be used.")
cpp_quote(" * The code is written this way because Midl requires a CoClass, Interface, etc... that generates")
cpp_quote(" * a guid.  Removing the IGCHost interface removes the only guid")
cpp_quote(" * This option was selected because ifdefs are not simple to implement for excluding files in SOURCES")
cpp_quote("*/")
[
	object,
	uuid(F9423916-2A35-4f03-9EE9-DDAFA3C8AEE0),
	pointer_default(unique),
	local
]
interface IDummyDoNotUse : IUnknown
{
}