Unified · Split
| @@ -461,10 +461,10 @@ static void set_exception_handler(void) · 460 unmodified lines | ||
| 461 | 461 | #define REG_EBP EBP |
| 462 | 462 | #endif |
| 463 | 463 | |
| 464 | −/* return the PC at frame level 'level'. Return non zero if not found */ | |
| 464 | +/* return the PC at frame level 'level'. Return negative if not found */ | |
| 465 | 465 | static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) |
| 466 | 466 | { |
| 467 | − unsigned long fp; | |
| 467 | + addr_t fp; | |
| 468 | 468 | int i; |
| 469 | 469 | |
| 470 | 470 | if (level == 0) { |
| @@ -492,9 +492,9 @@ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) · 21 unmodified lines | ||
| 492 | 492 | /* XXX: check address validity with program info */ |
| 493 | 493 | if (fp <= 0x1000 || fp >= 0xc0000000) |
| 494 | 494 | return -1; |
| 495 | − fp = ((unsigned long *)fp)[0]; | |
| 495 | + fp = ((addr_t *)fp)[0]; | |
| 496 | 496 | } |
| 497 | − *paddr = ((unsigned long *)fp)[1]; | |
| 497 | + *paddr = ((addr_t *)fp)[1]; | |
| 498 | 498 | return 0; |
| 499 | 499 | } |
| 500 | 500 | } |
| @@ -502,11 +502,10 @@ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) · 1 unmodified line | ||
| 502 | 502 | /* ------------------------------------------------------------- */ |
| 503 | 503 | #elif defined(__x86_64__) |
| 504 | 504 | |
| 505 | −/* return the PC at frame level 'level'. Return non zero if not found */ | |
| 506 | −static int rt_get_caller_pc(unsigned long *paddr, | |
| 507 | − ucontext_t *uc, int level) | |
| 505 | +/* return the PC at frame level 'level'. Return negative if not found */ | |
| 506 | +static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) | |
| 508 | 507 | { |
| 509 | − unsigned long fp; | |
| 508 | + addr_t fp; | |
| 510 | 509 | int i; |
| 511 | 510 | |
| 512 | 511 | if (level == 0) { |
| @@ -531,9 +530,9 @@ static int rt_get_caller_pc(unsigned long *paddr, · 18 unmodified lines | ||
| 531 | 530 | /* XXX: check address validity with program info */ |
| 532 | 531 | if (fp <= 0x1000) |
| 533 | 532 | return -1; |
| 534 | − fp = ((unsigned long *)fp)[0]; | |
| 533 | + fp = ((addr_t *)fp)[0]; | |
| 535 | 534 | } |
| 536 | − *paddr = ((unsigned long *)fp)[1]; | |
| 535 | + *paddr = ((addr_t *)fp)[1]; | |
| 537 | 536 | return 0; |
| 538 | 537 | } |
| 539 | 538 | } |
| @@ -542,10 +541,9 @@ static int rt_get_caller_pc(unsigned long *paddr, · 2 unmodified lines | ||
| 542 | 541 | #elif defined(__arm__) |
| 543 | 542 | |
| 544 | 543 | /* return the PC at frame level 'level'. Return negative if not found */ |
| 545 | −static int rt_get_caller_pc(unsigned long *paddr, | |
| 546 | − ucontext_t *uc, int level) | |
| 544 | +static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) | |
| 547 | 545 | { |
| 548 | − uint32_t fp, sp; | |
| 546 | + addr_t fp, sp; | |
| 549 | 547 | int i; |
| 550 | 548 | |
| 551 | 549 | if (level == 0) { |
| @@ -569,15 +567,15 @@ static int rt_get_caller_pc(unsigned long *paddr, · 17 unmodified lines | ||
| 569 | 567 | if (fp < sp + 12 || fp & 3) |
| 570 | 568 | return -1; |
| 571 | 569 | for(i = 1; i < level; i++) { |
| 572 | − sp = ((uint32_t *)fp)[-2]; | |
| 570 | + sp = ((addr_t *)fp)[-2]; | |
| 573 | 571 | if (sp < fp || sp - fp > 16 || sp & 3) |
| 574 | 572 | return -1; |
| 575 | − fp = ((uint32_t *)fp)[-3]; | |
| 573 | + fp = ((addr_t *)fp)[-3]; | |
| 576 | 574 | if (fp <= sp || fp - sp < 12 || fp & 3) |
| 577 | 575 | return -1; |
| 578 | 576 | } |
| 579 | 577 | /* XXX: check address validity with program info */ |
| 580 | − *paddr = ((uint32_t *)fp)[-1]; | |
| 578 | + *paddr = ((addr_t *)fp)[-1]; | |
| 581 | 579 | return 0; |
| 582 | 580 | } |
| 583 | 581 | } |
| @@ -586,8 +584,7 @@ static int rt_get_caller_pc(unsigned long *paddr, · 2 unmodified lines | ||
| 586 | 584 | #else |
| 587 | 585 | |
| 588 | 586 | #warning add arch specific rt_get_caller_pc() |
| 589 | −static int rt_get_caller_pc(unsigned long *paddr, | |
| 590 | − ucontext_t *uc, int level) | |
| 587 | +static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) | |
| 591 | 588 | { |
| 592 | 589 | return -1; |
| 593 | 590 | } |