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

Side by Side Diff: third_party/tcmalloc/chromium/src/base/atomicops-internals-windows.h

Issue 10384117: Add a chromium version abort function for tcmalloc: Abort(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 7 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) 2006, Google Inc. 1 /* Copyright (c) 2006, 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 22 matching lines...) Expand all
33 33
34 // Implementation of atomic operations using Windows API 34 // Implementation of atomic operations using Windows API
35 // functions. This file should not be included directly. Clients 35 // functions. This file should not be included directly. Clients
36 // should instead include "base/atomicops.h". 36 // should instead include "base/atomicops.h".
37 37
38 #ifndef BASE_ATOMICOPS_INTERNALS_WINDOWS_H_ 38 #ifndef BASE_ATOMICOPS_INTERNALS_WINDOWS_H_
39 #define BASE_ATOMICOPS_INTERNALS_WINDOWS_H_ 39 #define BASE_ATOMICOPS_INTERNALS_WINDOWS_H_
40 40
41 #include <stdio.h> 41 #include <stdio.h>
42 #include <stdlib.h> 42 #include <stdlib.h>
43 #include "base/abort.h"
43 #include "base/basictypes.h" // For COMPILE_ASSERT 44 #include "base/basictypes.h" // For COMPILE_ASSERT
44 45
45 typedef int32 Atomic32; 46 typedef int32 Atomic32;
46 47
47 #if defined(_WIN64) 48 #if defined(_WIN64)
48 #define BASE_HAS_ATOMIC64 1 // Use only in tests and base/atomic* 49 #define BASE_HAS_ATOMIC64 1 // Use only in tests and base/atomic*
49 #endif 50 #endif
50 51
51 namespace base { 52 namespace base {
52 namespace subtle { 53 namespace subtle {
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 #else // defined(_WIN64) || defined(__MINGW64__) 344 #else // defined(_WIN64) || defined(__MINGW64__)
344 345
345 // 64-bit low-level operations on 32-bit platform 346 // 64-bit low-level operations on 32-bit platform
346 347
347 // TODO(vchen): The GNU assembly below must be converted to MSVC inline 348 // TODO(vchen): The GNU assembly below must be converted to MSVC inline
348 // assembly. Then the file should be renamed to ...-x86-msvc.h, probably. 349 // assembly. Then the file should be renamed to ...-x86-msvc.h, probably.
349 350
350 inline void NotImplementedFatalError(const char *function_name) { 351 inline void NotImplementedFatalError(const char *function_name) {
351 fprintf(stderr, "64-bit %s() not implemented on this platform\n", 352 fprintf(stderr, "64-bit %s() not implemented on this platform\n",
352 function_name); 353 function_name);
353 abort(); 354 tcmalloc::Abort();
354 } 355 }
355 356
356 inline Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr, 357 inline Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr,
357 Atomic64 old_value, 358 Atomic64 old_value,
358 Atomic64 new_value) { 359 Atomic64 new_value) {
359 #if 0 // Not implemented 360 #if 0 // Not implemented
360 Atomic64 prev; 361 Atomic64 prev;
361 __asm__ __volatile__("movl (%3), %%ebx\n\t" // Move 64-bit new_value into 362 __asm__ __volatile__("movl (%3), %%ebx\n\t" // Move 64-bit new_value into
362 "movl 4(%3), %%ecx\n\t" // ecx:ebx 363 "movl 4(%3), %%ecx\n\t" // ecx:ebx
363 "lock; cmpxchg8b %1\n\t" // If edx:eax (old_value) same 364 "lock; cmpxchg8b %1\n\t" // If edx:eax (old_value) same
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr, 493 inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
493 Atomic64 old_value, 494 Atomic64 old_value,
494 Atomic64 new_value) { 495 Atomic64 new_value) {
495 return NoBarrier_CompareAndSwap(ptr, old_value, new_value); 496 return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
496 } 497 }
497 498
498 } // namespace base::subtle 499 } // namespace base::subtle
499 } // namespace base 500 } // namespace base
500 501
501 #endif // BASE_ATOMICOPS_INTERNALS_WINDOWS_H_ 502 #endif // BASE_ATOMICOPS_INTERNALS_WINDOWS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698