Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(509)

Side by Side Diff: third_party/tcmalloc/chromium/src/windows/port.h

Issue 9667026: Revert 126020 - Experiment for updating the tcmalloc chromium branch to r144 (gperftools 2.0). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* Copyright (c) 2007, Google Inc. 1 /* Copyright (c) 2007, Google Inc.
2 * All rights reserved. 2 * All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 #include <process.h> /* for _getpid */ 58 #include <process.h> /* for _getpid */
59 #include <limits.h> /* for PATH_MAX */ 59 #include <limits.h> /* for PATH_MAX */
60 #include <stdarg.h> /* for va_list */ 60 #include <stdarg.h> /* for va_list */
61 #include <stdio.h> /* need this to override stdio's (v)snprintf */ 61 #include <stdio.h> /* need this to override stdio's (v)snprintf */
62 #include <sys/types.h> /* for _off_t */ 62 #include <sys/types.h> /* for _off_t */
63 #include <assert.h> 63 #include <assert.h>
64 #include <stdlib.h> /* for rand, srand, _strtoxxx */ 64 #include <stdlib.h> /* for rand, srand, _strtoxxx */
65 65
66 /* 66 /*
67 * 4018: signed/unsigned mismatch is common (and ok for signed_i < unsigned_i) 67 * 4018: signed/unsigned mismatch is common (and ok for signed_i < unsigned_i)
68 * 4244: otherwise we get problems when subtracting two size_t's to an int 68 * 4244: otherwise we get problems when substracting two size_t's to an int
69 * 4288: VC++7 gets confused when a var is defined in a loop and then after it 69 * 4288: VC++7 gets confused when a var is defined in a loop and then after it
70 * 4267: too many false positives for "conversion gives possible data loss" 70 * 4267: too many false positives for "conversion gives possible data loss"
71 * 4290: it's ok windows ignores the "throw" directive 71 * 4290: it's ok windows ignores the "throw" directive
72 * 4996: Yes, we're ok using "unsafe" functions like vsnprintf and getenv() 72 * 4996: Yes, we're ok using "unsafe" functions like vsnprintf and getenv()
73 * 4146: internal_logging.cc intentionally negates an unsigned value
74 */ 73 */
75 #ifdef _MSC_VER 74 #ifdef _MSC_VER
76 #pragma warning(disable:4018 4244 4288 4267 4290 4996 4146) 75 #pragma warning(disable:4018 4244 4288 4267 4290 4996)
77 #endif 76 #endif
78 77
79 #ifndef __cplusplus 78 #ifndef __cplusplus
80 /* MSVC does not support C99 */ 79 /* MSVC does not support C99 */
81 # if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L 80 # if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L
82 # ifdef _MSC_VER 81 # ifdef _MSC_VER
83 # define inline __inline 82 # define inline __inline
84 # else 83 # else
85 # define inline static 84 # define inline static
86 # endif 85 # endif
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 else 158 else
160 return GetLastError(); 159 return GetLastError();
161 } 160 }
162 161
163 EXTERN_C int perftools_pthread_once(pthread_once_t *once_control, 162 EXTERN_C int perftools_pthread_once(pthread_once_t *once_control,
164 void (*init_routine)(void)); 163 void (*init_routine)(void));
165 164
166 #endif /* __cplusplus */ 165 #endif /* __cplusplus */
167 #endif /* HAVE_PTHREAD */ 166 #endif /* HAVE_PTHREAD */
168 167
169 inline void sched_yield(void) {
170 Sleep(0);
171 }
172
173 /* 168 /*
174 * __declspec(thread) isn't usable in a dll opened via LoadLibrary(). 169 * __declspec(thread) isn't usable in a dll opened via LoadLibrary().
175 * But it doesn't work to LoadLibrary() us anyway, because of all the 170 * But it doesn't work to LoadLibrary() us anyway, because of all the
176 * things we need to do before main()! So this kind of TLS is safe for us. 171 * things we need to do before main()! So this kind of TLS is safe for us.
177 */ 172 */
178 #define __thread __declspec(thread) 173 #define __thread __declspec(thread)
179 174
180 /* 175 /*
181 * This code is obsolete, but I keep it around in case we are ever in 176 * This code is obsolete, but I keep it around in case we are ever in
182 * an environment where we can't or don't want to use google spinlocks 177 * an environment where we can't or don't want to use google spinlocks
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 #ifndef HAVE_MMAP /* not true for MSVC, but may be true for msys */ 253 #ifndef HAVE_MMAP /* not true for MSVC, but may be true for msys */
259 #define MAP_FAILED 0 254 #define MAP_FAILED 0
260 #define MREMAP_FIXED 2 /* the value in linux, though it doesn't really matter */ 255 #define MREMAP_FIXED 2 /* the value in linux, though it doesn't really matter */
261 /* These, when combined with the mmap invariants below, yield the proper action */ 256 /* These, when combined with the mmap invariants below, yield the proper action */
262 #define PROT_READ PAGE_READWRITE 257 #define PROT_READ PAGE_READWRITE
263 #define PROT_WRITE PAGE_READWRITE 258 #define PROT_WRITE PAGE_READWRITE
264 #define MAP_ANONYMOUS MEM_RESERVE 259 #define MAP_ANONYMOUS MEM_RESERVE
265 #define MAP_PRIVATE MEM_COMMIT 260 #define MAP_PRIVATE MEM_COMMIT
266 #define MAP_SHARED MEM_RESERVE /* value of this #define is 100% arbitrary */ 261 #define MAP_SHARED MEM_RESERVE /* value of this #define is 100% arbitrary */
267 262
268 #if __STDC__ && !defined(__MINGW32__) 263 #if __STDC__
269 typedef _off_t off_t; 264 typedef _off_t off_t;
270 #endif 265 #endif
271 266
272 /* VirtualAlloc only replaces for mmap when certain invariants are kept. */ 267 /* VirtualAlloc only replaces for mmap when certain invariants are kept. */
273 inline void *mmap(void *addr, size_t length, int prot, int flags, 268 inline void *mmap(void *addr, size_t length, int prot, int flags,
274 int fd, off_t offset) { 269 int fd, off_t offset) {
275 if (addr == NULL && fd == -1 && offset == 0 && 270 if (addr == NULL && fd == -1 && offset == 0 &&
276 prot == (PROT_READ|PROT_WRITE) && flags == (MAP_PRIVATE|MAP_ANONYMOUS)) { 271 prot == (PROT_READ|PROT_WRITE) && flags == (MAP_PRIVATE|MAP_ANONYMOUS)) {
277 return VirtualAlloc(0, length, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); 272 return VirtualAlloc(0, length, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
278 } else { 273 } else {
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 } 365 }
371 inline off_t lseek(int fd, off_t offset, int whence) { 366 inline off_t lseek(int fd, off_t offset, int whence) {
372 return _lseek(fd, offset, whence); 367 return _lseek(fd, offset, whence);
373 } 368 }
374 inline char *getcwd(char *buf, size_t size) { 369 inline char *getcwd(char *buf, size_t size) {
375 return _getcwd(buf, size); 370 return _getcwd(buf, size);
376 } 371 }
377 inline int mkdir(const char *pathname, int) { 372 inline int mkdir(const char *pathname, int) {
378 return _mkdir(pathname); 373 return _mkdir(pathname);
379 } 374 }
375 #endif
380 376
381 inline FILE *popen(const char *command, const char *type) { 377 inline FILE *popen(const char *command, const char *type) {
382 return _popen(command, type); 378 return _popen(command, type);
383 } 379 }
384 inline int pclose(FILE *stream) { 380 inline int pclose(FILE *stream) {
385 return _pclose(stream); 381 return _pclose(stream);
386 } 382 }
387 #endif
388 383
389 EXTERN_C PERFTOOLS_DLL_DECL void WriteToStderr(const char* buf, int len); 384 EXTERN_C PERFTOOLS_DLL_DECL void WriteToStderr(const char* buf, int len);
390 385
391 /* ----------------------------------- SYSTEM/PROCESS */ 386 /* ----------------------------------- SYSTEM/PROCESS */
392 387
393 typedef int pid_t; 388 typedef int pid_t;
394 #if __STDC__ && !defined(__MINGW32__) 389 #if __STDC__
395 inline pid_t getpid(void) { return _getpid(); } 390 inline pid_t getpid(void) { return _getpid(); }
396 #endif 391 #endif
397 inline pid_t getppid(void) { return 0; } 392 inline pid_t getppid(void) { return 0; }
398 393
399 /* Handle case when poll is used to simulate sleep. */ 394 /* Handle case when poll is used to simulate sleep. */
400 inline int poll(struct pollfd* fds, int nfds, int timeout) { 395 inline int poll(struct pollfd* fds, int nfds, int timeout) {
401 assert(fds == NULL); 396 assert(fds == NULL);
402 assert(nfds == 0); 397 assert(nfds == 0);
403 Sleep(timeout); 398 Sleep(timeout);
404 return 0; 399 return 0;
405 } 400 }
406 401
407 EXTERN_C int getpagesize(); /* in port.cc */ 402 EXTERN_C int getpagesize(); /* in port.cc */
408 403
409 /* ----------------------------------- OTHER */ 404 /* ----------------------------------- OTHER */
410 405
411 inline void srandom(unsigned int seed) { srand(seed); } 406 inline void srandom(unsigned int seed) { srand(seed); }
412 inline long random(void) { return rand(); } 407 inline long random(void) { return rand(); }
413 inline unsigned int sleep(unsigned int seconds) { 408 inline unsigned int sleep(unsigned int seconds) {
414 Sleep(seconds * 1000); 409 Sleep(seconds * 1000);
415 return 0; 410 return 0;
416 } 411 }
417 412
418 // mingw64 seems to define timespec (though mingw.org mingw doesn't),
419 // protected by the _TIMESPEC_DEFINED macro.
420 #ifndef _TIMESPEC_DEFINED
421 struct timespec { 413 struct timespec {
422 int tv_sec; 414 int tv_sec;
423 int tv_nsec; 415 int tv_nsec;
424 }; 416 };
425 #endif
426 417
427 inline int nanosleep(const struct timespec *req, struct timespec *rem) { 418 inline int nanosleep(const struct timespec *req, struct timespec *rem) {
428 Sleep(req->tv_sec * 1000 + req->tv_nsec / 1000000); 419 Sleep(req->tv_sec * 1000 + req->tv_nsec / 1000000);
429 return 0; 420 return 0;
430 } 421 }
431 422
432 #ifndef __MINGW32__ 423 #ifndef __MINGW32__
433 inline long long int strtoll(const char *nptr, char **endptr, int base) { 424 inline long long int strtoll(const char *nptr, char **endptr, int base) {
434 return _strtoi64(nptr, endptr, base); 425 return _strtoi64(nptr, endptr, base);
435 } 426 }
(...skipping 29 matching lines...) Expand all
465 */ 456 */
466 #define GOOGLE_MAYBE_THREADS_H_ 1 457 #define GOOGLE_MAYBE_THREADS_H_ 1
467 458
468 459
469 #endif /* _WIN32 */ 460 #endif /* _WIN32 */
470 461
471 #undef inline 462 #undef inline
472 #undef EXTERN_C 463 #undef EXTERN_C
473 464
474 #endif /* GOOGLE_BASE_WINDOWS_H_ */ 465 #endif /* GOOGLE_BASE_WINDOWS_H_ */
OLDNEW
« no previous file with comments | « third_party/tcmalloc/chromium/src/windows/patch_functions.cc ('k') | third_party/tcmalloc/chromium/src/windows/port.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698