1 .\"
2 .\" Mach Operating System
3 .\" Copyright (c) 1991,1990 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 Software.Distribution@CS.CMU.EDU
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 .\" HISTORY
28 .\" $Log: task_create.man,v $
29 .\" Revision 2.5 93/03/18 15:14:44 mrt
30 .\" corrected types
31 .\" [93/03/12 16:52:23 lli]
32 .\"
33 .\" Revision 2.4 91/05/14 17:12:28 mrt
34 .\" Correcting copyright
35 .\"
36 .\" Revision 2.3 91/02/14 14:14:30 mrt
37 .\" Changed to new Mach copyright
38 .\" [91/02/12 18:15:21 mrt]
39 .\"
40 .\" Revision 2.2 90/08/07 18:43:31 rpd
41 .\" Created.
42 .\"
43 .TH task_create 2 1/22/88
44 .CM 4
45 .SH NAME
46 .nf
47 task_create \- creates new task from a parent task
48 .SH SYNOPSIS
49 .nf
50 .ft B
51 #include <mach.h>
52
53 .nf
54 .ft B
55 kern_return_t task_create(parent_task, inherit_memory,
56 child_task)
57 mach_port_t parent_task
58 boolean_t inherit_memory;
59 mach_port_t *child_task; /* out */
60
61
62 .fi
63 .ft P
64 .SH ARGUMENTS
65 .TP 15
66 .B
67 target_task
68 The task from which the child's capabilities are drawn.
69 .TP 15
70 .B
71 inherit_memory
72 If set, the child task's address space is built
73 from the parent task according to its memory inheritance values;
74 otherwise, the child task is given an empty address space.
75 .TP 15
76 .B
77 child_task
78 The new task.
79
80 .SH DESCRIPTION
81 .B task_create
82 creates a new task from
83 .B parent_task
84 ; the
85 resulting task (
86 .B child_task
87 )
88 acquires shared or copied parts of the parent's address space (see
89 .B vm_inherit
90 ).
91 The child task initially contains no threads.
92
93 The child task gets the four special ports created or copied for
94 it at task creation. The
95 .B task_kernel_port
96 is created and
97 send rights for it are given to the child and
98 returned to the caller. The
99 .B task_notify_port
100 is created and receive, ownership and send rights for it are given to the
101 child. The caller has no access to it. The
102 .B task_bootstrap_port
103 and the
104 .B task_exception_port
105 are inherited from the parent task.
106 The new task can get send rights to these ports with the call
107 .B task_get_special_port
108 .
109
110 .SH DIAGNOSTICS
111 .TP 25
112 KERN_SUCCESS
113 A new task has been created.
114 .TP 25
115 KERN_INVALID_ARGUMENT
116 .B parent_task
117 is not a valid task port.
118 .TP 25
119 KERN_RESOURCE_SHORTAGE
120 Some critical kernel resource is unavailable.
121
122 .SH SEE ALSO
123 .B task_terminate, task_suspend, task_resume, task_special_ports,
124 .B task_threads, thread_create, thread_resume,
125 .B vm_inherit
126
127 .SH BUGS
128 Not implemented yet. Use
129 .B fork
130 .
131
Cache object: 69f4a673a56d3e15e7db2d819faacffe
|