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 27extern "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. 37extern "C" { 38#include "sandbox/mac/xpc_private_stubs.sig" 39} // extern "C" 40 41#endif 42 43namespace sandbox { 44 45// Dynamically loads the XPC library. 46bool SANDBOX_EXPORT InitializeXPC(); 47 48} // namespace sandbox 49 50#endif // SANDBOX_MAC_XPC_H_ 51