|
Lines 945-950
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
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
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
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
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); |