|
|
1.1 ! root 1: /* ! 2: * Mach Operating System ! 3: * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University ! 4: * All Rights Reserved. ! 5: * ! 6: * Permission to use, copy, modify and distribute this software and its ! 7: * documentation is hereby granted, provided that both the copyright ! 8: * notice and this permission notice appear in all copies of the ! 9: * software, derivative works or modified versions, and any portions ! 10: * thereof, and that both notices appear in supporting documentation. ! 11: * ! 12: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" ! 13: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR ! 14: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ! 15: * ! 16: * Carnegie Mellon requests users of this software to return to ! 17: * ! 18: * Software Distribution Coordinator or [email protected] ! 19: * School of Computer Science ! 20: * Carnegie Mellon University ! 21: * Pittsburgh PA 15213-3890 ! 22: * ! 23: * any improvements or extensions that they make and grant Carnegie Mellon ! 24: * the rights to redistribute these changes. ! 25: */ ! 26: /* ! 27: * File: mach/notify.h ! 28: * ! 29: * Kernel notification message definitions. ! 30: */ ! 31: ! 32: #ifndef _MACH_NOTIFY_H_ ! 33: #define _MACH_NOTIFY_H_ ! 34: ! 35: #ifdef MACH_KERNEL ! 36: #include <mach_ipc_compat.h> ! 37: #endif /* MACH_KERNEL */ ! 38: ! 39: #include <mach/port.h> ! 40: #include <mach/message.h> ! 41: ! 42: /* ! 43: * An alternative specification of the notification interface ! 44: * may be found in mach/notify.defs. ! 45: */ ! 46: ! 47: #define MACH_NOTIFY_FIRST 0100 ! 48: #define MACH_NOTIFY_PORT_DELETED (MACH_NOTIFY_FIRST + 001 ) ! 49: /* A send or send-once right was deleted. */ ! 50: #define MACH_NOTIFY_MSG_ACCEPTED (MACH_NOTIFY_FIRST + 002) ! 51: /* A MACH_SEND_NOTIFY msg was accepted */ ! 52: #define MACH_NOTIFY_PORT_DESTROYED (MACH_NOTIFY_FIRST + 005) ! 53: /* A receive right was (would have been) deallocated */ ! 54: #define MACH_NOTIFY_NO_SENDERS (MACH_NOTIFY_FIRST + 006) ! 55: /* Receive right has no extant send rights */ ! 56: #define MACH_NOTIFY_SEND_ONCE (MACH_NOTIFY_FIRST + 007) ! 57: /* An extant send-once right died */ ! 58: #define MACH_NOTIFY_DEAD_NAME (MACH_NOTIFY_FIRST + 010) ! 59: /* Send or send-once right died, leaving a dead-name */ ! 60: #define MACH_NOTIFY_LAST (MACH_NOTIFY_FIRST + 015) ! 61: ! 62: typedef struct { ! 63: mach_msg_header_t not_header; ! 64: mach_msg_type_t not_type; /* MACH_MSG_TYPE_PORT_NAME */ ! 65: mach_port_t not_port; ! 66: } mach_port_deleted_notification_t; ! 67: ! 68: typedef struct { ! 69: mach_msg_header_t not_header; ! 70: mach_msg_type_t not_type; /* MACH_MSG_TYPE_PORT_NAME */ ! 71: mach_port_t not_port; ! 72: } mach_msg_accepted_notification_t; ! 73: ! 74: typedef struct { ! 75: mach_msg_header_t not_header; ! 76: mach_msg_type_t not_type; /* MACH_MSG_TYPE_PORT_RECEIVE */ ! 77: mach_port_t not_port; ! 78: } mach_port_destroyed_notification_t; ! 79: ! 80: typedef struct { ! 81: mach_msg_header_t not_header; ! 82: mach_msg_type_t not_type; /* MACH_MSG_TYPE_INTEGER_32 */ ! 83: unsigned int not_count; ! 84: } mach_no_senders_notification_t; ! 85: ! 86: typedef struct { ! 87: mach_msg_header_t not_header; ! 88: } mach_send_once_notification_t; ! 89: ! 90: typedef struct { ! 91: mach_msg_header_t not_header; ! 92: mach_msg_type_t not_type; /* MACH_MSG_TYPE_PORT_NAME */ ! 93: mach_port_t not_port; ! 94: } mach_dead_name_notification_t; ! 95: ! 96: ! 97: /* Definitions for the old IPC interface. */ ! 98: ! 99: #if MACH_IPC_COMPAT ! 100: ! 101: /* ! 102: * Notifications sent upon interesting system events. ! 103: */ ! 104: ! 105: #define NOTIFY_FIRST 0100 ! 106: #define NOTIFY_PORT_DELETED ( NOTIFY_FIRST + 001 ) ! 107: #define NOTIFY_MSG_ACCEPTED ( NOTIFY_FIRST + 002 ) ! 108: #define NOTIFY_OWNERSHIP_RIGHTS ( NOTIFY_FIRST + 003 ) ! 109: #define NOTIFY_RECEIVE_RIGHTS ( NOTIFY_FIRST + 004 ) ! 110: #define NOTIFY_PORT_DESTROYED ( NOTIFY_FIRST + 005 ) ! 111: #define NOTIFY_NO_MORE_SENDERS ( NOTIFY_FIRST + 006 ) ! 112: #define NOTIFY_LAST ( NOTIFY_FIRST + 015 ) ! 113: ! 114: typedef struct { ! 115: msg_header_t notify_header; ! 116: msg_type_t notify_type; ! 117: port_t notify_port; ! 118: } notification_t; ! 119: ! 120: #endif /* MACH_IPC_COMPAT */ ! 121: ! 122: #endif /* _MACH_NOTIFY_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.