X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/91447636331957f3d9b5ca5b508f07c526b0074d..b0d623f7f2ae71ed96e60569f61f9a9a27016e80:/osfmk/kern/thread_call.h diff --git a/osfmk/kern/thread_call.h b/osfmk/kern/thread_call.h index 446bb1ce4..aa38f0dda 100644 --- a/osfmk/kern/thread_call.h +++ b/osfmk/kern/thread_call.h @@ -1,24 +1,29 @@ /* - * Copyright (c) 1993-1995, 1999-2005 Apple Computer, Inc. - * All rights reserved. + * Copyright (c) 1993-1995, 1999-2008 Apple Inc. All rights reserved. * - * @APPLE_LICENSE_HEADER_START@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * - * The contents of this file constitute Original Code as defined in and - * are subject to the Apple Public Source License Version 1.1 (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. + * 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 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. * - * This Original Code and all software distributed under the License are - * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ 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. + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. * - * @APPLE_LICENSE_HEADER_END@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ /* * Declarations for thread-based callouts. @@ -40,45 +45,31 @@ typedef void (*thread_call_func_t)( thread_call_param_t param1); __BEGIN_DECLS -boolean_t -thread_call_enter( - thread_call_t call -); - -boolean_t -thread_call_enter1( - thread_call_t call, - thread_call_param_t param1 -); - -boolean_t -thread_call_enter_delayed( - thread_call_t call, - uint64_t deadline -); - -boolean_t -thread_call_enter1_delayed( - thread_call_t call, - thread_call_param_t param1, - uint64_t deadline -); - -boolean_t -thread_call_cancel( - thread_call_t call -); - -thread_call_t -thread_call_allocate( - thread_call_func_t func, - thread_call_param_t param0 -); - -boolean_t -thread_call_free( - thread_call_t call -); +extern boolean_t thread_call_enter( + thread_call_t call); + +extern boolean_t thread_call_enter1( + thread_call_t call, + thread_call_param_t param1); + +extern boolean_t thread_call_enter_delayed( + thread_call_t call, + uint64_t deadline); + +extern boolean_t thread_call_enter1_delayed( + thread_call_t call, + thread_call_param_t param1, + uint64_t deadline); + +extern boolean_t thread_call_cancel( + thread_call_t call); + +extern thread_call_t thread_call_allocate( + thread_call_func_t func, + thread_call_param_t param0); + +extern boolean_t thread_call_free( + thread_call_t call); __END_DECLS @@ -88,19 +79,12 @@ __END_DECLS typedef struct call_entry thread_call_data_t; -void -thread_call_initialize(void); - -void -thread_call_setup( - thread_call_t call, - thread_call_func_t func, - thread_call_param_t param0 -); +extern void thread_call_initialize(void); -void -call_thread_block(void), -call_thread_unblock(void); +extern void thread_call_setup( + thread_call_t call, + thread_call_func_t func, + thread_call_param_t param0); #endif /* MACH_KERNEL_PRIVATE */ @@ -112,35 +96,49 @@ __BEGIN_DECLS * Obsolete interfaces. */ -boolean_t -thread_call_is_delayed( - thread_call_t call, - uint64_t *deadline -); - -void -thread_call_func( - thread_call_func_t func, - thread_call_param_t param, - boolean_t unique_call -); - -void -thread_call_func_delayed( - thread_call_func_t func, - thread_call_param_t param, - uint64_t deadline -); - -boolean_t -thread_call_func_cancel( - thread_call_func_t func, - thread_call_param_t param, - boolean_t cancel_all -); +#ifndef __LP64__ + +extern boolean_t thread_call_is_delayed( + thread_call_t call, + uint64_t *deadline); + +extern void thread_call_func( + thread_call_func_t func, + thread_call_param_t param, + boolean_t unique_call); + +extern void thread_call_func_delayed( + thread_call_func_t func, + thread_call_param_t param, + uint64_t deadline); + +extern boolean_t thread_call_func_cancel( + thread_call_func_t func, + thread_call_param_t param, + boolean_t cancel_all); + +#else /* __LP64__ */ + +#ifdef XNU_KERNEL_PRIVATE + +extern void thread_call_func_delayed( + thread_call_func_t func, + thread_call_param_t param, + uint64_t deadline); + +extern boolean_t thread_call_func_cancel( + thread_call_func_t func, + thread_call_param_t param, + boolean_t cancel_all); + +#endif /* XNU_KERNEL_PRIVATE */ + +#endif /* __LP64__ */ #ifndef MACH_KERNEL_PRIVATE +#ifndef __LP64__ + #ifndef ABSOLUTETIME_SCALAR_TYPE #define thread_call_enter_delayed(a, b) \ @@ -157,6 +155,8 @@ thread_call_func_cancel( #endif /* ABSOLUTETIME_SCALAR_TYPE */ +#endif /* __LP64__ */ + #endif /* MACH_KERNEL_PRIVATE */ __END_DECLS