sanitizer_win.cc revision 94b5036ee6ba866e1702848855b6d687d1e70afa
1//===-- sanitizer_win.cc --------------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file is shared between AddressSanitizer and ThreadSanitizer 11// run-time libraries and implements windows-specific functions from 12// sanitizer_libc.h. 13//===----------------------------------------------------------------------===// 14#ifdef _WIN32 15#include <windows.h> 16 17#include <assert.h> 18 19#include "sanitizer_internal_defs.h" 20#include "sanitizer_libc.h" 21 22#define UNIMPLEMENTED_WIN() assert(false) 23 24namespace __sanitizer { 25 26void *internal_mmap(void *addr, uptr length, int prot, int flags, 27 int fd, u64 offset) { 28 UNIMPLEMENTED_WIN(); 29 return 0; 30} 31 32int internal_munmap(void *addr, uptr length) { 33 UNIMPLEMENTED_WIN(); 34 return 0; 35} 36 37int internal_close(fd_t fd) { 38 UNIMPLEMENTED_WIN(); 39 return 0; 40} 41 42fd_t internal_open(const char *filename, bool write) { 43 UNIMPLEMENTED_WIN(); 44 return 0; 45} 46 47uptr internal_read(fd_t fd, void *buf, uptr count) { 48 UNIMPLEMENTED_WIN(); 49 return 0; 50} 51 52uptr internal_write(fd_t fd, const void *buf, uptr count) { 53 if (fd != 2) { 54 UNIMPLEMENTED_WIN(); 55 return 0; 56 } 57 HANDLE err = GetStdHandle(STD_ERROR_HANDLE); 58 if (err == 0) 59 return 0; // FIXME: this might not work on some apps. 60 DWORD ret; 61 if (!WriteFile(err, buf, count, &ret, 0)) 62 return 0; 63 return ret; 64} 65 66int internal_sscanf(const char *str, const char *format, ...) { 67 UNIMPLEMENTED_WIN(); 68 return -1; 69} 70 71} // namespace __sanitizer 72 73#endif // _WIN32 74