X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/1c79356b52d46aa6b508fb032f5ae709b1f2897b..4a2492630c73add3c3aa8a805ba4ff343d4a58ea:/osfmk/kern/thread_call.h diff --git a/osfmk/kern/thread_call.h b/osfmk/kern/thread_call.h index 0e63edf1c..5d5576eb6 100644 --- a/osfmk/kern/thread_call.h +++ b/osfmk/kern/thread_call.h @@ -4,19 +4,22 @@ * * @APPLE_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. + * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved. * - * This Original Code and all software distributed under the License are - * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * 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. 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@ */ @@ -35,10 +38,12 @@ #ifndef _KERN_THREAD_CALL_H_ #define _KERN_THREAD_CALL_H_ -#include +#include #include +#include + typedef struct call_entry *thread_call_t; typedef void *thread_call_param_t; typedef void (*thread_call_func_t)( @@ -57,13 +62,13 @@ thread_call_enter1( boolean_t thread_call_enter_delayed( thread_call_t call, - AbsoluteTime deadline + uint64_t deadline ); boolean_t thread_call_enter1_delayed( thread_call_t call, thread_call_param_t param1, - AbsoluteTime deadline + uint64_t deadline ); boolean_t thread_call_cancel( @@ -72,7 +77,7 @@ thread_call_cancel( boolean_t thread_call_is_delayed( thread_call_t call, - AbsoluteTime *deadline + uint64_t *deadline ); thread_call_t @@ -85,11 +90,16 @@ thread_call_free( thread_call_t call ); +#ifdef __APPLE_API_PRIVATE + +#ifdef __APPLE_API_OBSOLETE + /* * This portion of the interface * is OBSOLETE and DEPRECATED. It * will disappear shortly. */ + void thread_call_func( thread_call_func_t func, @@ -100,7 +110,7 @@ void thread_call_func_delayed( thread_call_func_t func, thread_call_param_t param, - AbsoluteTime deadline + uint64_t deadline ); boolean_t @@ -109,8 +119,11 @@ thread_call_func_cancel( thread_call_param_t param, boolean_t cancel_all ); + /* End OBSOLETE and DEPRECATED */ +#endif /* __APPLE_API_OBSOLETE */ + #ifdef MACH_KERNEL_PRIVATE #include @@ -126,6 +139,30 @@ thread_call_setup( thread_call_param_t param0 ); +void +call_thread_block(void), +call_thread_unblock(void); + #endif /* MACH_KERNEL_PRIVATE */ +#endif /* __APPLE_API_PRIVATE */ + +#if !defined(MACH_KERNEL_PRIVATE) && !defined(ABSOLUTETIME_SCALAR_TYPE) + +#include + +#define thread_call_enter_delayed(a, b) \ + thread_call_enter_delayed((a), __OSAbsoluteTime(b)) + +#define thread_call_enter1_delayed(a, b, c) \ + thread_call_enter1_delayed((a), (b), __OSAbsoluteTime(c)) + +#define thread_call_is_delayed(a, b) \ + thread_call_is_delayed((a), __OSAbsoluteTimePtr(b)) + +#define thread_call_func_delayed(a, b, c) \ + thread_call_func_delayed((a), (b), __OSAbsoluteTime(c)) + +#endif + #endif /* _KERN_THREAD_CALL_H_ */