notify_ipc.defs   [plain text]


/*
 * Copyright (c) 2003-2011 Apple Inc. All rights reserved.
 *
 * @APPLE_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
 * 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.
 *
 * The Original Code and all software distributed under the License are
 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
 * Please see the License for the specific language governing rights and
 * limitations under the License.
 *
 * @APPLE_LICENSE_HEADER_END@
 */

#include <mach/std_types.defs>
#include <mach/mach_types.defs>

subsystem notify_ipc 78945000;
serverprefix _;

import <sys/types.h>;

type notify_name    = c_string[*:512]
	ctype : caddr_t;

type notify_path    = array[] of char
	ctype : caddr_t;

UseSpecialReplyPort 1;

skip; // was _notify_server_register_plain
skip; // was _notify_server_cancel

routine _notify_server_check
(
	server : mach_port_t;
	token : int;
	out check : int;
	out status : int;
	ServerAuditToken audit : audit_token_t
);

routine _notify_server_get_state
(
	server : mach_port_t;
	token : int;
	out state : uint64_t;
	out status : int;
	ServerAuditToken audit : audit_token_t
);


routine _notify_server_suspend
(
	server : mach_port_t;
	token : int;
	out status : int;
	ServerAuditToken audit : audit_token_t
);

routine _notify_server_resume
(
	server : mach_port_t;
	token : int;
	out status : int;
	ServerAuditToken audit : audit_token_t
);

simpleroutine _notify_server_suspend_pid
(
	server : mach_port_t;
	pid : int;
	ServerAuditToken audit : audit_token_t
);

simpleroutine _notify_server_resume_pid
(
	server : mach_port_t;
	pid : int;
	ServerAuditToken audit : audit_token_t
);



MsgOption MACH_SEND_PROPAGATE_QOS;

routine _notify_server_post_2
(
	server : mach_port_t;
	name : notify_name;
	out name_id : uint64_t;
	out status : int;
	claim_root_access : boolean_t;
	ServerAuditToken audit : audit_token_t
);

simpleroutine _notify_server_post_3
(
	server : mach_port_t;
	name_id : uint64_t;
	claim_root_access : boolean_t;
	ServerAuditToken audit : audit_token_t
);

simpleroutine _notify_server_post_4
(
	server : mach_port_t;
	name : notify_name;
	claim_root_access : boolean_t;
	ServerAuditToken audit : audit_token_t
);

MsgOption MACH_MSG_OPTION_NONE;

simpleroutine _notify_server_register_plain_2
(
	server : mach_port_t;
	name : notify_name;
	token : int;
	ServerAuditToken audit : audit_token_t
);

routine _notify_server_register_check_2
(
	server : mach_port_t;
	name : notify_name;
	token: int;
	out size : int;
	out slot : int;
	out name_id : uint64_t;
	out status : int;
	ServerAuditToken audit : audit_token_t
);

simpleroutine _notify_server_register_signal_2
(
	server : mach_port_t;
	name : notify_name;
	token : int;
	sig: int;
	ServerAuditToken audit : audit_token_t
);

simpleroutine _notify_server_register_file_descriptor_2
(
	server : mach_port_t;
	name : notify_name;
	token: int;
	fileport : mach_port_move_send_t;
	ServerAuditToken audit : audit_token_t
);

simpleroutine _notify_server_register_mach_port_2
(
	server : mach_port_t;
	name : notify_name;
	token: int;
	port : mach_port_make_send_t;
	ServerAuditToken audit : audit_token_t
);

simpleroutine _notify_server_cancel_2
(
	server : mach_port_t;
	token : int;
	ServerAuditToken audit : audit_token_t
);

routine _notify_server_get_state_2
(
	server : mach_port_t;
	name_id : uint64_t;
	out state : uint64_t;
	out status : int;
	ServerAuditToken audit : audit_token_t
);

routine _notify_server_get_state_3
(
	server : mach_port_t;
	token : int;
	out state : uint64_t;
	out nid : uint64_t;
	out status : int;
	ServerAuditToken audit : audit_token_t
);

simpleroutine _notify_server_set_state_2
(
	server : mach_port_t;
	name_id : uint64_t;
	state : uint64_t;
	claim_root_access : boolean_t;
	ServerAuditToken audit : audit_token_t
);

routine _notify_server_set_state_3
(
	server : mach_port_t;
	token : int;
	state : uint64_t;
	out nid : uint64_t;
	out status : int;
	claim_root_access : boolean_t;
	ServerAuditToken audit : audit_token_t
);

simpleroutine _notify_server_monitor_file_2
(
	server : mach_port_t;
	token : int;
	path : notify_path;
	flags : int;
	ServerAuditToken audit : audit_token_t
);

routine _notify_server_regenerate
(
	server : mach_port_t;
	name : notify_name;
	token : int;
	reg_type : uint32_t;
	port : mach_port_make_send_t;
	sig: int;
	prev_slot: int;
	prev_state : uint64_t;
	prev_time : uint64_t;
	path : notify_path;
	path_flags: int;
	out new_slot : int;
	out new_name_id : uint64_t;
	out status : int;
	ServerAuditToken audit : audit_token_t
);


routine _notify_server_checkin
(
	server : mach_port_t;
	out version: uint32_t;
	out server_pid : uint32_t;
	out status : int;
	ServerAuditToken audit : audit_token_t
);


routine _notify_server_dump
(
	server : mach_port_t;
	fileport : mach_port_move_send_t;
	ServerAuditToken audit : audit_token_t
);

routine _notify_generate_common_port
(
	server : mach_port_t;
	out status : uint32_t;
	out port : mach_port_move_receive_t;
	ServerAuditToken audit : audit_token_t
);

simpleroutine _notify_server_register_common_port
(
	server : mach_port_t;
	name : notify_name;
	token: int;
	ServerAuditToken audit : audit_token_t
);

routine _notify_server_register_mach_port_3
(
	server : mach_port_t;
	name : notify_name;
	token: int;
	out status : uint32_t;
	out port : mach_port_move_receive_t;
	ServerAuditToken audit : audit_token_t
);