X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/378393581903b274cb7a4d18e0d978071a6b592d..2d21ac55c334faf3a56e5634905ed6987fc787d4:/bsd/ppc/setjmp.h diff --git a/bsd/ppc/setjmp.h b/bsd/ppc/setjmp.h index cb9c7cd33..27eb59ab0 100644 --- a/bsd/ppc/setjmp.h +++ b/bsd/ppc/setjmp.h @@ -1,23 +1,29 @@ /* * Copyright (c) 2000-2004 Apple Computer, 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@ */ /* Copyright (c) 1998 Apple Computer, Inc. All rights reserved. * @@ -29,13 +35,26 @@ #define _BSD_PPC_SETJMP_H_ #include -#include + +#define __need_struct_sigcontext +#if defined(KERNEL) +#define __need_struct_sigcontext32 +#define __need_struct_sigcontext64 +#endif /* KERNEL */ +#include struct _jmp_buf { - struct sigcontext sigcontext; /* kernel state preserved by set/longjmp */ +#if __DARWIN_UNIX03 + _STRUCT_SIGCONTEXT __sigcontext; /* kernel state preserved by set/longjmp */ + unsigned int __vmask __attribute__((aligned(8))); /* vector mask register */ + unsigned int __vreg[32 * 4] __attribute__((aligned(16))); + /* 32 128-bit vector registers */ +#else /* !__DARWIN_UNIX03 */ + _STRUCT_SIGCONTEXT sigcontext; /* kernel state preserved by set/longjmp */ unsigned int vmask __attribute__((aligned(8))); /* vector mask register */ unsigned int vreg[32 * 4] __attribute__((aligned(16))); /* 32 128-bit vector registers */ +#endif /* __DARWIN_UNIX03 */ }; /* @@ -61,7 +80,7 @@ struct _jmp_buf { #endif #if defined(KERNEL) -typedef struct sigcontext32 jmp_buf32[1]; +typedef _STRUCT_SIGCONTEXT32 jmp_buf32[1]; typedef struct __sigjmp_buf32 { int __storage[_JBLEN32 + 1] __attribute__((aligned(8))); } sigjmp_buf32[1]; @@ -75,7 +94,7 @@ typedef struct __sigjmp_buf64 { * JMM - have to decide how the kernel will deal with this. * For now, hard-code the 32-bit types. */ -typedef struct sigcontext32 jmp_buf[1]; +typedef _STRUCT_SIGCONTEXT32 jmp_buf[1]; typedef struct __sigjmp_buf32 sigjmp_buf[1]; #else @@ -84,17 +103,17 @@ typedef int sigjmp_buf[_JBLEN + 1]; #endif __BEGIN_DECLS -extern int setjmp(jmp_buf env); -extern void longjmp(jmp_buf env, int val); +int setjmp(jmp_buf); +void longjmp(jmp_buf, int); #ifndef _ANSI_SOURCE -int _setjmp(jmp_buf env); -void _longjmp(jmp_buf, int val); -int sigsetjmp(sigjmp_buf env, int val); -void siglongjmp(sigjmp_buf env, int val); +int _setjmp(jmp_buf); +void _longjmp(jmp_buf, int); +int sigsetjmp(sigjmp_buf, int); +void siglongjmp(sigjmp_buf, int); #endif /* _ANSI_SOURCE */ -#if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) +#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) void longjmperror(void); #endif /* neither ANSI nor POSIX */ __END_DECLS