1/*
2 * Copyright (c) 2000-2001,2004 Apple Computer, 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
43typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
44typedef struct {
45        char            *name;
46        function_ptr_t  function;
47} function_table_entry;
48typedef 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
65mig_external
66#else
67extern
68#endif	/* mig_external */
69kern_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
77mig_external
78#else
79extern
80#endif	/* mig_external */
81kern_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
90mig_external
91#else
92extern
93#endif	/* mig_external */
94kern_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
102mig_external
103#else
104extern
105#endif	/* mig_external */
106kern_return_t mach_notify_send_once
107(
108	mach_port_t notify
109);
110
111/* SimpleRoutine mach_notify_dead_name */
112#ifdef	mig_external
113mig_external
114#else
115extern
116#endif	/* mig_external */
117kern_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_ */
137