direct-io.hg
changeset 10784:be1b7896c203
[IA64] add unw_init_from_interruption()
From stock upstream unwind.c
Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
[fixed patch to match upstream]
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
From stock upstream unwind.c
Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
[fixed patch to match upstream]
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
author | awilliam@xenbuild.aw |
---|---|
date | Thu Jul 06 10:23:34 2006 -0600 (2006-07-06) |
parents | 80e04aa530b8 |
children | 446402805fd9 |
files | xen/arch/ia64/linux-xen/unwind.c |
line diff
1.1 --- a/xen/arch/ia64/linux-xen/unwind.c Thu Jul 06 10:04:57 2006 -0600 1.2 +++ b/xen/arch/ia64/linux-xen/unwind.c Thu Jul 06 10:23:34 2006 -0600 1.3 @@ -2056,6 +2056,28 @@ init_frame_info (struct unw_frame_info * 1.4 } 1.5 1.6 void 1.7 +unw_init_from_interruption (struct unw_frame_info *info, struct task_struct *t, 1.8 + struct pt_regs *pt, struct switch_stack *sw) 1.9 +{ 1.10 + unsigned long sof; 1.11 + 1.12 + init_frame_info(info, t, sw, pt->r12); 1.13 + info->cfm_loc = &pt->cr_ifs; 1.14 + info->unat_loc = &pt->ar_unat; 1.15 + info->pfs_loc = &pt->ar_pfs; 1.16 + sof = *info->cfm_loc & 0x7f; 1.17 + info->bsp = (unsigned long) ia64_rse_skip_regs((unsigned long *) info->regstk.top, -sof); 1.18 + info->ip = pt->cr_iip + ia64_psr(pt)->ri; 1.19 + info->pt = (unsigned long) pt; 1.20 + UNW_DPRINT(3, "unwind.%s:\n" 1.21 + " bsp 0x%lx\n" 1.22 + " sof 0x%lx\n" 1.23 + " ip 0x%lx\n", 1.24 + __FUNCTION__, info->bsp, sof, info->ip); 1.25 + find_save_locs(info); 1.26 +} 1.27 + 1.28 +void 1.29 unw_init_frame_info (struct unw_frame_info *info, struct task_struct *t, struct switch_stack *sw) 1.30 { 1.31 unsigned long sol;