]> git.saurik.com Git - apple/security.git/blob - OSX/libsecurity_utilities/lib/mach_notify.h
Security-57336.1.9.tar.gz
[apple/security.git] / OSX / libsecurity_utilities / lib / mach_notify.h
1 /*
2 * Copyright (c) 2000-2001,2004,2011,2014 Apple Inc. All Rights Reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24
25 #ifndef _notify_user_
26 #define _notify_user_
27
28 /* Module notify */
29
30 #include <string.h>
31 #include <mach/ndr.h>
32 #include <mach/boolean.h>
33 #include <mach/kern_return.h>
34 #include <mach/notify.h>
35 #include <mach/mach_types.h>
36 #include <mach/message.h>
37 #include <mach/mig_errors.h>
38 #include <mach/port.h>
39
40 #ifdef AUTOTEST
41 #ifndef FUNCTION_PTR_T
42 #define FUNCTION_PTR_T
43 typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
44 typedef struct {
45 char *name;
46 function_ptr_t function;
47 } function_table_entry;
48 typedef function_table_entry *function_table_t;
49 #endif /* FUNCTION_PTR_T */
50 #endif /* AUTOTEST */
51
52 #ifndef notify_MSG_COUNT
53 #define notify_MSG_COUNT 9
54 #endif /* notify_MSG_COUNT */
55
56 #include <mach/std_types.h>
57
58 #ifdef __BeforeMigUserHeader
59 __BeforeMigUserHeader
60 #endif /* __BeforeMigUserHeader */
61
62
63 /* SimpleRoutine mach_notify_port_deleted */
64 #ifdef mig_external
65 mig_external
66 #else
67 extern
68 #endif /* mig_external */
69 kern_return_t mach_notify_port_deleted
70 (
71 mach_port_t notify,
72 mach_port_name_t name
73 );
74
75 /* SimpleRoutine mach_notify_port_destroyed */
76 #ifdef mig_external
77 mig_external
78 #else
79 extern
80 #endif /* mig_external */
81 kern_return_t mach_notify_port_destroyed
82 (
83 mach_port_t notify,
84 mach_port_t rights,
85 mach_msg_type_name_t rightsPoly
86 );
87
88 /* SimpleRoutine mach_notify_no_senders */
89 #ifdef mig_external
90 mig_external
91 #else
92 extern
93 #endif /* mig_external */
94 kern_return_t mach_notify_no_senders
95 (
96 mach_port_t notify,
97 mach_port_mscount_t mscount
98 );
99
100 /* SimpleRoutine mach_notify_send_once */
101 #ifdef mig_external
102 mig_external
103 #else
104 extern
105 #endif /* mig_external */
106 kern_return_t mach_notify_send_once
107 (
108 mach_port_t notify
109 );
110
111 /* SimpleRoutine mach_notify_dead_name */
112 #ifdef mig_external
113 mig_external
114 #else
115 extern
116 #endif /* mig_external */
117 kern_return_t mach_notify_dead_name
118 (
119 mach_port_t notify,
120 mach_port_name_t name
121 );
122
123 #ifndef subsystem_to_name_map_notify
124 #define subsystem_to_name_map_notify \
125 { "mach_notify_port_deleted", 65 },\
126 { "mach_notify_port_destroyed", 69 },\
127 { "mach_notify_no_senders", 70 },\
128 { "mach_notify_send_once", 71 },\
129 { "mach_notify_dead_name", 72 }
130 #endif
131
132 #ifdef __AfterMigUserHeader
133 __AfterMigUserHeader
134 #endif /* __AfterMigUserHeader */
135
136 #endif /* _notify_user_ */