OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // This file provides forward declarations for XPC symbols that are not | 5 // This file provides forward declarations for XPC symbols that are not |
6 // present in the 10.6 SDK. It uses generate_stubs to produce code to | 6 // present in the 10.6 SDK. It uses generate_stubs to produce code to |
7 // dynamically load the libxpc.dylib library and set up a stub table, with | 7 // dynamically load the libxpc.dylib library and set up a stub table, with |
8 // the same names as the real XPC functions. | 8 // the same names as the real XPC functions. |
9 | 9 |
10 #ifndef SANDBOX_MAC_XPC_H_ | 10 #ifndef SANDBOX_MAC_XPC_H_ |
11 #define SANDBOX_MAC_XPC_H_ | 11 #define SANDBOX_MAC_XPC_H_ |
12 | 12 |
| 13 #include <AvailabilityMacros.h> |
13 #include <mach/mach.h> | 14 #include <mach/mach.h> |
14 | 15 |
15 #include "sandbox/sandbox_export.h" | 16 #include "sandbox/sandbox_export.h" |
16 | 17 |
17 // C++ library loader. | |
18 #include "sandbox/mac/xpc_stubs.h" | |
19 | |
20 // Declares XPC object types. This includes <xpc/xpc.h> if available. | 18 // Declares XPC object types. This includes <xpc/xpc.h> if available. |
21 #include "sandbox/mac/xpc_stubs_header.fragment" | 19 #include "sandbox/mac/xpc_stubs_header.fragment" |
22 | 20 |
23 #if !defined(MAC_OS_X_VERSION_10_7) || \ | 21 #if !defined(MAC_OS_X_VERSION_10_7) || \ |
24 MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7 | 22 MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7 |
25 | 23 |
| 24 // C++ library loader. |
| 25 #include "sandbox/mac/xpc_stubs.h" |
| 26 |
26 extern "C" { | 27 extern "C" { |
27 // Signatures for XPC public functions that are loaded by xpc_stubs.h. | 28 // Signatures for XPC public functions that are loaded by xpc_stubs.h. |
28 #include "sandbox/mac/xpc_stubs.sig" | 29 #include "sandbox/mac/xpc_stubs.sig" |
29 // Signatures for private XPC functions. | 30 // Signatures for private XPC functions. |
30 #include "sandbox/mac/xpc_private_stubs.sig" | 31 #include "sandbox/mac/xpc_private_stubs.sig" |
31 } // extern "C" | 32 } // extern "C" |
32 | 33 |
33 #else | 34 #else |
34 | 35 |
35 // Signatures for private XPC functions. | 36 // Signatures for private XPC functions. |
36 extern "C" { | 37 extern "C" { |
37 #include "sandbox/mac/xpc_private_stubs.sig" | 38 #include "sandbox/mac/xpc_private_stubs.sig" |
38 } // extern "C" | 39 } // extern "C" |
39 | 40 |
40 #endif | 41 #endif |
41 | 42 |
42 namespace sandbox { | 43 namespace sandbox { |
43 | 44 |
44 // Dynamically loads the XPC library. | 45 // Dynamically loads the XPC library. |
45 bool SANDBOX_EXPORT InitializeXPC(); | 46 bool SANDBOX_EXPORT InitializeXPC(); |
46 | 47 |
47 } // namespace sandbox | 48 } // namespace sandbox |
48 | 49 |
49 #endif // SANDBOX_MAC_XPC_H_ | 50 #endif // SANDBOX_MAC_XPC_H_ |
OLD | NEW |