| 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 |  | 
|---|