Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(208)

Side by Side Diff: sandbox/mac/xpc.h

Issue 1853713004: mac: Remove some 10.6-SDK-only sandbox code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comment Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sandbox/mac/sandbox_mac.gypi ('k') | sandbox/mac/xpc.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 private XPC symbols.
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 6
10 #ifndef SANDBOX_MAC_XPC_H_ 7 #ifndef SANDBOX_MAC_XPC_H_
11 #define SANDBOX_MAC_XPC_H_ 8 #define SANDBOX_MAC_XPC_H_
12 9
13 #include <AvailabilityMacros.h> 10 #include <AvailabilityMacros.h>
14 #include <mach/mach.h> 11 #include <mach/mach.h>
12 #include <bsm/libbsm.h>
13 #include <xpc/xpc.h>
15 14
16 #include "sandbox/sandbox_export.h" 15 #include "sandbox/sandbox_export.h"
17 16
18 // Declares XPC object types. This includes <xpc/xpc.h> if available. 17 // Declare private types.
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" { 18 extern "C" {
28 // Signatures for XPC public functions that are loaded by xpc_stubs.h. 19 typedef struct _xpc_pipe_s* xpc_pipe_t;
29 #include "sandbox/mac/xpc_stubs.sig"
30 // Signatures for private XPC functions.
31 #include "sandbox/mac/xpc_private_stubs.sig"
32 } // extern "C" 20 } // extern "C"
33 21
34 #else 22 #if defined(MAC_OS_X_VERSION_10_7) && \
23 MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7
24 // Redeclare methods that only exist on 10.7+ to suppress
25 // -Wpartial-availability warnings.
26 extern "C" {
27 void xpc_dictionary_set_int64(xpc_object_t xdict,
28 const char* key,
29 int64_t value);
30 void xpc_release(xpc_object_t object);
31 bool xpc_dictionary_get_bool(xpc_object_t xdict, const char* key);
32 int64_t xpc_dictionary_get_int64(xpc_object_t xdict, const char* key);
33 const char* xpc_dictionary_get_string(xpc_object_t xdict, const char* key);
34 uint64_t xpc_dictionary_get_uint64(xpc_object_t xdict, const char* key);
35 void xpc_dictionary_set_uint64(xpc_object_t xdict,
36 const char* key,
37 uint64_t value);
38 void xpc_dictionary_set_string(xpc_object_t xdict, const char* key,
39 const char* string);
40 xpc_object_t xpc_dictionary_create(const char* const* keys,
41 const xpc_object_t* values,
42 size_t count);
43 xpc_object_t xpc_dictionary_create_reply(xpc_object_t original);
44 xpc_object_t xpc_dictionary_get_value(xpc_object_t xdict, const char* key);
45 char* xpc_copy_description(xpc_object_t object);
46 } // extern "C"
47 #endif
35 48
36 // Signatures for private XPC functions. 49 // Signatures for private XPC functions.
37 extern "C" { 50 extern "C" {
38 #include "sandbox/mac/xpc_private_stubs.sig" 51 // Dictionary manipulation.
52 void xpc_dictionary_set_mach_send(xpc_object_t dictionary,
53 const char* name,
54 mach_port_t port);
55 void xpc_dictionary_get_audit_token(xpc_object_t dictionary,
56 audit_token_t* token);
57
58 // Raw object getters.
59 mach_port_t xpc_mach_send_get_right(xpc_object_t value);
60
61 // Pipe methods.
62 xpc_pipe_t xpc_pipe_create_from_port(mach_port_t port, int flags);
63 int xpc_pipe_receive(mach_port_t port, xpc_object_t* message);
64 int xpc_pipe_routine(xpc_pipe_t pipe,
65 xpc_object_t request,
66 xpc_object_t* reply);
67 int xpc_pipe_routine_reply(xpc_object_t reply);
68 int xpc_pipe_simpleroutine(xpc_pipe_t pipe, xpc_object_t message);
69 int xpc_pipe_routine_forward(xpc_pipe_t forward_to, xpc_object_t request);
39 } // extern "C" 70 } // extern "C"
40 71
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_ 72 #endif // SANDBOX_MAC_XPC_H_
OLDNEW
« no previous file with comments | « sandbox/mac/sandbox_mac.gypi ('k') | sandbox/mac/xpc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698