#ifndef _notify_server_ #define _notify_server_ /* Module notify */ #include #include #include #include #include #include #include #include #include #ifdef AUTOTEST #ifndef FUNCTION_PTR_T #define FUNCTION_PTR_T typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t); typedef struct { char *name; function_ptr_t function; } function_table_entry; typedef function_table_entry *function_table_t; #endif /* FUNCTION_PTR_T */ #endif /* AUTOTEST */ #ifndef notify_MSG_COUNT #define notify_MSG_COUNT 9 #endif /* notify_MSG_COUNT */ #include #include #ifdef __BeforeMigServerHeader __BeforeMigServerHeader #endif /* __BeforeMigServerHeader */ /* SimpleRoutine mach_notify_port_deleted */ #ifdef mig_external mig_external #else extern #endif /* mig_external */ kern_return_t do_mach_notify_port_deleted ( mach_port_t notify, mach_port_name_t name ); /* SimpleRoutine mach_notify_port_destroyed */ #ifdef mig_external mig_external #else extern #endif /* mig_external */ kern_return_t do_mach_notify_port_destroyed ( mach_port_t notify, mach_port_t rights ); /* SimpleRoutine mach_notify_no_senders */ #ifdef mig_external mig_external #else extern #endif /* mig_external */ kern_return_t do_mach_notify_no_senders ( mach_port_t notify, mach_port_mscount_t mscount ); /* SimpleRoutine mach_notify_send_once */ #ifdef mig_external mig_external #else extern #endif /* mig_external */ kern_return_t do_mach_notify_send_once ( mach_port_t notify ); /* SimpleRoutine mach_notify_dead_name */ #ifdef mig_external mig_external #else extern #endif /* mig_external */ kern_return_t do_mach_notify_dead_name ( mach_port_t notify, mach_port_name_t name ); #ifdef mig_external mig_external #else extern #endif /* mig_external */ boolean_t notify_server( mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); #ifdef mig_external mig_external #else extern #endif /* mig_external */ mig_routine_t notify_server_routine( mach_msg_header_t *InHeadP); /* Description of this subsystem, for use in direct RPC */ extern const struct do_notify_subsystem { mig_server_routine_t server; /* Server routine */ mach_msg_id_t start; /* Min routine number */ mach_msg_id_t end; /* Max routine number + 1 */ unsigned int maxsize; /* Max msg size */ vm_address_t reserved; /* Reserved */ struct routine_descriptor /*Array of routine descriptors */ routine[9]; } do_notify_subsystem; /* typedefs for all requests */ #ifndef __Request__notify_subsystem__defined #define __Request__notify_subsystem__defined #ifdef __MigPackStructs #pragma pack(4) #endif typedef struct { mach_msg_header_t Head; NDR_record_t NDR; mach_port_name_t name; } __Request__mach_notify_port_deleted_t; #ifdef __MigPackStructs #pragma pack() #endif #ifdef __MigPackStructs #pragma pack(4) #endif typedef struct { mach_msg_header_t Head; /* start of the kernel processed data */ mach_msg_body_t msgh_body; mach_msg_port_descriptor_t rights; /* end of the kernel processed data */ } __Request__mach_notify_port_destroyed_t; #ifdef __MigPackStructs #pragma pack() #endif #ifdef __MigPackStructs #pragma pack(4) #endif typedef struct { mach_msg_header_t Head; NDR_record_t NDR; mach_port_mscount_t mscount; } __Request__mach_notify_no_senders_t; #ifdef __MigPackStructs #pragma pack() #endif #ifdef __MigPackStructs #pragma pack(4) #endif typedef struct { mach_msg_header_t Head; } __Request__mach_notify_send_once_t; #ifdef __MigPackStructs #pragma pack() #endif #ifdef __MigPackStructs #pragma pack(4) #endif typedef struct { mach_msg_header_t Head; NDR_record_t NDR; mach_port_name_t name; } __Request__mach_notify_dead_name_t; #ifdef __MigPackStructs #pragma pack() #endif #endif /* !__Request__notify_subsystem__defined */ /* union of all requests */ #ifndef __RequestUnion__do_notify_subsystem__defined #define __RequestUnion__do_notify_subsystem__defined union __RequestUnion__do_notify_subsystem { __Request__mach_notify_port_deleted_t Request_mach_notify_port_deleted; __Request__mach_notify_port_destroyed_t Request_mach_notify_port_destroyed; __Request__mach_notify_no_senders_t Request_mach_notify_no_senders; __Request__mach_notify_send_once_t Request_mach_notify_send_once; __Request__mach_notify_dead_name_t Request_mach_notify_dead_name; }; #endif /* __RequestUnion__do_notify_subsystem__defined */ /* typedefs for all replies */ #ifndef __Reply__notify_subsystem__defined #define __Reply__notify_subsystem__defined #ifdef __MigPackStructs #pragma pack(4) #endif typedef struct { mach_msg_header_t Head; NDR_record_t NDR; kern_return_t RetCode; } __Reply__mach_notify_port_deleted_t; #ifdef __MigPackStructs #pragma pack() #endif #ifdef __MigPackStructs #pragma pack(4) #endif typedef struct { mach_msg_header_t Head; NDR_record_t NDR; kern_return_t RetCode; } __Reply__mach_notify_port_destroyed_t; #ifdef __MigPackStructs #pragma pack() #endif #ifdef __MigPackStructs #pragma pack(4) #endif typedef struct { mach_msg_header_t Head; NDR_record_t NDR; kern_return_t RetCode; } __Reply__mach_notify_no_senders_t; #ifdef __MigPackStructs #pragma pack() #endif #ifdef __MigPackStructs #pragma pack(4) #endif typedef struct { mach_msg_header_t Head; NDR_record_t NDR; kern_return_t RetCode; } __Reply__mach_notify_send_once_t; #ifdef __MigPackStructs #pragma pack() #endif #ifdef __MigPackStructs #pragma pack(4) #endif typedef struct { mach_msg_header_t Head; NDR_record_t NDR; kern_return_t RetCode; } __Reply__mach_notify_dead_name_t; #ifdef __MigPackStructs #pragma pack() #endif #endif /* !__Reply__notify_subsystem__defined */ /* union of all replies */ #ifndef __ReplyUnion__do_notify_subsystem__defined #define __ReplyUnion__do_notify_subsystem__defined union __ReplyUnion__do_notify_subsystem { __Reply__mach_notify_port_deleted_t Reply_mach_notify_port_deleted; __Reply__mach_notify_port_destroyed_t Reply_mach_notify_port_destroyed; __Reply__mach_notify_no_senders_t Reply_mach_notify_no_senders; __Reply__mach_notify_send_once_t Reply_mach_notify_send_once; __Reply__mach_notify_dead_name_t Reply_mach_notify_dead_name; }; #endif /* __RequestUnion__do_notify_subsystem__defined */ #ifndef subsystem_to_name_map_notify #define subsystem_to_name_map_notify \ { "mach_notify_port_deleted", 65 },\ { "mach_notify_port_destroyed", 69 },\ { "mach_notify_no_senders", 70 },\ { "mach_notify_send_once", 71 },\ { "mach_notify_dead_name", 72 } #endif #ifdef __AfterMigServerHeader __AfterMigServerHeader #endif /* __AfterMigServerHeader */ #endif /* _notify_server_ */