Skip to content

Commit 25155dd

Browse files
committed
Merge branch 'WD_1.X_dev' of https://portal-ua.globallogic.com/git/wd into WD_1.X_dev
2 parents 5d3592f + 3cb7fae commit 25155dd

28 files changed

+3648
-1
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ report/*
1515
/bin/
1616
/lib/
1717
/out/
18+
/build/
1819
/docs/
20+
/mocs/
1921
/wd.gypi
2022
/wd.Makefile
2123
/Makefile

base.gyp

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,45 @@
165165
'src/base/process_util_win.cc',
166166
],
167167
} ],
168+
169+
[ 'OS == "mac"', {
170+
'defines': [
171+
'OS_POSIX',
172+
],
173+
174+
'sources': [
175+
'src/base/string16.cc',
176+
'src/base/time_posix.cc',
177+
'src/base/base_paths_posix.cc',
178+
'src/base/debug/debugger_posix.cc',
179+
'src/base/platform_file_posix.cc',
180+
'src/base/rand_util_posix.cc',
181+
'src/base/safe_strerror_posix.cc',
182+
'src/base/synchronization/condition_variable_posix.cc',
183+
'src/base/synchronization/lock_impl_posix.cc',
184+
'src/base/synchronization/waitable_event_posix.cc',
185+
'src/base/sys_info_posix.cc',
186+
'src/base/sys_string_conversions_mac.mm',
187+
'src/base/threading/platform_thread_posix.cc',
188+
'src/base/threading/thread_local_posix.cc',
189+
'src/base/threading/thread_local_storage_posix.cc',
190+
'src/base/threading/worker_pool_posix.cc',
191+
'src/net/base/file_stream_metrics_posix.cc',
192+
'src/net/base/file_stream_posix.cc',
193+
'src/net/base/net_errors_posix.cc',
194+
'src/base/base_paths_mac.mm',
195+
'src/base/file_util_posix.cc',
196+
'src/base/file_util_mac.mm',
197+
'src/base/message_pump_mac.mm',
198+
'src/base/scoped_nsautorelease_pool.mm',
199+
'src/base/mac/foundation_util.mm',
200+
'src/base/mac/bundle_locations.mm',
201+
'src/base/mac/mac_logging.cc',
202+
'src/base/threading/platform_thread_mac.mm',
203+
'src/base/time_mac.cc',
204+
'src/base/sys_info_mac.cc',
205+
],
206+
} ],
168207
],
169208
}
170209
],

build_mac.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
python generate_wdversion.py
3+
4+
gyp --depth . -G output_dir=. -D platform=desktop -D mode=release --generator-output=out/ wd.gyp
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
// This file is an internal atomic implementation, use base/atomicops.h instead.
6+
7+
#ifndef BASE_ATOMICOPS_INTERNALS_ATOMICWORD_COMPAT_H_
8+
#define BASE_ATOMICOPS_INTERNALS_ATOMICWORD_COMPAT_H_
9+
10+
// AtomicWord is a synonym for intptr_t, and Atomic32 is a synonym for int32,
11+
// which in turn means int. On some LP32 platforms, intptr_t is an int, but
12+
// on others, it's a long. When AtomicWord and Atomic32 are based on different
13+
// fundamental types, their pointers are incompatible.
14+
//
15+
// This file defines function overloads to allow both AtomicWord and Atomic32
16+
// data to be used with this interface.
17+
//
18+
// On LP64 platforms, AtomicWord and Atomic64 are both always long,
19+
// so this problem doesn't occur.
20+
21+
#if !defined(ARCH_CPU_64_BITS)
22+
23+
namespace base {
24+
namespace subtle {
25+
26+
inline AtomicWord NoBarrier_CompareAndSwap(volatile AtomicWord* ptr,
27+
AtomicWord old_value,
28+
AtomicWord new_value) {
29+
return NoBarrier_CompareAndSwap(
30+
reinterpret_cast<volatile Atomic32*>(ptr), old_value, new_value);
31+
}
32+
33+
inline AtomicWord NoBarrier_AtomicExchange(volatile AtomicWord* ptr,
34+
AtomicWord new_value) {
35+
return NoBarrier_AtomicExchange(
36+
reinterpret_cast<volatile Atomic32*>(ptr), new_value);
37+
}
38+
39+
inline AtomicWord NoBarrier_AtomicIncrement(volatile AtomicWord* ptr,
40+
AtomicWord increment) {
41+
return NoBarrier_AtomicIncrement(
42+
reinterpret_cast<volatile Atomic32*>(ptr), increment);
43+
}
44+
45+
inline AtomicWord Barrier_AtomicIncrement(volatile AtomicWord* ptr,
46+
AtomicWord increment) {
47+
return Barrier_AtomicIncrement(
48+
reinterpret_cast<volatile Atomic32*>(ptr), increment);
49+
}
50+
51+
inline AtomicWord Acquire_CompareAndSwap(volatile AtomicWord* ptr,
52+
AtomicWord old_value,
53+
AtomicWord new_value) {
54+
return base::subtle::Acquire_CompareAndSwap(
55+
reinterpret_cast<volatile Atomic32*>(ptr), old_value, new_value);
56+
}
57+
58+
inline AtomicWord Release_CompareAndSwap(volatile AtomicWord* ptr,
59+
AtomicWord old_value,
60+
AtomicWord new_value) {
61+
return base::subtle::Release_CompareAndSwap(
62+
reinterpret_cast<volatile Atomic32*>(ptr), old_value, new_value);
63+
}
64+
65+
inline void NoBarrier_Store(volatile AtomicWord *ptr, AtomicWord value) {
66+
NoBarrier_Store(
67+
reinterpret_cast<volatile Atomic32*>(ptr), value);
68+
}
69+
70+
inline void Acquire_Store(volatile AtomicWord* ptr, AtomicWord value) {
71+
return base::subtle::Acquire_Store(
72+
reinterpret_cast<volatile Atomic32*>(ptr), value);
73+
}
74+
75+
inline void Release_Store(volatile AtomicWord* ptr, AtomicWord value) {
76+
return base::subtle::Release_Store(
77+
reinterpret_cast<volatile Atomic32*>(ptr), value);
78+
}
79+
80+
inline AtomicWord NoBarrier_Load(volatile const AtomicWord *ptr) {
81+
return NoBarrier_Load(
82+
reinterpret_cast<volatile const Atomic32*>(ptr));
83+
}
84+
85+
inline AtomicWord Acquire_Load(volatile const AtomicWord* ptr) {
86+
return base::subtle::Acquire_Load(
87+
reinterpret_cast<volatile const Atomic32*>(ptr));
88+
}
89+
90+
inline AtomicWord Release_Load(volatile const AtomicWord* ptr) {
91+
return base::subtle::Release_Load(
92+
reinterpret_cast<volatile const Atomic32*>(ptr));
93+
}
94+
95+
} // namespace base::subtle
96+
} // namespace base
97+
98+
#endif // !defined(ARCH_CPU_64_BITS)
99+
100+
#endif // BASE_ATOMICOPS_INTERNALS_ATOMICWORD_COMPAT_H_

inc/base/atomicops_internals_mac.h

Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
// This file is an internal atomic implementation, use base/atomicops.h instead.
6+
7+
#ifndef BASE_ATOMICOPS_INTERNALS_MAC_H_
8+
#define BASE_ATOMICOPS_INTERNALS_MAC_H_
9+
10+
#include <libkern/OSAtomic.h>
11+
12+
namespace base {
13+
namespace subtle {
14+
15+
inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32 *ptr,
16+
Atomic32 old_value,
17+
Atomic32 new_value) {
18+
Atomic32 prev_value;
19+
do {
20+
if (OSAtomicCompareAndSwap32(old_value, new_value,
21+
const_cast<Atomic32*>(ptr))) {
22+
return old_value;
23+
}
24+
prev_value = *ptr;
25+
} while (prev_value == old_value);
26+
return prev_value;
27+
}
28+
29+
inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32 *ptr,
30+
Atomic32 new_value) {
31+
Atomic32 old_value;
32+
do {
33+
old_value = *ptr;
34+
} while (!OSAtomicCompareAndSwap32(old_value, new_value,
35+
const_cast<Atomic32*>(ptr)));
36+
return old_value;
37+
}
38+
39+
inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32 *ptr,
40+
Atomic32 increment) {
41+
return OSAtomicAdd32(increment, const_cast<Atomic32*>(ptr));
42+
}
43+
44+
inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32 *ptr,
45+
Atomic32 increment) {
46+
return OSAtomicAdd32Barrier(increment, const_cast<Atomic32*>(ptr));
47+
}
48+
49+
inline void MemoryBarrier() {
50+
OSMemoryBarrier();
51+
}
52+
53+
inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32 *ptr,
54+
Atomic32 old_value,
55+
Atomic32 new_value) {
56+
Atomic32 prev_value;
57+
do {
58+
if (OSAtomicCompareAndSwap32Barrier(old_value, new_value,
59+
const_cast<Atomic32*>(ptr))) {
60+
return old_value;
61+
}
62+
prev_value = *ptr;
63+
} while (prev_value == old_value);
64+
return prev_value;
65+
}
66+
67+
inline Atomic32 Release_CompareAndSwap(volatile Atomic32 *ptr,
68+
Atomic32 old_value,
69+
Atomic32 new_value) {
70+
return Acquire_CompareAndSwap(ptr, old_value, new_value);
71+
}
72+
73+
inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
74+
*ptr = value;
75+
}
76+
77+
inline void Acquire_Store(volatile Atomic32 *ptr, Atomic32 value) {
78+
*ptr = value;
79+
MemoryBarrier();
80+
}
81+
82+
inline void Release_Store(volatile Atomic32 *ptr, Atomic32 value) {
83+
MemoryBarrier();
84+
*ptr = value;
85+
}
86+
87+
inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
88+
return *ptr;
89+
}
90+
91+
inline Atomic32 Acquire_Load(volatile const Atomic32 *ptr) {
92+
Atomic32 value = *ptr;
93+
MemoryBarrier();
94+
return value;
95+
}
96+
97+
inline Atomic32 Release_Load(volatile const Atomic32 *ptr) {
98+
MemoryBarrier();
99+
return *ptr;
100+
}
101+
102+
#ifdef __LP64__
103+
104+
// 64-bit implementation on 64-bit platform
105+
106+
inline Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64 *ptr,
107+
Atomic64 old_value,
108+
Atomic64 new_value) {
109+
Atomic64 prev_value;
110+
do {
111+
if (OSAtomicCompareAndSwap64(old_value, new_value,
112+
reinterpret_cast<volatile int64_t*>(ptr))) {
113+
return old_value;
114+
}
115+
prev_value = *ptr;
116+
} while (prev_value == old_value);
117+
return prev_value;
118+
}
119+
120+
inline Atomic64 NoBarrier_AtomicExchange(volatile Atomic64 *ptr,
121+
Atomic64 new_value) {
122+
Atomic64 old_value;
123+
do {
124+
old_value = *ptr;
125+
} while (!OSAtomicCompareAndSwap64(old_value, new_value,
126+
reinterpret_cast<volatile int64_t*>(ptr)));
127+
return old_value;
128+
}
129+
130+
inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64 *ptr,
131+
Atomic64 increment) {
132+
return OSAtomicAdd64(increment, reinterpret_cast<volatile int64_t*>(ptr));
133+
}
134+
135+
inline Atomic64 Barrier_AtomicIncrement(volatile Atomic64 *ptr,
136+
Atomic64 increment) {
137+
return OSAtomicAdd64Barrier(increment,
138+
reinterpret_cast<volatile int64_t*>(ptr));
139+
}
140+
141+
inline Atomic64 Acquire_CompareAndSwap(volatile Atomic64 *ptr,
142+
Atomic64 old_value,
143+
Atomic64 new_value) {
144+
Atomic64 prev_value;
145+
do {
146+
if (OSAtomicCompareAndSwap64Barrier(
147+
old_value, new_value, reinterpret_cast<volatile int64_t*>(ptr))) {
148+
return old_value;
149+
}
150+
prev_value = *ptr;
151+
} while (prev_value == old_value);
152+
return prev_value;
153+
}
154+
155+
inline Atomic64 Release_CompareAndSwap(volatile Atomic64 *ptr,
156+
Atomic64 old_value,
157+
Atomic64 new_value) {
158+
// The lib kern interface does not distinguish between
159+
// Acquire and Release memory barriers; they are equivalent.
160+
return Acquire_CompareAndSwap(ptr, old_value, new_value);
161+
}
162+
163+
inline void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value) {
164+
*ptr = value;
165+
}
166+
167+
inline void Acquire_Store(volatile Atomic64 *ptr, Atomic64 value) {
168+
*ptr = value;
169+
MemoryBarrier();
170+
}
171+
172+
inline void Release_Store(volatile Atomic64 *ptr, Atomic64 value) {
173+
MemoryBarrier();
174+
*ptr = value;
175+
}
176+
177+
inline Atomic64 NoBarrier_Load(volatile const Atomic64* ptr) {
178+
return *ptr;
179+
}
180+
181+
inline Atomic64 Acquire_Load(volatile const Atomic64 *ptr) {
182+
Atomic64 value = *ptr;
183+
MemoryBarrier();
184+
return value;
185+
}
186+
187+
inline Atomic64 Release_Load(volatile const Atomic64 *ptr) {
188+
MemoryBarrier();
189+
return *ptr;
190+
}
191+
192+
#endif // defined(__LP64__)
193+
194+
} // namespace base::subtle
195+
} // namespace base
196+
197+
#endif // BASE_ATOMICOPS_INTERNALS_MAC_H_

inc/base/base_paths_mac.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
#ifndef BASE_BASE_PATHS_MAC_H_
6+
#define BASE_BASE_PATHS_MAC_H_
7+
8+
// This file declares Mac-specific path keys for the base module.
9+
// These can be used with the PathService to access various special
10+
// directories and files.
11+
12+
namespace base {
13+
14+
enum {
15+
PATH_MAC_START = 200,
16+
17+
DIR_APP_DATA, // ~/Library/Application Support
18+
19+
PATH_MAC_END
20+
};
21+
22+
} // namespace base
23+
24+
#endif // BASE_BASE_PATHS_MAC_H_

0 commit comments

Comments
 (0)