// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // This file provides forward declarations for private XPC symbols. #ifndef SANDBOX_MAC_XPC_H_ #define SANDBOX_MAC_XPC_H_ #include #include #include #include #include "sandbox/sandbox_export.h" // Declare private types. extern "C" { typedef struct _xpc_pipe_s* xpc_pipe_t; } // extern "C" #if defined(MAC_OS_X_VERSION_10_7) && \ MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7 // Redeclare methods that only exist on 10.7+ to suppress // -Wpartial-availability warnings. extern "C" { void xpc_dictionary_set_int64(xpc_object_t xdict, const char* key, int64_t value); void xpc_release(xpc_object_t object); bool xpc_dictionary_get_bool(xpc_object_t xdict, const char* key); int64_t xpc_dictionary_get_int64(xpc_object_t xdict, const char* key); const char* xpc_dictionary_get_string(xpc_object_t xdict, const char* key); uint64_t xpc_dictionary_get_uint64(xpc_object_t xdict, const char* key); void xpc_dictionary_set_uint64(xpc_object_t xdict, const char* key, uint64_t value); void xpc_dictionary_set_string(xpc_object_t xdict, const char* key, const char* string); xpc_object_t xpc_dictionary_create(const char* const* keys, const xpc_object_t* values, size_t count); xpc_object_t xpc_dictionary_create_reply(xpc_object_t original); xpc_object_t xpc_dictionary_get_value(xpc_object_t xdict, const char* key); char* xpc_copy_description(xpc_object_t object); } // extern "C" #endif // Signatures for private XPC functions. extern "C" { // Dictionary manipulation. void xpc_dictionary_set_mach_send(xpc_object_t dictionary, const char* name, mach_port_t port); void xpc_dictionary_get_audit_token(xpc_object_t dictionary, audit_token_t* token); // Raw object getters. mach_port_t xpc_mach_send_get_right(xpc_object_t value); // Pipe methods. xpc_pipe_t xpc_pipe_create_from_port(mach_port_t port, int flags); int xpc_pipe_receive(mach_port_t port, xpc_object_t* message); int xpc_pipe_routine(xpc_pipe_t pipe, xpc_object_t request, xpc_object_t* reply); int xpc_pipe_routine_reply(xpc_object_t reply); int xpc_pipe_simpleroutine(xpc_pipe_t pipe, xpc_object_t message); int xpc_pipe_routine_forward(xpc_pipe_t forward_to, xpc_object_t request); } // extern "C" #endif // SANDBOX_MAC_XPC_H_