• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
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
7 // dynamically load the libxpc.dylib library and set up a stub table, with
8 // the same names as the real XPC functions.
9 
10 #ifndef SANDBOX_MAC_XPC_H_
11 #define SANDBOX_MAC_XPC_H_
12 
13 #include <AvailabilityMacros.h>
14 #include <mach/mach.h>
15 
16 #include "sandbox/sandbox_export.h"
17 
18 // Declares XPC object types. This includes <xpc/xpc.h> if available.
19 #include "sandbox/mac/xpc_stubs_header.fragment"
20 
21 #if !defined(MAC_OS_X_VERSION_10_7) || \
22     MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7
23 
24 // C++ library loader.
25 #include "sandbox/mac/xpc_stubs.h"
26 
27 extern "C" {
28 // Signatures for XPC public functions that are loaded by xpc_stubs.h.
29 #include "sandbox/mac/xpc_stubs.sig"
30 // Signatures for private XPC functions.
31 #include "sandbox/mac/xpc_private_stubs.sig"
32 }  // extern "C"
33 
34 #else
35 
36 // Signatures for private XPC functions.
37 extern "C" {
38 #include "sandbox/mac/xpc_private_stubs.sig"
39 }  // extern "C"
40 
41 #endif
42 
43 namespace sandbox {
44 
45 // Dynamically loads the XPC library.
46 bool SANDBOX_EXPORT InitializeXPC();
47 
48 }  // namespace sandbox
49 
50 #endif  // SANDBOX_MAC_XPC_H_
51