|
[ source navigation ] [ diff markup ] [ identifier search ] [ general search ] |
|||
|
001 /* Copyright (C) 2004 David Decotigny 001 /* Copyright (C) 2004 David Decotigny 002 Copyright (C) 1999 Free Software Foundatio 002 Copyright (C) 1999 Free Software Foundation, Inc. 003 003 004 This program is free software; you can redi 004 This program is free software; you can redistribute it and/or 005 modify it under the terms of the GNU Genera 005 modify it under the terms of the GNU General Public License 006 as published by the Free Software Foundatio 006 as published by the Free Software Foundation; either version 2 007 of the License, or (at your option) any lat 007 of the License, or (at your option) any later version. 008 008 009 This program is distributed in the hope tha 009 This program is distributed in the hope that it will be useful, 010 but WITHOUT ANY WARRANTY; without even the 010 but WITHOUT ANY WARRANTY; without even the implied warranty of 011 MERCHANTABILITY or FITNESS FOR A PARTICULAR 011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 012 GNU General Public License for more details 012 GNU General Public License for more details. 013 013 014 You should have received a copy of the GNU 014 You should have received a copy of the GNU General Public License 015 along with this program; if not, write to t 015 along with this program; if not, write to the Free Software 016 Foundation, Inc., 59 Temple Place - Suite 3 016 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 017 USA. 017 USA. 018 */ 018 */ 019 #ifndef _SOS_HWEXCEPT_H_ 019 #ifndef _SOS_HWEXCEPT_H_ 020 #define _SOS_HWEXCEPT_H_ 020 #define _SOS_HWEXCEPT_H_ 021 021 022 /** 022 /** 023 * @file exception.c 023 * @file exception.c 024 * 024 * 025 * Hardware exception routines management. 025 * Hardware exception routines management. 026 */ 026 */ 027 027 028 #ifndef ASM_SOURCE 028 #ifndef ASM_SOURCE 029 # include <sos/errno.h> 029 # include <sos/errno.h> 030 # include "cpu_context.h" << 031 #endif 030 #endif 032 031 033 /** 032 /** 034 * Standard Intel x86 exceptions. 033 * Standard Intel x86 exceptions. 035 * 034 * 036 * @see Intel x86 doc vol 3, section 5.12. 035 * @see Intel x86 doc vol 3, section 5.12. 037 */ 036 */ 038 #define SOS_EXCEPT_DIVIDE_ERROR 037 #define SOS_EXCEPT_DIVIDE_ERROR 0 // No error code 039 #define SOS_EXCEPT_DEBUG 038 #define SOS_EXCEPT_DEBUG 1 // No error code 040 #define SOS_EXCEPT_NMI_INTERRUPT 039 #define SOS_EXCEPT_NMI_INTERRUPT 2 // No error code 041 #define SOS_EXCEPT_BREAKPOINT 040 #define SOS_EXCEPT_BREAKPOINT 3 // No error code 042 #define SOS_EXCEPT_OVERFLOW 041 #define SOS_EXCEPT_OVERFLOW 4 // No error code 043 #define SOS_EXCEPT_BOUND_RANGE_EXCEDEED 042 #define SOS_EXCEPT_BOUND_RANGE_EXCEDEED 5 // No error code 044 #define SOS_EXCEPT_INVALID_OPCODE 043 #define SOS_EXCEPT_INVALID_OPCODE 6 // No error code 045 #define SOS_EXCEPT_DEVICE_NOT_AVAILABLE 044 #define SOS_EXCEPT_DEVICE_NOT_AVAILABLE 7 // No error code 046 #define SOS_EXCEPT_DOUBLE_FAULT 045 #define SOS_EXCEPT_DOUBLE_FAULT 8 // Yes (Zero) 047 #define SOS_EXCEPT_COPROCESSOR_SEGMENT_OVERRUN 046 #define SOS_EXCEPT_COPROCESSOR_SEGMENT_OVERRUN 9 // No error code 048 #define SOS_EXCEPT_INVALID_TSS 047 #define SOS_EXCEPT_INVALID_TSS 10 // Yes 049 #define SOS_EXCEPT_SEGMENT_NOT_PRESENT 048 #define SOS_EXCEPT_SEGMENT_NOT_PRESENT 11 // Yes 050 #define SOS_EXCEPT_STACK_SEGMENT_FAULT 049 #define SOS_EXCEPT_STACK_SEGMENT_FAULT 12 // Yes 051 #define SOS_EXCEPT_GENERAL_PROTECTION 050 #define SOS_EXCEPT_GENERAL_PROTECTION 13 // Yes 052 #define SOS_EXCEPT_PAGE_FAULT 051 #define SOS_EXCEPT_PAGE_FAULT 14 // Yes 053 #define SOS_EXCEPT_INTEL_RESERVED_1 052 #define SOS_EXCEPT_INTEL_RESERVED_1 15 // No 054 #define SOS_EXCEPT_FLOATING_POINT_ERROR 053 #define SOS_EXCEPT_FLOATING_POINT_ERROR 16 // No 055 #define SOS_EXCEPT_ALIGNEMENT_CHECK 054 #define SOS_EXCEPT_ALIGNEMENT_CHECK 17 // Yes (Zero) 056 #define SOS_EXCEPT_MACHINE_CHECK 055 #define SOS_EXCEPT_MACHINE_CHECK 18 // No 057 #define SOS_EXCEPT_INTEL_RESERVED_2 056 #define SOS_EXCEPT_INTEL_RESERVED_2 19 // No 058 #define SOS_EXCEPT_INTEL_RESERVED_3 057 #define SOS_EXCEPT_INTEL_RESERVED_3 20 // No 059 #define SOS_EXCEPT_INTEL_RESERVED_4 058 #define SOS_EXCEPT_INTEL_RESERVED_4 21 // No 060 #define SOS_EXCEPT_INTEL_RESERVED_5 059 #define SOS_EXCEPT_INTEL_RESERVED_5 22 // No 061 #define SOS_EXCEPT_INTEL_RESERVED_6 060 #define SOS_EXCEPT_INTEL_RESERVED_6 23 // No 062 #define SOS_EXCEPT_INTEL_RESERVED_7 061 #define SOS_EXCEPT_INTEL_RESERVED_7 24 // No 063 #define SOS_EXCEPT_INTEL_RESERVED_8 062 #define SOS_EXCEPT_INTEL_RESERVED_8 25 // No 064 #define SOS_EXCEPT_INTEL_RESERVED_9 063 #define SOS_EXCEPT_INTEL_RESERVED_9 26 // No 065 #define SOS_EXCEPT_INTEL_RESERVED_10 064 #define SOS_EXCEPT_INTEL_RESERVED_10 27 // No 066 #define SOS_EXCEPT_INTEL_RESERVED_11 065 #define SOS_EXCEPT_INTEL_RESERVED_11 28 // No 067 #define SOS_EXCEPT_INTEL_RESERVED_12 066 #define SOS_EXCEPT_INTEL_RESERVED_12 29 // No 068 #define SOS_EXCEPT_INTEL_RESERVED_13 067 #define SOS_EXCEPT_INTEL_RESERVED_13 30 // No 069 #define SOS_EXCEPT_INTEL_RESERVED_14 068 #define SOS_EXCEPT_INTEL_RESERVED_14 31 // No 070 069 071 #ifndef ASM_SOURCE 070 #ifndef ASM_SOURCE 072 071 073 typedef void (*sos_exception_handler_t)(int ex !! 072 typedef void (*sos_exception_handler_t)(int exception_number); 074 const << 075 073 076 sos_ret_t sos_exception_subsystem_setup(void); !! 074 sos_ret_t sos_exceptions_setup(void); 077 sos_ret_t sos_exception_set_routine(int except 075 sos_ret_t sos_exception_set_routine(int exception_number, 078 sos_except 076 sos_exception_handler_t routine); 079 sos_exception_handler_t sos_exception_get_rout 077 sos_exception_handler_t sos_exception_get_routine(int exception_number); 080 #endif /* ! ASM_SOURCE */ 078 #endif /* ! ASM_SOURCE */ 081 079 082 #endif /* _SOS_HWEXCEPT_H_ */ 080 #endif /* _SOS_HWEXCEPT_H_ */
[ source navigation ] | [ diff markup ] | [ identifier search ] | [ general search ] |