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
|
// 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.
#ifndef __DACCESS_GCINTERFACE_DAC_H__
#define __DACCESS_GCINTERFACE_DAC_H__
#include "../../gc/gcinterface.dac.h"
// The following six function prototypes are for functions that are used by the DAC
// to inspect the handle table in detail. The semantics of these functions MUST be
// versioned along with the rest of this interface - any changes in semantics
// must be accompanied with a major versino bump.
//
// Please do not add any additional functions to this list; we'd like to keep it
// to an absolute minimum.
#ifdef DACCESS_COMPILE
// for DAC builds, OBJECTHANDLE is a uintptr_t.
GC_DAC_VISIBLE
OBJECTREF GetDependentHandleSecondary(OBJECTHANDLE handle);
GC_DAC_VISIBLE_NO_MANGLE
void HndScanHandlesForGC(
DPTR(dac_handle_table) hTable,
HANDLESCANPROC scanProc,
uintptr_t param1,
uintptr_t param2,
const uint32_t *types,
uint32_t typeCount,
uint32_t condemned,
uint32_t maxGen,
uint32_t flags);
GC_DAC_VISIBLE_NO_MANGLE
void HndEnumHandles(
DPTR(dac_handle_table) hTable,
const uint32_t *puType,
uint32_t uTypeCount,
HANDLESCANPROC pfnEnum,
uintptr_t lParam1,
uintptr_t lParam2,
bool fAsync);
GC_DAC_VISIBLE
OBJECTREF HndFetchHandle(OBJECTHANDLE handle);
GC_DAC_VISIBLE
struct ADIndex HndGetHandleADIndex(OBJECTHANDLE handle);
GC_DAC_VISIBLE
uintptr_t HndGetHandleExtraInfo(OBJECTHANDLE handle);
#endif // DACCESS_COMPILE
#endif // __DACCESS_GCINTERFACE_DAC_H__
|