summaryrefslogtreecommitdiff
path: root/src/gc/env
diff options
context:
space:
mode:
Diffstat (limited to 'src/gc/env')
-rw-r--r--src/gc/env/gcenv.base.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/gc/env/gcenv.base.h b/src/gc/env/gcenv.base.h
index 83726f4eab..97f1661b0d 100644
--- a/src/gc/env/gcenv.base.h
+++ b/src/gc/env/gcenv.base.h
@@ -176,6 +176,12 @@ typedef DWORD (WINAPI *PTHREAD_START_ROUTINE)(void* lpThreadParameter);
#endif // _MSC_VER
+typedef struct _PROCESSOR_NUMBER {
+ uint16_t Group;
+ uint8_t Number;
+ uint8_t Reserved;
+} PROCESSOR_NUMBER, *PPROCESSOR_NUMBER;
+
#endif // _INC_WINDOWS
// -----------------------------------------------------------------------------------------------------------
@@ -600,4 +606,21 @@ public:
};
#endif // STRESS_HEAP
+class NumaNodeInfo
+{
+public:
+ static bool CanEnableGCNumaAware();
+ static void GetGroupForProcessor(uint16_t processor_number, uint16_t * group_number, uint16_t * group_processor_number);
+ static bool GetNumaProcessorNodeEx(PPROCESSOR_NUMBER proc_no, uint16_t * node_no);
+};
+
+class CPUGroupInfo
+{
+public:
+ static bool CanEnableGCCPUGroups();
+ static uint32_t GetNumActiveProcessors();
+ static void GetGroupForProcessor(uint16_t processor_number, uint16_t * group_number, uint16_t * group_processor_number);
+};
+
+
#endif // __GCENV_BASE_INCLUDED__