Lines 945-950
access_uarea (struct task_struct *child,
Link Here
|
945 |
*data = (pt->cr_ipsr & IPSR_MASK); |
945 |
*data = (pt->cr_ipsr & IPSR_MASK); |
946 |
return 0; |
946 |
return 0; |
947 |
|
947 |
|
|
|
948 |
case PT_AR_RSC: |
949 |
if (write_access) |
950 |
pt->ar_rsc = *data | (3 << 2); /* force PL3 */ |
951 |
else |
952 |
*data = pt->ar_rsc; |
953 |
return 0; |
954 |
|
948 |
case PT_AR_RNAT: |
955 |
case PT_AR_RNAT: |
949 |
urbs_end = ia64_get_user_rbs_end(child, pt, NULL); |
956 |
urbs_end = ia64_get_user_rbs_end(child, pt, NULL); |
950 |
rnat_addr = (long) ia64_rse_rnat_addr((long *) |
957 |
rnat_addr = (long) ia64_rse_rnat_addr((long *) |
Lines 996-1004
access_uarea (struct task_struct *child,
Link Here
|
996 |
case PT_AR_BSPSTORE: |
1003 |
case PT_AR_BSPSTORE: |
997 |
ptr = pt_reg_addr(pt, ar_bspstore); |
1004 |
ptr = pt_reg_addr(pt, ar_bspstore); |
998 |
break; |
1005 |
break; |
999 |
case PT_AR_RSC: |
|
|
1000 |
ptr = pt_reg_addr(pt, ar_rsc); |
1001 |
break; |
1002 |
case PT_AR_UNAT: |
1006 |
case PT_AR_UNAT: |
1003 |
ptr = pt_reg_addr(pt, ar_unat); |
1007 |
ptr = pt_reg_addr(pt, ar_unat); |
1004 |
break; |
1008 |
break; |
Lines 1234-1240
ptrace_getregs (struct task_struct *chil
Link Here
|
1234 |
static long |
1238 |
static long |
1235 |
ptrace_setregs (struct task_struct *child, struct pt_all_user_regs __user *ppr) |
1239 |
ptrace_setregs (struct task_struct *child, struct pt_all_user_regs __user *ppr) |
1236 |
{ |
1240 |
{ |
1237 |
unsigned long psr, ec, lc, rnat, bsp, cfm, nat_bits, val = 0; |
1241 |
unsigned long psr, rsc, ec, lc, rnat, bsp, cfm, nat_bits, val = 0; |
1238 |
struct unw_frame_info info; |
1242 |
struct unw_frame_info info; |
1239 |
struct switch_stack *sw; |
1243 |
struct switch_stack *sw; |
1240 |
struct ia64_fpreg fpval; |
1244 |
struct ia64_fpreg fpval; |
Lines 1267-1273
ptrace_setregs (struct task_struct *chil
Link Here
|
1267 |
/* app regs */ |
1271 |
/* app regs */ |
1268 |
|
1272 |
|
1269 |
retval |= __get_user(pt->ar_pfs, &ppr->ar[PT_AUR_PFS]); |
1273 |
retval |= __get_user(pt->ar_pfs, &ppr->ar[PT_AUR_PFS]); |
1270 |
retval |= __get_user(pt->ar_rsc, &ppr->ar[PT_AUR_RSC]); |
1274 |
retval |= __get_user(rsc, &ppr->ar[PT_AUR_RSC]); |
1271 |
retval |= __get_user(pt->ar_bspstore, &ppr->ar[PT_AUR_BSPSTORE]); |
1275 |
retval |= __get_user(pt->ar_bspstore, &ppr->ar[PT_AUR_BSPSTORE]); |
1272 |
retval |= __get_user(pt->ar_unat, &ppr->ar[PT_AUR_UNAT]); |
1276 |
retval |= __get_user(pt->ar_unat, &ppr->ar[PT_AUR_UNAT]); |
1273 |
retval |= __get_user(pt->ar_ccv, &ppr->ar[PT_AUR_CCV]); |
1277 |
retval |= __get_user(pt->ar_ccv, &ppr->ar[PT_AUR_CCV]); |
Lines 1365-1370
ptrace_setregs (struct task_struct *chil
Link Here
|
1365 |
retval |= __get_user(nat_bits, &ppr->nat); |
1369 |
retval |= __get_user(nat_bits, &ppr->nat); |
1366 |
|
1370 |
|
1367 |
retval |= access_uarea(child, PT_CR_IPSR, &psr, 1); |
1371 |
retval |= access_uarea(child, PT_CR_IPSR, &psr, 1); |
|
|
1372 |
retval |= access_uarea(child, PT_AR_RSC, &rsc, 1); |
1368 |
retval |= access_uarea(child, PT_AR_EC, &ec, 1); |
1373 |
retval |= access_uarea(child, PT_AR_EC, &ec, 1); |
1369 |
retval |= access_uarea(child, PT_AR_LC, &lc, 1); |
1374 |
retval |= access_uarea(child, PT_AR_LC, &lc, 1); |
1370 |
retval |= access_uarea(child, PT_AR_RNAT, &rnat, 1); |
1375 |
retval |= access_uarea(child, PT_AR_RNAT, &rnat, 1); |