Update contrib.
3 * Copyright 2002-2005 ARM Limited. All rights reserved.
5 * Your rights to use this code are set out in the accompanying licence
6 * text file LICENCE.txt (ARM contract number LEC-ELA-00080 v2.0).
9 * RCS $Revision: 91721 $
10 * Checkin $Date: 2005-08-08 19:30:07 +0100 (Mon, 08 Aug 2005) $
11 * Revising $Author: drodgman $
14 /* Language-independent unwinder header public defines */
24 _URC_OK = 0, /* operation completed successfully */
25 _URC_FOREIGN_EXCEPTION_CAUGHT = 1,
26 _URC_HANDLER_FOUND = 6,
27 _URC_INSTALL_CONTEXT = 7,
28 _URC_CONTINUE_UNWIND = 8,
29 _URC_FAILURE = 9 /* unspecified failure of some kind */
30 } _Unwind_Reason_Code;
33 _US_VIRTUAL_UNWIND_FRAME = 0,
34 _US_UNWIND_FRAME_STARTING = 1,
35 _US_UNWIND_FRAME_RESUME = 2
38 typedef struct _Unwind_Control_Block _Unwind_Control_Block;
39 typedef struct _Unwind_Context _Unwind_Context;
40 typedef uint32_t _Unwind_EHT_Header;
45 struct _Unwind_Control_Block {
46 char exception_class[8];
47 void (*exception_cleanup)(_Unwind_Reason_Code, _Unwind_Control_Block *);
48 /* Unwinder cache, private fields for the unwinder's use */
50 uint32_t reserved1; /* init reserved1 to 0, then don't touch */
56 /* Propagation barrier cache (valid after phase 1): */
59 uint32_t bitpattern[5];
61 /* Cleanup cache (preserved over cleanup): */
63 uint32_t bitpattern[4];
65 /* Pr cache (for pr's benefit): */
67 uint32_t fnstart; /* function start address */
68 _Unwind_EHT_Header *ehtp; /* pointer to EHT entry header word */
69 uint32_t additional; /* additional data */
72 long long int :0; /* Force alignment of next item to 8-byte boundary */
75 /* Interface functions: */
77 _Unwind_Reason_Code _Unwind_RaiseException(_Unwind_Control_Block *ucbp);
78 NORETURNDECL void _Unwind_Resume(_Unwind_Control_Block *ucbp);
79 void _Unwind_Complete(_Unwind_Control_Block *ucbp);
80 void _Unwind_DeleteException(_Unwind_Control_Block *ucbp);
82 /* Virtual Register Set*/
85 _UVRSC_CORE = 0, /* integer register */
86 _UVRSC_VFP = 1, /* vfp */
87 /* 2: was fpa (obsolete) */
88 _UVRSC_WMMXD = 3, /* Intel WMMX data register */
89 _UVRSC_WMMXC = 4 /* Intel WMMX control register */
90 } _Unwind_VRS_RegClass;
95 /* 2: was fpa (obsolete) */
99 } _Unwind_VRS_DataRepresentation;
103 _UVRSR_NOT_IMPLEMENTED = 1,
105 } _Unwind_VRS_Result;
107 IMPORT_C _Unwind_VRS_Result _Unwind_VRS_Set(_Unwind_Context *context,
108 _Unwind_VRS_RegClass regclass,
110 _Unwind_VRS_DataRepresentation representation,
113 IMPORT_C _Unwind_VRS_Result _Unwind_VRS_Get(_Unwind_Context *context,
114 _Unwind_VRS_RegClass regclass,
116 _Unwind_VRS_DataRepresentation representation,
119 IMPORT_C _Unwind_VRS_Result _Unwind_VRS_Pop(_Unwind_Context *context,
120 _Unwind_VRS_RegClass regclass,
121 uint32_t descriminator,
122 _Unwind_VRS_DataRepresentation representation);
128 #endif /* defined UNWINDER_H */