hp.com!davidm
f6b74c9cbe
(ia64_get_cached_proc_info): Drop duplicate "ia64_" prefix.
...
(ia64_cache_proc_info): New function/macro.
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
847e0a4b18
(dwarf_misaligned_value_t): Move "attribute" declaration to the type
...
to make newer versions of GCC happy.
2005/02/23 12:55:45-08:00 mostang.com!davidm
(dwarf_read_encoded_pointer_inlined): Adjust for ALWAYS_INLINE
change.
2004/12/02 00:40:45-08:00 mostang.com!davidm
Make it possible for dwarf-config.h to define its own version of
dwarf_to_unw_regnum().
2004/11/23 16:59:56-08:00 mostang.com!davidm
(dwarf_to_unw_regnum): Make it a macro so we don't have a
dependency just because of including the file when --enable-debug
is on (and inlining is off).
(dwarf_read_encoded_pointer_inlined): Move from Gpe.c to here
and rename from dwarf_read_encoded_pointer().
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
c224ec66c5
(UNW_HPPA_EH3): Fix comment-typo.
...
2004/12/02 18:37:47-08:00 hp.com!davidm
(unw_tdep_fpreg_t): Make it a union of "double" and two 32-bit words.
(unw_tdep_getcontext): Fix typo.
2004/12/02 00:40:45-08:00 mostang.com!davidm
(_U_TDEP_QP_TRUE): New macro.
(UNW_TDEP_CURSOR_LEN): Increase from 127 to 511 to accommodate
DWARF cursor-size.
(unw_word_t): Change from uint64_t to uint32_t since user-land
PA-Linux is only 32 bits.
(hppa_regnum_t): Add register names UNW_HPPA_EH0, UNW_HPPA_EH1,
UNW_HPPA_EH2, UNW_HPPA_EH3, UNW_HPPA_CFA, and
UNW_HPPA_EH.
(UNW_TDEP_NUM_EH_REGS): New macro.
(unw_tdep_getcontext): Point it at UNW_ARCH_OBJ(getcontext).
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
e12a996051
(HPPA_SCF_LINUX_SIGFRAME): Remove (PA-Linux appears to use only
...
real-time signal frames).
(tdep_big_endian): Fix typo.
2004/12/02 00:40:45-08:00 mostang.com!davidm
Include "elf32.h" and "dwarf.h".
(struct unw_addr_space): If we have atomic-ops, define cache_generation
to be of type AO_t.
(struct cursor): Define it primarily in terms of the DWARF cursor.
Add sigcontext_format and sigcontext_addr members.
Add DWARF-location accessors.
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
homeip.net!davidm
7aade965b4
(DWARF_IS_REG_LOC): Define as 0 for the local-only case.
...
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
272caabbfa
Regenerate.
...
(Logical change 1.283)
2004-11-16 22:03:04 +00:00
mostang.com!davidm
8e96c357a8
(unw_addr_space): If we have atomic-ops library installed, declare
...
cache_generation as AO_t.
(dwarf_getfp): Do casts via "char *" to avoid type-punning
warnings.
(dwarf_putfp): Likewise.
(Logical change 1.266)
2004-09-09 13:06:01 +00:00
mostang.com!davidm
a6aa7338cc
(dwarf_getfp): Implement a first draft version of this routine
...
(completely untested).
(dwarf_putfp): Likewise.
(dwarf_get): Don't support fp-register save-locations.
(dwarf_put): Likewise.
(Logical change 1.264)
2004-09-09 10:50:06 +00:00
mostang.com!davidm
47bf99c677
(UNW_VERSION_CODE): New macro.
...
(UNW_VERSION): Likewise.
(Logical change 1.262)
2004-09-09 10:45:24 +00:00
mostang.com!davidm
27ce81f7e2
Initial revision
2004-09-08 17:36:28 +00:00
mostang.com!davidm
8de87a48cd
(UNW_VERSION_MAJOR): New macro.
...
(UNW_VERSION_MINOR): Likewise.
(UNW_VERSION_EXTRA): Likewise.
}(Logical change 1.261)
2004-09-08 17:36:28 +00:00
mostang.com!davidm
012a4844cb
(UNW_VERSION_MAJOR): New macro.
...
(UNW_VERSION_MINOR): Likewise.
(UNW_VERSION_EXTRA): Likewise.
2004/09/08 08:15:35-07:00 mostang.com!davidm
Rename: include/libunwind-common.h -> include/libunwind-common.h.in
(Logical change 1.261)
2004-09-08 17:36:28 +00:00
hp.com!davidm
197c9d517b
Initial revision
2004-08-31 13:59:10 +00:00
hp.com!davidm
3b57368f67
(struct cursor): Clarify meaning of "rbs_curr" member.
...
(Logical change 1.259)
2004-08-31 13:59:10 +00:00
hp.com!davidm
e29611e7d3
(Logical change 1.259)
2004-08-31 13:59:10 +00:00
homeip.net!davidm
9034bd158a
(struct dwarf_cursor): Add new member "cfa_is_sp" to mark the case
...
when the (unsaved) stack-pointer is the CFA.
(Logical change 1.253)
2004-08-20 11:23:15 +00:00
ibm.com!masbock
a766efd844
(Logical change 1.249)
2004-08-19 13:39:10 +00:00
ibm.com!masbock
58e37267be
Initial revision
2004-08-19 13:39:10 +00:00
homeip.net!davidm
78e2f93811
(ALIAS): New macro.
...
(Logical change 1.246)
2004-08-19 10:45:23 +00:00
bea.com!thallgre
4b21fc9b3d
(unw_strerror): Declare.
...
(Logical change 1.245)
2004-08-18 15:16:46 +00:00
homeip.net!davidm
34fa122ac2
Regenerate.
...
(Logical change 1.241)
2004-08-17 15:34:28 +00:00
hp.com!davidm
6a269233f8
(struct ia64_global_unwind_state): Group together in a single struct the
...
read-only registers whose addresses may be used as save-locations.
(Logical change 1.229)
2004-05-06 20:24:01 +00:00
mostang.com!davidm
582cfb1e62
(tdep_find_proc_info): Expand into dwarf_find_proc_info() only
...
when UNW_LOCAL_ONLY is defined. Otherwise, expand
into call via address-space's find_proc_info() callback.
(tdep_put_unwind_info): Likewise. Delete bogus prototype.
(Logical change 1.224)
2004-05-05 01:54:53 +00:00
mostang.com!davidm
aa00843a30
Rename: src/ia64/rse.h -> include/ia64/rse.h
...
(Logical change 1.221)
2004-05-04 22:16:57 +00:00
mostang.com!davidm
2768b34dbe
Initial revision
2004-05-04 22:16:57 +00:00
mostang.com!davidm
ad6f2319b9
(unw_tdep_getcontext): On HP-UX, use getcontext() instead of
...
_Uia64_getcontext().
(Logical change 1.220)
2004-05-04 20:14:02 +00:00
mostang.com!davidm
c5c4fc991c
(_U_dyn_op): Avoid the use of C99-style initializers in installed
...
header-files. Doing so may cause problems with C++ or
older C compilers. Reported by Todd Miller.
(Logical change 1.216)
2004-04-28 01:24:34 +00:00
hp.com!davidm
9a9618401f
(mutex_init): Explicitly test function-pointer against 0 since that avoids
...
a compiler-warning from icc v8.0.
(mutex_lock): Likewise.
(mutex_unlock): Likewise.
(Logical change 1.213)
2004-04-23 00:12:51 +00:00
hp.com!davidm
2de1768e52
Regenerate.
...
(Logical change 1.205)
2004-04-20 16:53:44 +00:00
mostang.com!davidm
a1ce4c307e
(unw_tdep_getcontext): Direct it to UNW_ARCH_OBJ(getcontext).
...
(Logical change 1.186)
2004-03-20 09:54:28 +00:00
mostang.com!davidm
1c00cf562e
(unw_tdep_save_loc): Add new member "nat_bitnr". Define the
...
other 7 bytes (which were always there in unw_save_loc_t due
to padding) as reserved for future use.
(Logical change 1.181)
2004-02-27 08:54:25 +00:00
mostang.com!davidm
7356cf80a5
(struct cursor): Add member "nat_bitnr".
...
(tdep_uc_addr): Add (optional) nat_bitnr pointer argument.
(Logical change 1.181)
2004-02-27 08:54:25 +00:00
mostang.com!davidm
50f7edcce5
(enum ia64_script_insn_opcode): Move Gscript-ia64.c.
...
(IA64_MAX_SCRIPT_LEN): Lower it by 4 since we no longer need separate
instructions to update the NaT locations.
(Logical change 1.181)
2004-02-27 08:54:25 +00:00
hp.com!davidm
5f45c42420
(Debug): Add back lost Debug() macro for the !UNW_DEBUG case.
...
(Logical change 1.163)
2004-02-14 04:44:05 +00:00
hp.com!davidm
fe039e2c1f
Move all inline functions to dwarf_i.h.
...
(Logical change 1.162)
2004-01-30 00:01:24 +00:00
hp.com!davidm
b88369b831
Initial revision
2004-01-30 00:01:24 +00:00
hp.com!davidm
86af3a3048
Declare functions such that it is possible to take their addresses.
...
(tdep_init): New macro.
(tdep_access_reg): Likewise.
(tdep_access_fpreg): Likewise.
(Logical change 1.162)
2004-01-30 00:01:24 +00:00
hp.com!davidm
6bcc75010b
Declare functions such that it is possible to take their addresses.
...
(Logical change 1.162)
2004-01-30 00:01:24 +00:00
hp.com!davidm
b5d64dabf3
Declare functions in the same way as we do in other header-files now, such that
...
it's possible to take the address of functions.
(debug): Remove this macro (no longer used).
(fetch8): Move to remote.h.
(fetch16): Likewise.
(fetch32): Likewise.
(fetchw): Likewise.
(Logical change 1.162)
2004-01-30 00:01:24 +00:00
hp.com!davidm
78cec36290
(struct cursor): Add member sigcontext_format.
...
(dwarf_putfp): Fix typo.
(dwarf_getfp): Mark with C preprocessor warning while it's not fully
implemented. Check for NULL-location first.
(dwarf_putfp): Likewise.
(dwarf_get): Likewise.
(dwarf_put): Likewise.
(tdep_needs_initialization): New macro.
(tdep_init): Likewise.
(tdep_get_as): Likewise.
(tdep_get_as_arg): Likewise.
(tdep_needs_initialization): Declare.
(Logical change 1.162)
2004-01-30 00:01:24 +00:00
hp.com!davidm
ab847fe68e
(Logical change 1.162)
2004-01-30 00:01:24 +00:00
hp.com!davidm
107cf10470
(DWARF_REGNUM_MAP_LENGTH): New macro.
...
(dwarf_to_unw_regnum_map): Move to dwarf_i.h.
(dwarf_to_unw_regnum): Likewise.
(Logical change 1.162)
2004-01-30 00:01:24 +00:00
hp.com!davidm
29a98b6cc3
(unw_addr_space_t.shared_object_removals): Adjust type to
...
"unsigned long long" to match glibc.
(Logical change 1.161)
2004-01-24 07:27:00 +00:00
hp.com!davidm
6ea8ff61e0
(unw_set_caching_policy): Make it a regular object, not an
...
arch-object. It can't be the latter because it needs
to initialize libunwind if it's the first call to libunwind.
(Logical change 1.160)
2004-01-24 07:22:30 +00:00
mostang.com!davidm
c325d9cbc2
Regenerate.
...
(Logical change 1.159)
2004-01-24 06:45:18 +00:00
hp.com!davidm
c44d77055c
Move debug defines after definition of UNWI_ARCH_OBJ().
...
Replace tdep_debug_level with unwi_debug_level and declare
it here.
(Logical change 1.158)
2004-01-22 08:36:15 +00:00
hp.com!davidm
d3725a7a98
(unw_tdep_is_fpreg): Move after include of "libunwind-common.h".
...
(Logical change 1.158)
2004-01-22 08:36:15 +00:00
hp.com!davidm
25b8795a4a
(tdep_debug_level): Remove.
...
(Logical change 1.158)
2004-01-22 08:36:15 +00:00
mostang.com!davidm
5f0eebb2b4
Initial revision
2004-01-21 01:05:07 +00:00
mostang.com!davidm
53b6d61c63
Drop argument names from prototypes to reduce namespace pollution.
...
Define libunwind routines such that it is possible to take their
addresses.
(unw_is_fpreg): Move it closer to unw_getcontext(). Both are special
in the sense that they may be implemented as macros.
(Logical change 1.156)
2004-01-21 01:05:07 +00:00
mostang.com!davidm
7915b799c8
Drop argument names from prototypes to reduce namespace pollution.
...
Define libunwind routines such that it is possible to take their
addresses.
(Logical change 1.156)
2004-01-21 01:05:07 +00:00
mostang.com!davidm
64854d0d7c
Drop argument names from prototypes to reduce namespace pollution.
...
(Logical change 1.156)
2004-01-21 01:05:07 +00:00
mostang.com!davidm
24ac6e693d
(unw_tdep_is_fpreg): Define it as an external function (a macro would
...
have to evaluate the argument multiple times so it's better
to implement it out-of-line).
(Logical change 1.156)
2004-01-21 01:05:07 +00:00
mostang.com!davidm
66e78e1ca3
(Logical change 1.156)
2004-01-21 01:05:07 +00:00
mostang.com!davidm
cd7dcba0ed
Rename AO_TS_T to AO_TS_t (gets syntax coloring right... ;-).
...
(Logical change 1.155)
2004-01-20 23:50:00 +00:00
mostang.com!davidm
40fcb9b7e5
(unw_addr_space.cache_generation): Declare as AO_t instead of AO_T
...
(gets syntax-coloring right ;-).
(Logical change 1.155)
2004-01-20 23:50:00 +00:00
mostang.com!davidm
195eb64285
(struct mempool): Move "reserve" and "num_free" next to
...
each other to minimize padding.
(Logical change 1.155)
2004-01-20 23:50:00 +00:00
mostang.com!davidm
82cfd4862f
(cmpxchg_ptr): Use a union to do the pointer-casting so that
...
GCC knows it can't use ANSI-C aliasing rules.
(Logical change 1.155)
2004-01-20 23:50:00 +00:00
mostang.com!davidm
c1bbbb2a3a
(unwi_dyn_validate_cache): Declare.
...
(Logical change 1.154)
2004-01-20 23:32:28 +00:00
mostang.com!davidm
2d4098ac19
(unw): Remove debug_level.
...
(tdep_debug_level): Declare it as a separate variable. This
ensures that only one debug-level variable is in use
at any given time, no matter what combination of
local-only vs generic and static vs. dynamic libraries
are in use.
(unw): Document why it's not an UNW_ARCH_OBJ().
(Logical change 1.154)
2004-01-20 23:32:28 +00:00
mostang.com!davidm
47c32cd07f
(_Uia64_search_unwind_table): Make it an UNW_OBJ() instead.
...
(unw_search_ia64_unwind_table): Declare.
(Logical change 1.154)
2004-01-20 23:32:28 +00:00
hp.com!davidm
ea78d27d97
(unwi_dyn_remote_find_proc_info): Drop GENERATION argument.
...
(Logical change 1.153)
2004-01-20 01:51:17 +00:00
hp.com!davidm
a2301f6f57
(struct unw_addr_space.shared_object_removals) [!UNW_REMOTE_ONLY]: New member.
...
(Logical change 1.153)
2004-01-20 01:51:17 +00:00
hp.com!davidm
23024e28c0
Add includes of <string.h> and <unistd.h>.
...
(NORETURN): New macro.
(PROTECTED): Likewise.
(print_error): New inline routine.
(fetch8): Provide UNW_LOCAL_ONLY-version.
(fetch16): Likewise.
(fetch32): Likewise.
(fetchw): Likewise.
(_U_dyn_info_list_addr): Declare.
(Logical change 1.151)
2004-01-03 10:50:24 +00:00
hp.com!davidm
9b52d39425
(tdep_find_proc_info): Declare it as a regular object (not arch-obj).
...
(tdep_uc_addr): Likewise.
(tdep_put_unwind_info): Define only if not UNW_LOCAL_ONLY.
(unw): Declare as regular object.
(Logical change 1.151)
2004-01-03 10:50:24 +00:00
mostang.com!davidm
b9d2cc7919
Drop HIDDEN from declarations, only the definitions need it.
...
(Logical change 1.150)
2003-12-21 07:57:42 +00:00
mostang.com!davidm
aa800d423d
(unw): Mark it as HIDDEN.
...
(Logical change 1.148)
2003-12-21 07:21:28 +00:00
mostang.com!davidm
e6aedd3089
(dyn_generation): Drop bogus comment.
...
(Logical change 1.147)
2003-12-21 05:53:57 +00:00
mostang.com!davidm
d5db6013ff
(UNW_PI_FLAG_FIRST_TDEP_BIT): Fix comment.
...
(Logical change 1.147)
2003-12-21 05:53:57 +00:00
hp.com!davidm
468aaccf17
Switch over to DWARF-based unwinder.
...
(Logical change 1.146)
2003-12-20 11:50:00 +00:00
hp.com!davidm
45fccdc2f3
(unw_dyn_dwarf_fde_info_t): New type to handle (pre-parsed) DWARF
...
unwind-info.
(unw_dyn_info_t): Add member "dfi".
(Logical change 1.145)
2003-12-20 11:43:08 +00:00
hp.com!davidm
eb51b4294a
(Logical change 1.145)
2003-12-20 11:43:08 +00:00
hp.com!davidm
0bbb2fab68
Initial revision
2003-12-20 11:38:49 +00:00
hp.com!davidm
b6adfb75c4
Declare mempool-routines as HIDDEN.
...
(Logical change 1.143)
2003-12-20 11:35:09 +00:00
hp.com!davidm
7d3de049e6
(Debug): New macro. This one automates some of usual stuff that
...
gets printed during debugging and is supposed to produce
a nicer format. Eventually, we'll switch everything over
from debug() to Debug().
(extract_dynamic_proc_info): We need both generic and local-only.
(dyn_remote_find_proc_info): Likewise.
(dyn_remote_put_unwind_info): Likewise.
(Logical change 1.142)
2003-12-20 11:32:43 +00:00
hp.com!davidm
fbe40e537f
(unw_word_t): Let the architecture-specific header take care of
...
defining this type---it's needed very early on.
(unw_proc_info_t): Add architecture-specific "extra" member. Empty
for ia64, so no ABI change.
Don't include libunwind-dynamic.h here.
(Logical change 1.140)
2003-12-20 11:20:42 +00:00
hp.com!davidm
77b06d67aa
(unw_word_t): Declare it here.
...
(unw_tdep_proc_info_t): New type.
Include "libunwind-dynamic.h" here.
(Logical change 1.140)
2003-12-20 11:20:42 +00:00
mostang.com!davidm
bcdedf6b28
Switch from __sync_val_compare_and_swap() to
...
__sync_bool_compare_and_swap() since that's we need nowadays anyhow
and since that's also provided by ecc v7.0.
(Logical change 1.138)
2003-12-05 06:42:28 +00:00
hp.com!davidm
ab0fdbbb4c
(Logical change 1.135)
2003-12-04 07:44:21 +00:00
hp.com!davidm
1a7d4ee7ed
Initial revision
2003-12-04 07:44:21 +00:00
hp.com!davidm
7549674169
(unw_get_proc_info_by_ip): New routine.
...
(Logical change 1.133)
2003-12-04 07:34:21 +00:00
hp.com!davidm
1334cae324
(HAVE___THREAD): Force it off for now---the per-thread cache uses
...
about 128KB of thread-local storage for each and every
thread, even if a thread never ever needs to unwind its
stack. Seems a bit much.
(ALWAYS_INLINE): New macro which can be used to force inlining
on compilers that support it.
(Logical change 1.132)
2003-12-04 07:30:39 +00:00
hp.com!davidm
497018e941
Include "elf32.h".
...
(Logical change 1.130)
2003-11-27 06:52:54 +00:00
hp.com!davidm
7305d26f26
(struct cursor): Declare pi_valid and pi_is_dynamic as unsigned to
...
avoid compiler warnings.
(Logical change 1.130)
2003-11-27 06:52:54 +00:00
hp.com!davidm
04dd29b6eb
(UNUSED): New macro.
...
(UNW_DEBUG): If DEBUG is not defined, set it to 0.
(inline): Take advantage of UNUSED macro.
(HAVE_CMPXCHG): Don't define it if we're on HP-UX with GCC v3.2 to
work around a compiler-bug.
(Logical change 1.130)
2003-11-27 06:52:54 +00:00
hp.com!davidm
dd8806c82d
(unw_dyn_info_format_t): Add UNW_INFO_FORMAT_REMOTE_TABLE.
...
(unw_dyn_remote_table_info_t): New type.
(unw_dyn_info): Add "rti" member.
(Logical change 1.126)
2003-11-25 22:33:49 +00:00
hp.com!davidm
48723262f7
(_Uia64_find_dyn_list): Pass unw_dyn_info_t pointer instead of its members.
...
(Logical change 1.126)
2003-11-25 22:33:49 +00:00
hp.com!davidm
e01fb3b27e
(cmpxchg_ptr): Correct sense of comparison.
...
(Logical change 1.125)
2003-11-25 20:13:21 +00:00
hp.com!davidm
d61f300b7b
(ia64_script_cache): If HAVE_ATOMIC_OPS_H is true, declare "busy" member
...
in lieu of "lock" member.
(Logical change 1.124)
2003-11-24 23:53:25 +00:00
hp.com!davidm
c3fa0b6fa8
Regenerate.
...
(Logical change 1.123)
2003-11-24 21:37:22 +00:00
hp.com!davidm
8e36032bc5
(unw_addr_space): If HAVE_ATOMIC_OPS_H is defined, declare cache_generation
...
of type AO_T. This is a temporary work-around until atomic_ops.h
supports atomic ops on 32-bit variables.
(Logical change 1.123)
2003-11-24 21:37:22 +00:00
hp.com!davidm
90e8393da3
(inline): Add #undef of "inline" before (re-)defining it.
...
Add support for atomic_ops.h.
Add fetch_and_add1() and if it is supported, define
HAVE_FETCH_AND_ADD1.
(Logical change 1.123)
2003-11-24 21:37:22 +00:00
hp.com!davidm
3f35f343c3
(needs_initialization): Declare it as volatile so we get proper memory
...
ordering when accessing it. Also, shrink size to 1 byte and move
it closer to other frequently-used fields.
(Logical change 1.121)
2003-11-24 18:33:44 +00:00
hp.com!davidm
34085cad7b
Fix a typo.
...
(Logical change 1.116)
2003-11-22 06:11:18 +00:00
hp.com!davidm
2c9be974dc
Regenerate.
...
(Logical change 1.115)
2003-11-22 06:08:20 +00:00
hp.com!davidm
3cc1ec6be9
(struct ia64_global_unwind_state): Add "lock" member.
...
(Logical change 1.111)
2003-11-19 03:11:25 +00:00
hp.com!davidm
039accfd88
(__BYTE_ORDER): Fix HP-UX byte-order to be __BIG_ENDIAN, as it was meant
...
to be.
(Logical change 1.106)
2003-10-11 01:05:18 +00:00
hp.com!davidm
18626b8def
(UNW_IA64_AR_SSD): New alias for ar26.
...
(Logical change 1.91)
2003-07-08 22:29:34 +00:00
hp.com!davidm
c7db73d180
(ABI_MARKER_OLD_LINUX_SIGTRAMP): Rename from ABI_MARKER_LINUX_SIGTRAMP.
...
(ABI_MARKER_OLD_LINUX_INTERRUPT): Rename from ABI_MARKER_LINUX_INTERRUPT.
(ABI_MARKER_LINUX_SIGTRAMP): Define with Linux ABI value (3).
(ABI_MARKER_LINUX_INTERRUPT): Ditto.
(Logical change 1.91)
2003-07-08 22:29:34 +00:00
mostang.com!davidm
d4f81e2b69
Auto merged
...
2003/06/03 14:35:33-07:00 mostang.com!davidm
(struct ia64_global_unwind-state): Rename member state_record_pool to
reg_state_pool.
(Logical change 1.90)
2003-06-03 21:36:03 +00:00
hp.com!davidm
e771bcab8f
(ABI_MARKER_LINUX_INTERRUPT): New macro.
...
(struct cursor): Add "last_abi_marker" member. This is the sticky version of
"abi_marker".
(Logical change 1.89)
2003-04-25 07:44:23 +00:00
mostang.com!davidm
08230509a3
(ABI_LINUX): New macro.
...
(ABI_HPUX): Ditto.
(ABI_FREEBSD): Ditto.
(ABI_OPENVMS): Ditto.
(ABI_NSK): Ditto.
(ABI_WINDOWS): Ditto.
(unw_addr_space): Add member "abi".
(Logical change 1.87)
2003-04-24 20:45:07 +00:00
mostang.com!davidm
78a7c5a8c1
(ia64_script_insn_opcode): Rename IA64_INSN_ADD to IA64_INSN_INC_PSP,
...
and IA64_INSN_LOAD to IA64_INSN_LOAD_PSP. Add IA64_INSN_SET_REG.
(struct ia64_script_insn): Add "abi_marker" member.
(Logical change 1.84)
2003-04-23 05:56:59 +00:00
mostang.com!davidm
ed67c3edb7
(ia64_pregnum): Rename IA64_REG_RP to IA64_REG_IP.
...
(ia64_loc_t): New type. For UNW_LOCAL_ONLY, it's a single word, as before.
For the generic case, it's a 2-word structure. This provides enough
space to encode all necessary info both for 32-bit targets (which require
only 4-byte aligned addresses) and for targets which are limited to
accessing ucontext_t values via uc_access(3).
(ABI_MARKER_LINUX_SIGTRAMP): New macro.
(ABI_MARKER_HP_UX_SIGTRAMP): New macro.
(struct cursor): Consolidate bsp_loc, bspstore_loc, pfs_loc, rnat_loc, ip_loc,
pri_unat_loc, unat_loc, pr_loc, lc_loc, fpsr_loc, r4-r7_loc,
b1-b5_loc, f2-f7_loc, and fr_loc[] into loc[] array. Note that
there is now a separate PSP-loc (loc[IA64_REG_PSP]) in addition
to the cached psp value.
Rename sigcontext_loc to sigcontext_addr.
Remove is_signal_frame memeber and add abi_marker member instead.
Change type of rbs_area[].rnat_loc to ia64_loc_t.
(struct ia64_global_unwind_state): Remove preg_index[] array.
(Logical change 1.84)
2003-04-23 05:56:59 +00:00
hp.com!davidm
79f981aaf7
(_U_TDEP_QP_TRUE): New macro.
...
(Logical change 1.81)
2003-04-21 23:14:14 +00:00
mostang.com!davidm
6ab15cdec4
Regenerate.
...
(Logical change 1.75)
2003-04-03 07:59:15 +00:00
mostang.com!davidm
89c081cd84
On HP-UX, unset UNW_LOCAL_ONLY and defined UNW_GENERIC_ONLY, since it makes no
...
sense to do UNW_LOCAL_ONLY on this platform.
(Logical change 1.75)
2003-04-03 07:59:15 +00:00
mostang.com!davidm
d53636d414
Move endian-stuff to internal.h.
...
(Logical change 1.75)
2003-04-03 07:59:15 +00:00
mostang.com!davidm
a04f38ef19
Move endian-related defs from tdep-ia64.h to here.
...
(Logical change 1.75)
2003-04-03 07:59:15 +00:00
mostang.com!davidm
46149fdccd
Regenerate.
...
(Logical change 1.72)
2003-03-31 18:16:54 +00:00
hp.com!davidm
f9cc1e4b74
(tdep_get_elf_image): Declare.
...
(Logical change 1.71)
2003-03-29 07:32:50 +00:00
hp.com!davidm
1d443a63ad
(pthread_mutex_init): Declare as a "weak" symbol.
...
(Logical change 1.71)
2003-03-29 07:32:50 +00:00
mostang.com!davidm
337c0ad989
Add C++ wrapper.
...
(Logical change 1.70)
2003-03-28 07:43:22 +00:00
mostang.com!davidm
271d7065c2
(cmpchg_ptr): Cast first argument to "volatile long *", since that is what the
...
Intel compiler wants.
(Logical change 1.70)
2003-03-28 07:43:22 +00:00
mostang.com!davidm
28fe6a6e8b
Work around ECC v7.0 bug by manually definining __sync_val_compare_and_swap()
...
if it isn't defined yet.
(Logical change 1.68)
2003-03-27 04:29:07 +00:00
mostang.com!davidm
c7aaa68495
Regenerate.
...
(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
15693e234b
Include config.h, if we have it (HAVE_CONFIG_H).
...
Include <sys/types.h>. HP-UX can't include pthread.h otherwise.
Replace test for UNW_TARGET_IA64 with test for HAVE_IA64INTRIN_H.
(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
47c70d7858
Include <inttypes.h> instead of <stdint.h>. HP-UX doesn't have the latter.
...
(unw_tdep_save_loc_t): Define a dummy member, so we're ANSI-C compliant (which doesn't
allow empty structs).
(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
58e0e100d1
Include <inttypes.h> instead of <stdint.h>. HP-UX doesn't have the latter.
...
(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
53bd7613b7
If we don't have <endian.h>, define __LITTLE_ENDIAN and __BIG_ENDIAN here and
...
guess the right value for __BYTE_ORDER.
(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
d5ad49b013
(unw_regname): Correct type of "regnum" from "int" to "unw_regnum_t".
...
(Logical change 1.62)
2003-03-13 02:15:01 +00:00
mostang.com!davidm
51095505d9
(struct addr_space): Add "dyn_info_list_addr" member.
...
(Logical change 1.61)
2003-03-11 01:11:18 +00:00
mostang.com!davidm
9003fd20fe
Include <signal.h>. Remove include of <tdep.h>.
...
(mutex_init): New macro.
(HAVE_CMPXCHG): Ditto.
(cmpxchg_ptr): Ditto.
(unwi_full_sigmask): New variable.
(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
5daa8619b7
Include "internal.h".
...
Define sos_alloc(), mempool_init(), mempool_alloc(), and mempool_free() with
UNWI_ARCH_OBJ() helper macro.
(sos_free): Delete.
(struct mempool): Declare "lock" member.
(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
57bdcfeb0d
Delete spurious copyright message.
...
(struct ia64_script_cache): Declare "lock" member.
(ia64_get_cached_proc_info): Rename from ia64_script_lookup().
(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
45ce48f2e4
(unw_tdep_fpreg_t): Declare as "long double".
...
(UNW_TDEP_EH): Declare.
(UNW_TDEP_NUM_EH_REGS): New macro.
(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
a6e367131b
(UNW_TDEP_EH): Rename from UNW_TDEP_EH_ARG0.
...
(UNW_TDEP_EH_ARG1): Delete.
(UNW_TDEP_EH_ARG2): Ditto.
(UNW_TDEP_EH_ARG3): Ditto.
(UNT_TDEP_NUM_EH_REGS): New macro.
(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
c670abba8f
(UNW_REG_EH): Rename from UNW_REG_EH_ARG0.
...
(UNW_REG_EH_ARG1): Delete.
(UNW_REG_EH_ARG2): Ditto.
(UNW_REG_EH_ARG3): Ditto.
(UNW_NUM_EH_REGS): New macro.
(_UPT_resume): Declare.
(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
7343841308
(unw_accessors_t): Add optional get_proc_name() callback.
...
(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm
9430d35c9b
(_U_dyn_region_info_size): Define it in a more straight-forward manner.
...
(_U_dyn_op_label_state): Drop "qp" and "when" arguments.
(_U_dyn_op_copy_state): Ditto.
(_U_dyn_op_stop): Define qp to _U_QP_TRUE and when to -1.
(_U_QP_TRUE): New macro.
(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm
9df94711bf
(_U_TDEP_QP_TRUE): New macro.
...
(UNW_IA64_RP): New register-name.
(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm
6863c4aaf5
(IA64_REG_PSP): Move it ino front of IA64_REG_BSP.
...
(tdep_get_proc_name): Delete.
(Logical change 1.56)
2003-02-27 09:58:57 +00:00
hp.com!davidm
c503981c39
(struct ia64_global_unwind_state): Add member "r0".
...
(Logical change 1.55)
2003-02-26 08:33:57 +00:00
hp.com!davidm
43652d9dea
(ia64): Undef this macro if it's defined (bug in Intel's ECC v7.0?).
...
(_Uia64_find_dyn_list): Add "gp" argument.
(Logical change 1.55)
2003-02-26 08:33:57 +00:00
hp.com!davidm
cf3b756567
(_U_dyn_op_pop_frames): Fix typo in UNW_DYN_POP_FRAMES.
...
(Logical change 1.55)
2003-02-26 08:33:57 +00:00
mostang.com!davidm
e20ecc63b8
(unwi_get_proc_name): Don't make it an arch-object. Drop "is_local" argument.
...
(Logical change 1.54)
2003-02-22 08:19:43 +00:00
mostang.com!davidm
e61440508f
(unw_dyn_region_info_t): Make insn_count signed.
...
(Logical change 1.54)
2003-02-22 08:19:43 +00:00
hp.com!davidm
ea34cc2bee
(uc_off): Remove (it wasn't used anymore).
...
(Logical change 1.53)
2003-02-22 03:08:22 +00:00
mostang.com!davidm
c341225693
(struct cursor): Remove rbs_right_edge.
...
(Logical change 1.52)
2003-02-21 07:36:26 +00:00
hp.com!davidm
a45c88823a
(likely): Make them work even for non-GCC (or old GCC) compilers.
...
(unlikely): Ditto.
(debug): Print to stderr.
(dprintf): Ditto.
(Logical change 1.48)
2003-02-15 03:10:30 +00:00
hp.com!davidm
74f568c602
Regenerate.
...
(Logical change 1.46)
2003-02-14 03:09:27 +00:00
mostang.com!davidm
108627cab7
Include "elf64.h".
...
(struct cursor): Add member "eh_valid_mask" to track which eh_args[] are valid.
Fix comment for rbs_curr.
(tdep_get_elf_image): New routine.
(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm
8c2740cfe3
(unw_tdep_fpreg_t): New type.
...
(UNW_TDEP_EH_ARG0): Make it an alias for r15.
(UNW_TDEP_EH_ARG1): Make it an alias for r16.
(UNW_TDEP_EH_ARG2): Make it an alias for r17.
(UNW_TDEP_EH_ARG3): Make it an alias for r18.
(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm
981c8cc37b
(UNW_REG_EH_ARG0): New well-known register name.
...
(UNW_REG_EH_ARG1): Ditto.
(UNW_REG_EH_ARG2): Ditto.
(UNW_REG_EH_ARG3): Ditto.
(unw_fpreg_t): Make it a target-dependent type.
(unw_get_proc_name): Also return the offset relative to the function name returned.
(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm
f5265f56ba
(HIDDEN): Make it empty unless we have at least GCC v3.3.
...
(unwi_get_proc_name): Also return the offset relative to the returned function-name.
(struct elf_image): New structure.
(Logical change 1.45)
2003-02-08 10:10:59 +00:00
hp.com!davidm
644c919345
Rename UNW_IA64_AR_25 to UNW_IA64_AR_CSD, as per SDM v2.1.
...
(_Uia64_search_unwind_table): Declare.
(_Uia64_find_dyn_list): Declare as "extern".
(_Uia64_get_kernel_table): Declare.
(Logical change 1.43)
2003-01-28 03:40:06 +00:00
hp.com!davidm
a69cf3deb9
Regenerate.
...
(Logical change 1.43)
2003-01-28 03:40:06 +00:00
hp.com!davidm
68bdac3681
Add declarations for the _UPT_* helper routines (libunwind via ptrace helpers).
...
(Logical change 1.43)
2003-01-28 03:40:06 +00:00
hp.com!davidm
bb25a5ed3b
(tdep_search_unwind_table): Explicitly call _Uia64_search_unwind_table().
...
Remove declaration of same name; this is now done in libunwind-ia64.h.
(Logical change 1.43)
2003-01-28 03:40:06 +00:00
mostang.com!davidm
717cb71374
(struct cursor): Add "cfm" cache.
...
(Logical change 1.42)
2003-01-23 18:47:51 +00:00
mostang.com!davidm
6dbc6777a3
(struct cursor): Rename rbs_wridx to rbs_right_edge, rbs_nvalid to rbs_left_edge,
...
and reserve two extra slots in rbs_area[].
(Logical change 1.41)
2003-01-23 10:04:09 +00:00
mostang.com!davidm
7e268d256d
(mi_init): Avoid name-space pollution: make mi_init() an arch-object.
...
(Logical change 1.41)
2003-01-23 10:04:09 +00:00
mostang.com!davidm
8b17d136c5
(struct cursor): Replace rbs_top and top_rnat_loc with rbs_wridx, rbs_curr,
...
rbs_nvalid, and rbs_area. Add new member sigcontext_off.
(Logical change 1.40)
2003-01-21 17:41:20 +00:00
mostang.com!davidm
313653f66e
(likely): New macro.
...
(unlikely): Ditto.
(NELEMS): Ditto.
(Logical change 1.39)
2003-01-21 08:08:32 +00:00
mostang.com!davidm
b5fe317cc8
(UNW_TDEP_CURSOR_LEN): Define.
...
(UNW_PI_FLAG_IA64_RBS_SWITCH_BIT): New macro.
(UNW_PI_FLAG_IA64_RBS_SWITCH): Ditto.
(Logical change 1.39)
2003-01-21 08:08:32 +00:00
mostang.com!davidm
26f6cf761e
(UNW_TDEP_CURSOR_LEN): Define.
...
(Logical change 1.39)
2003-01-21 08:08:32 +00:00
mostang.com!davidm
a4bea2c466
(UNW_STATE_LEN): Remove (replaced by UNW_TDEP_CURSOR_LEN).
...
(UNWPI_FLAG_FIRST_TDEP_BIT): Define.
Fix typo in comment: LITTLE not LITLE...
(Logical change 1.39)
2003-01-21 08:08:32 +00:00
mostang.com!davidm
0440c53608
Fix checkin lossage.
...
(Logical change 1.37)
2003-01-17 18:12:55 +00:00
mostang.com!davidm
a38baad7f3
(unw_init_local): Fix typo: the context type should be unw_context_t.
...
(Logical change 1.35)
2003-01-17 07:48:52 +00:00
mostang.com!davidm
8ec7b349f1
Initial revision
2003-01-14 07:11:56 +00:00
mostang.com!davidm
6d611572ef
(Logical change 1.33)
2003-01-14 07:11:56 +00:00
mostang.com!davidm
2d80409b22
Rename: src/mempool.h -> include/mempool.h
...
(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
9f32da41c3
Initial revision
2002-12-19 07:16:50 +00:00
mostang.com!davidm
a60cacd8f5
Include "mempool.h">
...
(struct cursor): Move to here from unwind_i.h.
(struct ia64_global_unwind_state): Ditto.
(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
db59d4f98f
(struct cursor): Rename from "struct ia64_cursor".
...
(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
20a6c1adf1
(get_accessors): Make it an arch-obj.
...
(flush_cache): Ditto.
(set_caching_policy): Ditto.
(regname): Ditto.
(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
93daa3b08d
(UNW_TARGET_IA64): Define.
...
(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
bf070a994a
(UNW_DEBUG): Move here from ia64/unwind_i.h
...
(debug): Ditto.
(dprintf): Ditto.
(inline): Ditto.
(mi_init): Declare.
(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
a85267d16b
(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
1c8ee38936
(_Uia64_find_dyn_list): Declare and document this ia64-specific helper routine.
...
(Logical change 1.31)
2002-12-18 05:18:40 +00:00
mostang.com!davidm
793c8a3005
Initial revision
2002-12-12 09:17:41 +00:00
mostang.com!davidm
744b910408
Clarify comment on how when to use a pointer type and when to use unw_word_t.
...
(unw_dyn_info_format_t): New type.
(unw_dyn_op): Decrease "tag" from 16 to 8 bits, ditto for "qp" member.
(unw_dyn_proc_info): Change "name" pointer to "name_ptr" value (unw_word_t) and
make padding explicit.
(unw_dyn_table_info): Change "name" pointer to "name_ptr" value. Rename
"table_size" to "table_len" and change type of table_data from
void * to "unw_word_t *".
(unw_dyn_info): Switch to doubly-linked list so _U_dyn_cancel() can be O(1).
Change type of "format" member from enum to int32_t. Make padding explicit.
(unw_dyn_info_list): Make "generation" member 32 bits wide. Add "version" member
to enable future extensions to the dynamic info list.
(_U_dyn_register): Don't return anything (it can't fail).
(_U_dyn_cancel): Ditto.
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
01e35a5d93
Add copyright header and forward-declration of ia64_cursor.
...
2002/12/05 15:32:45-08:00 mostang.com!davidm
Rename: src/ia64/script.h -> include/ia64/script.h
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
b29266f262
(unw_sysdep_search_unwind_table): Remove.
...
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
b6251b0f41
(unw_proc_info_t): Remove proc_name member and replace it with unw_get_proc_name().
...
The former didn't work because of memory management issues (there was no
reasonable way to allocate/free the memory needed for the string).
Shorten unwind_info_size from size_t to int.
(unw_accessors_t): Add new callbacks put_unwind_info() and get_dyn_info_list_addr().
(unw_create_addr_space): Take byte-order as second argument.
(unw_get_proc_name): New routine.
(unw_find_dynamic_proc_info): Remove (it's brother is in internal.h now).
(unw_flush_cache): Add missing declaration.
(unw_set_caching_policy): Ditto.
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
653c9006ac
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
dfc08eaef4
Rewrite to resemble something that actually might work.
...
(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
50d7a155ff
Add include of <libunwind-dyamic.h>.
...
(UNW_ARCH_OBJ): New macro.
(unw_proc_info_t): New type.
(unw_accessors): Replace acquire_unwind_info and release_unwind_info callbacks
with find_proc_info callback. Change remaining prototypes to take
address-space pointer as the first argument.
(unw_get_accessors): New routine.
(unw_get_proc_info): New routine.
(unw_regname): Make it an UNW_ARCH_OBJ.
(unw_find_dynamic_proc_info): New routine.
(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
b1c1f146cc
(struct unw_ia64_table): Delete.
...
(unw_sysdep_search_unwind_table): New macro.
(Logical change 1.29)
2002-12-03 08:19:58 +00:00
hp.com!davidm
d7e9f75df6
(Logical change 1.28)
2002-11-23 02:12:30 +00:00
hp.com!davidm
f7d795a412
Initial revision
2002-11-23 02:12:30 +00:00
mostang.com!davidm
87bc2e3242
Document which routines are signal-safe.
...
(unw_addr_space_t): New type.
(unw_accessors_t): Remove "arg" member.
(unw_local_addr_space): New variable.
(unw_create_addr_space): New function.
(unw_destroy_addr_space): Ditto.
(unw_init_remote): Take address-space and accessor-argument pointer instead of
accessor structure as argument.
(unw_set_caching_policy): Take address-space as first argument.
(unw_flush_cache): Take address space and address-range (lo & hi) arguments.
(Logical change 1.27)
2002-11-16 06:50:04 +00:00
mostang.com!davidm
aca3843d6f
Switch to MIT license.
...
(Logical change 1.26)
2002-11-16 03:25:36 +00:00
mostang.com!davidm
16f2189512
(unw_caching_policy_t): New type.
...
(unw_set_caching_policy): New function.
(unw_flush_cache): Ditto.
(Logical change 1.22)
2002-11-09 07:59:02 +00:00
mostang.com!davidm
193ba2859f
(HAVE___THREAD): Mention it.
...
(Logical change 1.22)
2002-11-09 07:59:02 +00:00
mostang.com!davidm
3569969a3e
Update copyright message.
...
(Logical change 1.19)
2002-07-18 03:58:34 +00:00
mostang.com!davidm
cfe616f0f6
Undefine HAVE_GETUNWIND by default.
...
(Logical change 1.18)
2002-04-25 06:47:29 +00:00
mostang.com!davidm
74775e31d9
(unw_tdep_getcontext): Make it an expression returning zero (no error).
...
(Logical change 1.16)
2002-04-12 05:02:40 +00:00
mostang.com!davidm
58142c0a21
(unw_regname): New routine to obtain canonical name of a register.
...
(Logical change 1.16)
2002-04-12 05:02:40 +00:00
hp.com!davidm
76166fb955
(UNW_PREFIX): Include the target name in the prefix.
...
2002/04/05 14:33:32-08:00 hp.com!davidm
Rename: include/libunwind.h -> include/libunwind-common.h
(Logical change 1.12)
2002-04-05 23:37:55 +00:00
hp.com!davidm
5a0a6457b1
Initial revision
2002-04-05 23:37:55 +00:00
hp.com!davidm
1f3b87ad50
Add multi-architecture support: include libunwind-common.h instead
...
of having a libunwind.h include the target-specific header.
(Logical change 1.12)
2002-04-05 23:37:55 +00:00
hp.com!davidm
2a8477a76a
(UNW_PREFIX): Include the target name in the prefix.
...
}(Logical change 1.12)
2002-04-05 23:37:55 +00:00
mostang.com!davidm
5c6360b856
(unw_tdep_is_fpreg): New macro.
...
(Logical change 1.11)
2002-04-04 19:04:09 +00:00
mostang.com!davidm
4208867819
(unw_is_fpreg): New macro.
...
(Logical change 1.11)
2002-04-04 19:04:09 +00:00
hp.com!davidm
f1d10c0fb3
(unw_tdep_save_loc_t): New type.
...
(Logical change 1.10)
2002-04-03 06:51:34 +00:00
hp.com!davidm
48da72afd7
(unw_save_loc_t): New member "extra" to hold arch-specific save-location info.
...
(unw_get_save_loc): Define.
(Logical change 1.10)
2002-04-03 06:51:34 +00:00
mostang.com!davidm
99639fb162
Rename UNW_IA64_CURRENT_BSP to UNW_IA64_BSP.
...
(Logical change 1.9)
2002-04-01 23:01:22 +00:00
mostang.com!davidm
70dd4fbccf
(unw_save_loc_type_t): New type.
...
(unw_save_loc_t): New type.
(get_save_loc): New prototype.
(Logical change 1.9)
2002-04-01 23:01:22 +00:00
mostang.com!davidm
96e3133a62
Remove include of libunwind-config.h. Include libunwind-tdep.h instead of
...
opencoding an architecture-specific include.
2002/02/23 12:16:40-08:00 mostang.com!davidm
Rename: include/libunwind.h.in -> include/libunwind.h
(Logical change 1.7)
2002-02-23 20:27:03 +00:00