1a9643ea8Slogwang /*- 2a9643ea8Slogwang * Mach Operating System 3a9643ea8Slogwang * Copyright (c) 1991,1990 Carnegie Mellon University 4a9643ea8Slogwang * All Rights Reserved. 5a9643ea8Slogwang * 6a9643ea8Slogwang * Permission to use, copy, modify and distribute this software and its 7a9643ea8Slogwang * documentation is hereby granted, provided that both the copyright 8a9643ea8Slogwang * notice and this permission notice appear in all copies of the 9a9643ea8Slogwang * software, derivative works or modified versions, and any portions 10a9643ea8Slogwang * thereof, and that both notices appear in supporting documentation. 11a9643ea8Slogwang * 12a9643ea8Slogwang * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS 13a9643ea8Slogwang * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR 14a9643ea8Slogwang * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 15a9643ea8Slogwang * 16a9643ea8Slogwang * Carnegie Mellon requests users of this software to return to 17a9643ea8Slogwang * 18a9643ea8Slogwang * Software Distribution Coordinator or [email protected] 19a9643ea8Slogwang * School of Computer Science 20a9643ea8Slogwang * Carnegie Mellon University 21a9643ea8Slogwang * Pittsburgh PA 15213-3890 22a9643ea8Slogwang * 23a9643ea8Slogwang * any improvements or extensions that they make and grant Carnegie the 24a9643ea8Slogwang * rights to redistribute these changes. 25a9643ea8Slogwang * 26a9643ea8Slogwang * $FreeBSD$ 27a9643ea8Slogwang */ 28a9643ea8Slogwang 29a9643ea8Slogwang #ifndef _X86_STACK_H 30a9643ea8Slogwang #define _X86_STACK_H 31a9643ea8Slogwang 32a9643ea8Slogwang /* 33a9643ea8Slogwang * Stack trace. 34a9643ea8Slogwang */ 35a9643ea8Slogwang 36a9643ea8Slogwang #ifdef __i386__ 37a9643ea8Slogwang struct i386_frame { 38a9643ea8Slogwang struct i386_frame *f_frame; 39a9643ea8Slogwang u_int f_retaddr; 40a9643ea8Slogwang u_int f_arg0; 41a9643ea8Slogwang }; 42a9643ea8Slogwang #endif 43a9643ea8Slogwang 44a9643ea8Slogwang #ifdef __amd64__ 45a9643ea8Slogwang struct amd64_frame { 46a9643ea8Slogwang struct amd64_frame *f_frame; 47a9643ea8Slogwang u_long f_retaddr; 48a9643ea8Slogwang }; 49a9643ea8Slogwang 50a9643ea8Slogwang struct i386_frame { 51a9643ea8Slogwang uint32_t f_frame; 52a9643ea8Slogwang uint32_t f_retaddr; 53a9643ea8Slogwang uint32_t f_arg0; 54a9643ea8Slogwang }; 55a9643ea8Slogwang #endif /* __amd64__ */ 56a9643ea8Slogwang 57a9643ea8Slogwang #ifdef _KERNEL 58*22ce4affSfengbojiang void stack_capture_intr(void); 59a9643ea8Slogwang #endif 60a9643ea8Slogwang 61a9643ea8Slogwang #endif /* !_X86_STACK_H */ 62