73 строки
3.0 KiB
C++
73 строки
3.0 KiB
C++
//===-- WinFunctions.h - Windows Functions for other platforms --*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file defines Windows-specific functions used in the codebase for
|
|
// non-Windows platforms.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_SUPPORT_WINFUNCTIONS_H
|
|
#define LLVM_SUPPORT_WINFUNCTIONS_H
|
|
|
|
#ifndef _WIN32
|
|
|
|
#include "dxc/Support/WinAdapter.h"
|
|
|
|
HRESULT StringCchCopyEx(LPSTR pszDest, size_t cchDest, LPCSTR pszSrc,
|
|
LPSTR *ppszDestEnd, size_t *pcchRemaining, DWORD dwFlags);
|
|
HRESULT StringCchPrintfA(char *dst, size_t dstSize, const char *format, ...);
|
|
HRESULT UIntAdd(UINT uAugend, UINT uAddend, UINT *puResult);
|
|
HRESULT IntToUInt(int in, UINT *out);
|
|
HRESULT SizeTToInt(size_t in, INT *out);
|
|
HRESULT UInt32Mult(UINT a, UINT b, UINT *out);
|
|
|
|
int strnicmp(const char *str1, const char *str2, size_t count);
|
|
int _stricmp(const char *str1, const char *str2);
|
|
int _wcsicmp(const wchar_t *str1, const wchar_t *str2);
|
|
int _wcsnicmp(const wchar_t *str1, const wchar_t *str2, size_t n);
|
|
int wsprintf(wchar_t *wcs, const wchar_t *fmt, ...);
|
|
unsigned char _BitScanForward(unsigned long * Index, unsigned long Mask);
|
|
HRESULT CoGetMalloc(DWORD dwMemContext, IMalloc **ppMalloc);
|
|
|
|
HANDLE CreateFile2(_In_ LPCWSTR lpFileName, _In_ DWORD dwDesiredAccess,
|
|
_In_ DWORD dwShareMode, _In_ DWORD dwCreationDisposition,
|
|
_In_opt_ void *pCreateExParams);
|
|
|
|
HANDLE CreateFileW(_In_ LPCWSTR lpFileName, _In_ DWORD dwDesiredAccess,
|
|
_In_ DWORD dwShareMode, _In_opt_ void *lpSecurityAttributes,
|
|
_In_ DWORD dwCreationDisposition,
|
|
_In_ DWORD dwFlagsAndAttributes,
|
|
_In_opt_ HANDLE hTemplateFile);
|
|
|
|
BOOL GetFileSizeEx(_In_ HANDLE hFile, _Out_ PLARGE_INTEGER lpFileSize);
|
|
|
|
BOOL ReadFile(_In_ HANDLE hFile, _Out_ LPVOID lpBuffer,
|
|
_In_ DWORD nNumberOfBytesToRead,
|
|
_Out_opt_ LPDWORD lpNumberOfBytesRead,
|
|
_Inout_opt_ void *lpOverlapped);
|
|
BOOL WriteFile(_In_ HANDLE hFile, _In_ LPCVOID lpBuffer,
|
|
_In_ DWORD nNumberOfBytesToWrite,
|
|
_Out_opt_ LPDWORD lpNumberOfBytesWritten,
|
|
_Inout_opt_ void *lpOverlapped);
|
|
|
|
BOOL CloseHandle(_In_ HANDLE hObject);
|
|
|
|
// Windows-specific heap functions
|
|
HANDLE HeapCreate(DWORD flOptions, SIZE_T dwInitialSize , SIZE_T dwMaximumSize);
|
|
BOOL HeapDestroy(HANDLE heap);
|
|
LPVOID HeapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T nBytes);
|
|
LPVOID HeapReAlloc(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem, SIZE_T dwBytes);
|
|
BOOL HeapFree(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem);
|
|
SIZE_T HeapSize(HANDLE hHeap, DWORD dwFlags, LPCVOID lpMem);
|
|
HANDLE GetProcessHeap();
|
|
|
|
#endif // _WIN32
|
|
|
|
#endif // LLVM_SUPPORT_WINFUNCTIONS_H
|