1/* 2 * Copyright (c) 2004, Apple Computer, Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 13 * its contributors may be used to endorse or promote products derived 14 * from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND 17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 * ARE DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR 20 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 24 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 25 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 * POSSIBILITY OF SUCH DAMAGE. 27 */ 28/* 29 * Copyright (c) 1994 by Sun Microsystems, Inc 30 */ 31 32#ifndef _MACH_SPARC_THREAD_STATUS_H_ 33#define _MACH_SPARC_THREAD_STATUS_H_ 34 35#include <architecture/sparc/reg.h> 36 37/* 38 * sparc_thread_state_regs 39 * This is the structure that is exported 40 * to user threads for use in set/get status 41 * calls. This structure should never change. 42 * The "local" and "in" registers of the corresponding 43 * register window are saved in the stack frame pointed 44 * to by sp -> %o6. 45 * 46 * sparc_thread_state_fpu 47 * This is the structure that is exported 48 * to user threads for use in set/get FPU register 49 * status calls. 50 * 51 */ 52 53#define SPARC_THREAD_STATE_REGS 1 54 55struct sparc_thread_state_regs { 56 struct regs regs; 57}; 58 59#define SPARC_THREAD_STATE_REGS_COUNT \ 60 (sizeof(struct sparc_thread_state_regs) / sizeof(int)) 61 62/* 63 * Floating point unit registers 64 */ 65 66#define SPARC_THREAD_STATE_FPU 2 67 68 69struct sparc_thread_state_fpu { 70 struct fpu fpu; /* floating point registers/status */ 71}; 72 73#define SPARC_THREAD_STATE_FPU_COUNT \ 74 (sizeof(struct sparc_thread_state_fpu) / sizeof(int)) 75 76#define SPARC_THREAD_STATE_FLAVOR_COUNT 2 77 78#define SPARC_THREAD_STATE_FLAVOR_LIST_COUNT \ 79 ( SPARC_THREAD_STATE_FLAVOR_COUNT * \ 80 (sizeof (struct thread_state_flavor) / sizeof(int))) 81 82#endif /* _MACH_SPARC_THREAD_STATUS_H_ */ 83