Source to kernserv/kern_server.defs


Enter a symbol's name here to quickly find it.

/*
 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
 *
 * @APPLE_LICENSE_HEADER_START@
 * 
 * "Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
 * Reserved.  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 1.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.apple.com/publicsource 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 OR NON-INFRINGEMENT.  Please see the
 * License for the specific language governing rights and limitations
 * under the License."
 * 
 * @APPLE_LICENSE_HEADER_END@
 */

/* 
 * Copyright (c) 1989 NeXT, Inc.
 * 24-May-89  Gregg Kellogg (gk) at NeXT
 *	Created.
 *
 */

/*
 * interface for kern_loader to kern_server communication.
 */
subsystem kern_serv 100;

#import <mach/std_types.defs>

type port_map_proc_t = int;
type port_death_proc_t = int;
type call_proc_t = int;
type vm_address_t = int;
type vm_size_t = int;

import <kernserv/kern_server_types.h>;
userprefix	kern_serv_;

waittime	10000;		/* Wait at most 10 seconds. */

/*
 * Provide location of kernel server's instance variables.
 */
routine instance_loc (
		server_port	: port_t;
		instance_loc	: vm_address_t);

/*
 * Set the port that the loader is going to receive on.
 */
routine boot_port (
		server_port	: port_t;
		boot_port	: port_t);

/*
 * Wire a range of memory down.
 */
routine wire_range (
		server_port	: port_t;
		addr		: vm_address_t;
		size		: vm_size_t);

/*
 * Unire a range of memory down.
 */
routine unwire_range (
		server_port	: port_t;
		addr		: vm_address_t;
		size		: vm_size_t);

/*
 * Specify port to proc(arg) mapping (called as a MiG handler)
 */
routine port_proc (
		server_port	: port_t;
		port		: port_all_t;
		proc		: port_map_proc_t;
		argument	: int);

/*
 * Specify proc to call when a port dies.
 */
simpleroutine port_death_proc (
		server_port	: port_t;
		proc		: port_death_proc_t);

/*
 * Specify proc/arg to call right now.
 */
routine call_proc (
		server_port	: port_t;
		proc		: call_proc_t;
		argument	: int);

/*
 * Tell the kernel server to shut down.
 */
simpleroutine shutdown (
		server_port	: port_t);

simpleroutine log_level (
		server_port	: port_t;
		log_level	: int);

simpleroutine get_log (
		server_port	: port_t;
		reply_port	: port_t);

/*
 * Specify port to proc(arg) mapping (called as a MiG server)
 */
routine port_serv (
		server_port	: port_t;
		port		: port_all_t;
		proc		: port_map_proc_t;
		argument	: int);

/*
 * Specify user's version of system user compiled with.
 */
routine version (
		server_port	: port_t;
		version		: int);

/*
 * Load ObjC runtime info
 */
routine load_objc (
		server_port	: port_t;
		addr		: vm_address_t);