|
|
1.1 root 1: /*
2: * Copyright (c) 1993-1995, 1999-2000 Apple Computer, Inc.
3: * All rights reserved.
4: *
5: * @APPLE_LICENSE_HEADER_START@
6: *
7: * The contents of this file constitute Original Code as defined in and
8: * are subject to the Apple Public Source License Version 1.1 (the
9: * "License"). You may not use this file except in compliance with the
10: * License. Please obtain a copy of the License at
11: * http://www.apple.com/publicsource and read it before using this file.
12: *
13: * This Original Code and all software distributed under the License are
14: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
18: * License for the specific language governing rights and limitations
19: * under the License.
20: *
21: * @APPLE_LICENSE_HEADER_END@
22: */
23: /*
24: * Declarations for thread-based callouts.
25: *
26: * HISTORY
27: *
28: * 10 July 1999 (debo)
29: * Pulled into Mac OS X (microkernel).
30: *
31: * 3 July 1993 (debo)
32: * Created.
33: */
34:
35: #ifndef _KERN_THREAD_CALL_H_
36: #define _KERN_THREAD_CALL_H_
37:
38: #include <libkern/OSBase.h>
39:
40: #include <mach/mach_types.h>
41:
42: typedef struct thread_call *thread_call_t;
43: typedef void *thread_call_param_t;
44: typedef void (*thread_call_func_t)(
45: thread_call_param_t param0,
46: thread_call_param_t param1);
47:
48: void
49: thread_call_initialize(void);
50:
51: void
52: thread_call_func(
53: thread_call_func_t func,
54: thread_call_param_t param,
55: boolean_t unique_call
56: );
57: void
58: thread_call_func_delayed(
59: thread_call_func_t func,
60: thread_call_param_t param,
61: AbsoluteTime deadline
62: );
63:
64: boolean_t
65: thread_call_func_cancel(
66: thread_call_func_t func,
67: thread_call_param_t param,
68: boolean_t cancel_all
69: );
70:
71: thread_call_t
72: thread_call_allocate(
73: thread_call_func_t func,
74: thread_call_param_t param0
75: );
76: boolean_t
77: thread_call_free(
78: thread_call_t call
79: );
80:
81: void
82: thread_call_enter(
83: thread_call_t call
84: );
85: void
86: thread_call_enter1(
87: thread_call_t call,
88: thread_call_param_t param1
89: );
90: void
91: thread_call_enter_delayed(
92: thread_call_t call,
93: AbsoluteTime deadline
94: );
95: void
96: thread_call_enter1_delayed(
97: thread_call_t call,
98: thread_call_param_t param1,
99: AbsoluteTime deadline
100: );
101: boolean_t
102: thread_call_cancel(
103: thread_call_t call
104: );
105: boolean_t
106: thread_call_is_delayed(
107: thread_call_t call,
108: AbsoluteTime *deadline
109: );
110:
111: #endif /* _KERN_THREAD_CALL_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.