1 | // Licensed to the .NET Foundation under one or more agreements. |
2 | // The .NET Foundation licenses this file to you under the MIT license. |
3 | // See the LICENSE file in the project root for more information. |
4 | #ifndef __DACCESS_GCINTERFACE_DAC_H__ |
5 | #define __DACCESS_GCINTERFACE_DAC_H__ |
6 | |
7 | #include "../../gc/gcinterface.dac.h" |
8 | |
9 | // The following six function prototypes are for functions that are used by the DAC |
10 | // to inspect the handle table in detail. The semantics of these functions MUST be |
11 | // versioned along with the rest of this interface - any changes in semantics |
12 | // must be accompanied with a major versino bump. |
13 | // |
14 | // Please do not add any additional functions to this list; we'd like to keep it |
15 | // to an absolute minimum. |
16 | #ifdef DACCESS_COMPILE |
17 | // for DAC builds, OBJECTHANDLE is a uintptr_t. |
18 | GC_DAC_VISIBLE |
19 | OBJECTREF GetDependentHandleSecondary(OBJECTHANDLE handle); |
20 | |
21 | GC_DAC_VISIBLE_NO_MANGLE |
22 | void HndScanHandlesForGC( |
23 | DPTR(dac_handle_table) hTable, |
24 | HANDLESCANPROC scanProc, |
25 | uintptr_t param1, |
26 | uintptr_t param2, |
27 | const uint32_t *types, |
28 | uint32_t typeCount, |
29 | uint32_t condemned, |
30 | uint32_t maxGen, |
31 | uint32_t flags); |
32 | |
33 | GC_DAC_VISIBLE_NO_MANGLE |
34 | void HndEnumHandles( |
35 | DPTR(dac_handle_table) hTable, |
36 | const uint32_t *puType, |
37 | uint32_t uTypeCount, |
38 | HANDLESCANPROC pfnEnum, |
39 | uintptr_t lParam1, |
40 | uintptr_t lParam2, |
41 | bool fAsync); |
42 | |
43 | GC_DAC_VISIBLE |
44 | OBJECTREF HndFetchHandle(OBJECTHANDLE handle); |
45 | |
46 | GC_DAC_VISIBLE |
47 | struct ADIndex HndGetHandleADIndex(OBJECTHANDLE handle); |
48 | |
49 | GC_DAC_VISIBLE |
50 | uintptr_t HndGetHandleExtraInfo(OBJECTHANDLE handle); |
51 | |
52 | #endif // DACCESS_COMPILE |
53 | |
54 | #endif // __DACCESS_GCINTERFACE_DAC_H__ |
55 | |