1/* 2 * Copyright (c) 1999-2004, 2008 Apple Inc. All rights reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The 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, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 */ 23/* Copyright (c) 1991 NeXT Software, Inc. All rights reserved. 24 * 25 * File: architecture/ppc/cframe.h 26 * Author: Mike DeMoney, NeXT Software, Inc. 27 * 28 * This include file defines C calling sequence defines 29 * for ppc port. 30 * 31 * HISTORY 32 * 20-May-97 Umesh Vaishampayan (umeshv@apple.com) 33 * Added C_RED_ZONE. 34 * 29-Dec-96 Umesh Vaishampayan (umeshv@NeXT.com) 35 * Ported from m98k. 36 * 11-June-91 Mike DeMoney (mike@next.com) 37 * Created. 38 */ 39 40#ifndef _ARCH_ARM_CFRAME_H_ 41#define _ARCH_ARM_CFRAME_H_ 42 43/* Note that these values are copies of the somewhat more authoritative 44 * values in <architecture/ppc/mode_independent_asm.h>. We do not 45 * include that file to avoid breaking legacy clients due to name 46 * collisions. 47 * 48 * Note also that C_ARGSAVE_LEN isn't well defined or useful in PPC. 49 * Most legacy uses of it are assuming it is the minimum stack frame 50 * size, which is what we define it to be. 51 */ 52#if defined (__LP64__) 53#define C_STACK_ALIGN 16 /* stack must be 32 byte aligned */ 54#else 55#define C_ARGSAVE_LEN 32 /* "minimum arg save area" (but see above) */ 56#define C_STACK_ALIGN 16 /* stack must be 16 byte aligned */ 57#define C_RED_ZONE 224 /* 224 bytes to skip over saved registers */ 58#endif 59 60#endif /* _ARCH_ARM_CFRAME_H_ */ 61