]> git.saurik.com Git - apple/xnu.git/blob - osfmk/man/lock_set_create.html
xnu-2422.1.72.tar.gz
[apple/xnu.git] / osfmk / man / lock_set_create.html
1 <h2>lock_set_create</h2>
2 <hr>
3 <p>
4 <strong>Function</strong> - Create a new lock set.
5 <h3>SYNOPSIS</h3>
6 <pre>
7 <strong>kern_return_t lock_set_create</strong>
8 <strong>(task_t</strong> <var>task</var>,
9 <strong>lock_set_t</strong> <var>lock_set</var>,
10 <strong>int</strong> <var>locks</var>,
11 <strong>int</strong> <var>policy</var><strong>);</strong>
12 </pre>
13 <h3>PARAMETERS</h3>
14 <dl>
15 <p>
16 <dt> <var>task</var>
17 <dd>
18 The task receiving the send right to the newly created lock set.
19 <p>
20 <dt> <var>lock_set</var>
21 <dd>
22 [out send right] The port naming the lock set which represents the lock.
23 <p>
24 <dt> <var>locks</var>
25 <dd>
26 [in scalar] The number of locks the lock set will represent (must be a positive value).
27 <p>
28 <dt> <var>policy</var>
29 <dd>
30 [in scalar] The blocked thread wakeup policy for the newly created lock set. Valid policies are:
31 <dl>
32 <p>
33 <dt> SYNC_POLICY_FIFO
34 <dd>
35 a first-in-first-out policy for scheduling thread wakeup.
36 <p>
37 <dt> SYNC_POLICY_FIXED_PRIORITY
38 <dd>
39 a fixed priority policy for scheduling thread wakeup.
40 </dl>
41 </dl>
42 <h3>DESCRIPTION</h3>
43 <p>
44 The <strong>lock_set_create</strong> function creates a new lock set representing a
45 collection of associated locks. The lock set is associated with the
46 specified task. A send right naming the lock set is returned to the
47 caller.
48 <h3>RETURN VALUES</h3>
49 <dl>
50 <p>
51 <dt> <strong>KERN_SUCCESS</strong>
52 <dd>
53 The lock set was created.
54 <p>
55 <dt> <strong>KERN_INVALID_ARGUMENT</strong>
56 <dd>
57 Either the task or policy argument is invalid, or the locks argument
58 has a value that is less than or equal to zero.
59 <p>
60 <dt> <strong>KERN_RESOURCE_SHORTAGE</strong>
61 <dd>
62 The kernel could not allocate the lock set.
63 </dl>
64 <h3>RELATED INFORMATION</h3>
65 <p>
66 Functions:
67 <a href="lock_acquire.html"><strong>lock_acquire</strong></a>,
68 <a href="lock_make_stable.html"><strong>lock_make_stable</strong></a>,
69 <a href="lock_try.html"><strong>lock_try</strong></a>,
70 <a href="lock_handoff.html"><strong>lock_handoff</strong></a>,
71 <a href="lock_handoff_accept.html"><strong>lock_handoff_accept</strong></a>,
72 <a href="lock_try.html"><strong>lock_try</strong></a>,
73 <a href="lock_set_destroy.html"><strong>lock_set_destroy</strong></a>.