1 /* 2 * Copyright © 2009-2016 Inria. All rights reserved. 3 * Copyright © 2009-2012 Université Bordeaux 4 * See COPYING in top-level directory. 5 */ 6 7 #ifndef HWLOC_PORT_WINDOWS_WINDOWS_H 8 #define HWLOC_PORT_WINDOWS_WINDOWS_H 9 10 #include <inttypes.h> 11 12 #define DECLARE_HANDLE(n) typedef struct n##__ {int i;} *n 13 DECLARE_HANDLE(HINSTANCE); 14 typedef HINSTANCE HMODULE; 15 typedef int WINBOOL, BOOL; 16 typedef int64_t LONGLONG; 17 typedef uint64_t DWORDLONG; 18 typedef DWORDLONG ULONGLONG, *PULONGLONG; 19 typedef unsigned char BYTE, UCHAR; 20 typedef unsigned short WORD, USHORT; 21 typedef unsigned int UINT, UINT_PTR, DWORD, *PDWORD, *LPDWORD; 22 typedef unsigned long ULONG_PTR, DWORD_PTR, *PDWORD_PTR; 23 typedef const char *LPCSTR; 24 typedef int (*FARPROC)(void); 25 typedef void *PVOID,*LPVOID; 26 typedef void VOID; 27 typedef ULONG_PTR SIZE_T; 28 29 /* This is to cope with linux using integers for hwloc_pid_t and hwloc_thread_t 30 typedef PVOID HANDLE; */ 31 typedef int HANDLE; 32 33 #ifdef __GNUC__ 34 #define _ANONYMOUS_UNION __extension__ 35 #define _ANONYMOUS_STRUCT __extension__ 36 #else 37 #define _ANONYMOUS_UNION 38 #define _ANONYMOUS_STRUCT 39 #endif /* __GNUC__ */ 40 #define DUMMYUNIONNAME 41 #define WINAPI 42 43 #define ANYSIZE_ARRAY 1 44 45 #define ERROR_INSUFFICIENT_BUFFER 122L 46 47 #define MEM_COMMIT 0x1000 48 #define MEM_RESERVE 0x2000 49 #define MEM_RELEASE 0x8000 50 51 #define PAGE_EXECUTE_READWRITE 0x0040 52 53 WINAPI HINSTANCE LoadLibrary(LPCSTR); 54 WINAPI FARPROC GetProcAddress(HINSTANCE, LPCSTR); 55 WINAPI DWORD GetLastError(void); 56 57 DWORD_PTR WINAPI SetThreadAffinityMask(HANDLE hThread, DWORD_PTR dwThreadAffinityMask); 58 BOOL WINAPI SetProcessAffinityMask(HANDLE hProcess, DWORD_PTR dwProcessAffinityMask); 59 BOOL WINAPI GetProcessAffinityMask(HANDLE hProcess, PDWORD_PTR lpProcessAffinityMask, PDWORD_PTR lpSystemAffinityMask); 60 61 HANDLE WINAPI GetCurrentThread(void); 62 HANDLE WINAPI GetCurrentProcess(void); 63 64 PVOID WINAPI VirtualAlloc(PVOID,DWORD,DWORD,DWORD); 65 66 BOOL GetNumaAvailableMemoryNode(UCHAR Node, PULONGLONG AvailableBytes); 67 68 typedef struct _SYSTEM_INFO { 69 DWORD dwPageSize; 70 DWORD_PTR dwActiveProcessorMask; 71 DWORD dwNumberOfProcessors; 72 } SYSTEM_INFO, *LPSYSTEM_INFO; 73 74 void WINAPI GetSystemInfo(LPSYSTEM_INFO lpSystemInfo); 75 76 /* hide Linux' host disabling _SC_LARGE_PAGESIZE */ 77 #undef HAVE_DECL__SC_LARGE_PAGESIZE 78 #define HAVE_DECL__SC_LARGE_PAGESIZE 1 79 #undef _SC_LARGE_PAGESIZE 80 #define _SC_LARGE_PAGESIZE 33 81 82 #endif /* HWLOC_PORT_WINDOWS_WINDOWS_H */ 83