]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/mach/notify.h
xnu-4570.71.2.tar.gz
[apple/xnu.git] / osfmk / mach / notify.h
index 0c9dd124644598ce58d1b8a953fbd3f41a9c7bbe..845646c5c4b4b5585cae6e2dde870642107aae0d 100644 (file)
@@ -1,16 +1,19 @@
 /*
 /*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
  *
  *
- * @APPLE_LICENSE_HEADER_START@
- * 
- * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
  * 
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
  * 
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * 
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
@@ -20,7 +23,7 @@
  * Please see the License for the specific language governing rights and
  * limitations under the License.
  * 
  * Please see the License for the specific language governing rights and
  * limitations under the License.
  * 
- * @APPLE_LICENSE_HEADER_END@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /*
  * @OSF_COPYRIGHT@
  */
 /*
  * @OSF_COPYRIGHT@
  */
 
 #define MACH_NOTIFY_FIRST              0100
  */
 
 #define MACH_NOTIFY_FIRST              0100
-#define MACH_NOTIFY_PORT_DELETED       (MACH_NOTIFY_FIRST + 001 )
+#define MACH_NOTIFY_PORT_DELETED       (MACH_NOTIFY_FIRST + 001)
                        /* A send or send-once right was deleted. */
                        /* A send or send-once right was deleted. */
+#define MACH_NOTIFY_SEND_POSSIBLE      (MACH_NOTIFY_FIRST + 002)
+                       /* Now possible to send using specified right */
 #define MACH_NOTIFY_PORT_DESTROYED     (MACH_NOTIFY_FIRST + 005)
                        /* A receive right was (would have been) deallocated */
 #define MACH_NOTIFY_NO_SENDERS         (MACH_NOTIFY_FIRST + 006)
 #define MACH_NOTIFY_PORT_DESTROYED     (MACH_NOTIFY_FIRST + 005)
                        /* A receive right was (would have been) deallocated */
 #define MACH_NOTIFY_NO_SENDERS         (MACH_NOTIFY_FIRST + 006)
                        /* Send or send-once right died, leaving a dead-name */
 #define MACH_NOTIFY_LAST               (MACH_NOTIFY_FIRST + 015)
 
                        /* Send or send-once right died, leaving a dead-name */
 #define MACH_NOTIFY_LAST               (MACH_NOTIFY_FIRST + 015)
 
+typedef mach_port_t notify_port_t;
+
+/*
+ * Hard-coded message structures for receiving Mach port notification
+ * messages.  However, they are not actual large enough to receive 
+ * the largest trailers current exported by Mach IPC (so they cannot
+ * be used for space allocations in situations using these new larger
+ * trailers).  Instead, the MIG-generated server routines (and
+ * related prototypes should be used).
+ */
 typedef struct {
     mach_msg_header_t  not_header;
     NDR_record_t       NDR;
 typedef struct {
     mach_msg_header_t  not_header;
     NDR_record_t       NDR;
@@ -90,6 +105,13 @@ typedef struct {
     mach_msg_format_0_trailer_t trailer;
 } mach_port_deleted_notification_t;
 
     mach_msg_format_0_trailer_t trailer;
 } mach_port_deleted_notification_t;
 
+typedef struct {
+    mach_msg_header_t  not_header;
+    NDR_record_t       NDR;
+    mach_port_name_t not_port;/* MACH_MSG_TYPE_PORT_NAME */
+    mach_msg_format_0_trailer_t trailer;
+} mach_send_possible_notification_t;
+
 typedef struct {
     mach_msg_header_t  not_header;
     mach_msg_body_t    not_body;
 typedef struct {
     mach_msg_header_t  not_header;
     mach_msg_body_t    not_body;