darwin-xnu/osfmk/kern/ipc_tt.h
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
   3 *
   4 * @APPLE_LICENSE_HEADER_START@
   5 * 
   6 * The contents of this file constitute Original Code as defined in and
   7 * are subject to the Apple Public Source License Version 1.1 (the
   8 * "License").  You may not use this file except in compliance with the
   9 * License.  Please obtain a copy of the License at
  10 * http://www.apple.com/publicsource and read it before using this file.
  11 * 
  12 * This Original Code and all software distributed under the License are
  13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
  16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
  17 * License for the specific language governing rights and limitations
  18 * under the License.
  19 * 
  20 * @APPLE_LICENSE_HEADER_END@
  21 */
  22/*
  23 * @OSF_COPYRIGHT@
  24 */
  25/* 
  26 * Mach Operating System
  27 * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
  28 * All Rights Reserved.
  29 * 
  30 * Permission to use, copy, modify and distribute this software and its
  31 * documentation is hereby granted, provided that both the copyright
  32 * notice and this permission notice appear in all copies of the
  33 * software, derivative works or modified versions, and any portions
  34 * thereof, and that both notices appear in supporting documentation.
  35 * 
  36 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
  37 * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  38 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
  39 * 
  40 * Carnegie Mellon requests users of this software to return to
  41 * 
  42 *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
  43 *  School of Computer Science
  44 *  Carnegie Mellon University
  45 *  Pittsburgh PA 15213-3890
  46 * 
  47 * any improvements or extensions that they make and grant Carnegie Mellon
  48 * the rights to redistribute these changes.
  49 */
  50/*
  51 */
  52
  53#ifndef _KERN_IPC_TT_H_
  54#define _KERN_IPC_TT_H_
  55
  56#include <mach/boolean.h>
  57#include <mach/port.h>
  58#include <vm/vm_kern.h>
  59#include <kern/kern_types.h>
  60#include <kern/ipc_kobject.h>
  61#include <ipc/ipc_space.h>
  62#include <ipc/ipc_table.h>
  63#include <ipc/ipc_port.h>
  64#include <ipc/ipc_right.h>
  65#include <ipc/ipc_entry.h>
  66#include <ipc/ipc_object.h>
  67
  68
  69/* Initialize a task's IPC state */
  70extern void ipc_task_init(
  71        task_t          task,
  72        task_t          parent);
  73
  74/* Enable a task for IPC access */
  75extern void ipc_task_enable(
  76        task_t          task);
  77
  78/* Disable IPC access to a task */
  79extern void ipc_task_disable(
  80        task_t          task);
  81
  82/* Clear out a task's IPC state */
  83extern void ipc_task_reset(
  84        task_t          task);
  85
  86/* Clean up and destroy a task's IPC state */
  87extern void ipc_task_terminate(
  88        task_t          task);
  89
  90/* Initialize a thread's IPC state */
  91extern void ipc_thread_init(
  92        thread_t        thread);
  93
  94/* Disable IPC access to a thread */
  95extern void ipc_thread_disable(
  96        thread_t        thread);
  97
  98/* Clean up and destroy a thread's IPC state */
  99extern void ipc_thread_terminate(
 100        thread_t        thread);
 101
 102/* Return a send right for the task's user-visible self port */
 103extern ipc_port_t retrieve_task_self_fast(
 104        task_t          task);
 105
 106/* Return a send right for the thread's user-visible self port */
 107extern ipc_port_t retrieve_thread_self_fast(
 108        thread_t        thread);
 109
 110/* Convert from a port to a task */
 111extern task_t convert_port_to_task(
 112        ipc_port_t      port);
 113
 114extern task_t port_name_to_task(
 115        mach_port_name_t name);
 116
 117extern boolean_t ref_task_port_locked(
 118        ipc_port_t port, task_t *ptask);
 119
 120/* Convert from a port to a space */
 121extern ipc_space_t convert_port_to_space(
 122        ipc_port_t      port);
 123
 124extern boolean_t ref_space_port_locked(
 125        ipc_port_t port, ipc_space_t *pspace);
 126
 127/* Convert from a port to a map */
 128extern vm_map_t convert_port_to_map(
 129        ipc_port_t      port);
 130
 131/* Convert from a port to a thread */
 132extern thread_t convert_port_to_thread(
 133        ipc_port_t              port);
 134
 135extern thread_t port_name_to_thread(
 136        mach_port_name_t        port_name);
 137
 138/* Convert from a task to a port */
 139extern ipc_port_t convert_task_to_port(
 140        task_t                  task);
 141
 142/* Convert from a thread to a port */
 143extern ipc_port_t       convert_thread_to_port(
 144        thread_t                thread);
 145
 146/* Deallocate a space ref produced by convert_port_to_space */
 147extern void space_deallocate(
 148        ipc_space_t             space);
 149
 150#endif  /* _KERN_IPC_TT_H_ */
 151
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.