entry.S (f4091322d7397c8eb85c071570cab0e82ee3e261) | entry.S (415bfae9e9dbc2232f1797a3ac78a22049a75e06) |
---|---|
1/* 2 * Linux/PA-RISC Project (http://www.parisc-linux.org/) 3 * 4 * kernel entry points (interruptions, system call wrappers) 5 * Copyright (C) 1999,2000 Philipp Rumpf 6 * Copyright (C) 1999 SuSE GmbH Nuernberg 7 * Copyright (C) 2000 Hewlett-Packard (John Marvin) 8 * Copyright (C) 1999 Hewlett-Packard (Frank Rowand) --- 1674 unchanged lines hidden (view full) --- 1683 LDREG PT_GR13(\regs),%r13 1684 LDREG PT_GR14(\regs),%r14 1685 LDREG PT_GR15(\regs),%r15 1686 LDREG PT_GR16(\regs),%r16 1687 LDREG PT_GR17(\regs),%r17 1688 LDREG PT_GR18(\regs),%r18 1689 .endm 1690 | 1/* 2 * Linux/PA-RISC Project (http://www.parisc-linux.org/) 3 * 4 * kernel entry points (interruptions, system call wrappers) 5 * Copyright (C) 1999,2000 Philipp Rumpf 6 * Copyright (C) 1999 SuSE GmbH Nuernberg 7 * Copyright (C) 2000 Hewlett-Packard (John Marvin) 8 * Copyright (C) 1999 Hewlett-Packard (Frank Rowand) --- 1674 unchanged lines hidden (view full) --- 1683 LDREG PT_GR13(\regs),%r13 1684 LDREG PT_GR14(\regs),%r14 1685 LDREG PT_GR15(\regs),%r15 1686 LDREG PT_GR16(\regs),%r16 1687 LDREG PT_GR17(\regs),%r17 1688 LDREG PT_GR18(\regs),%r18 1689 .endm 1690 |
1691ENTRY(sys_fork_wrapper) | 1691 .macro fork_like name 1692ENTRY(sys_\name\()_wrapper) |
1692 LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30), %r1 1693 ldo TASK_REGS(%r1),%r1 1694 reg_save %r1 1695 mfctl %cr27, %r28 | 1693 LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30), %r1 1694 ldo TASK_REGS(%r1),%r1 1695 reg_save %r1 1696 mfctl %cr27, %r28 |
1697 b sys_\name |
|
1696 STREG %r28, PT_CR27(%r1) | 1698 STREG %r28, PT_CR27(%r1) |
1699ENDPROC(sys_\name\()_wrapper) 1700 .endm |
|
1697 | 1701 |
1698 LDREG PT_GR30(%r1),%r25 1699 copy %r1,%r24 1700 b sys_clone 1701 ldi SIGCHLD,%r26 1702ENDPROC(sys_fork_wrapper) | 1702fork_like clone 1703fork_like fork 1704fork_like vfork |
1703 1704 /* Set the return value for the child */ 1705ENTRY(child_return) 1706 BL schedule_tail, %r2 1707 nop 1708finish_child_return: 1709 LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30), %r1 1710 ldo TASK_REGS(%r1),%r1 /* get pt regs */ 1711 1712 LDREG PT_CR27(%r1), %r3 1713 mtctl %r3, %cr27 1714 reg_restore %r1 1715 b syscall_exit 1716 copy %r0,%r28 1717ENDPROC(child_return) 1718 | 1705 1706 /* Set the return value for the child */ 1707ENTRY(child_return) 1708 BL schedule_tail, %r2 1709 nop 1710finish_child_return: 1711 LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30), %r1 1712 ldo TASK_REGS(%r1),%r1 /* get pt regs */ 1713 1714 LDREG PT_CR27(%r1), %r3 1715 mtctl %r3, %cr27 1716 reg_restore %r1 1717 b syscall_exit 1718 copy %r0,%r28 1719ENDPROC(child_return) 1720 |
1719 1720ENTRY(sys_clone_wrapper) 1721 LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1 1722 ldo TASK_REGS(%r1),%r1 /* get pt regs */ 1723 reg_save %r1 1724 mfctl %cr27, %r28 1725 STREG %r28, PT_CR27(%r1) 1726 b sys_clone 1727 copy %r1,%r24 1728ENDPROC(sys_clone_wrapper) 1729 1730 1731ENTRY(sys_vfork_wrapper) 1732 LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1 1733 ldo TASK_REGS(%r1),%r1 /* get pt regs */ 1734 reg_save %r1 1735 mfctl %cr27, %r28 1736 STREG %r28, PT_CR27(%r1) 1737 1738 b sys_vfork 1739 copy %r1,%r26 1740ENDPROC(sys_vfork_wrapper) 1741 1742 | |
1743ENTRY(sys_rt_sigreturn_wrapper) 1744 LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r26 1745 ldo TASK_REGS(%r26),%r26 /* get pt regs */ 1746 /* Don't save regs, we are going to restore them from sigcontext. */ 1747 STREG %r2, -RP_OFFSET(%r30) 1748#ifdef CONFIG_64BIT 1749 ldo FRAME_SIZE(%r30), %r30 1750 BL sys_rt_sigreturn,%r2 --- 454 unchanged lines hidden --- | 1721ENTRY(sys_rt_sigreturn_wrapper) 1722 LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r26 1723 ldo TASK_REGS(%r26),%r26 /* get pt regs */ 1724 /* Don't save regs, we are going to restore them from sigcontext. */ 1725 STREG %r2, -RP_OFFSET(%r30) 1726#ifdef CONFIG_64BIT 1727 ldo FRAME_SIZE(%r30), %r30 1728 BL sys_rt_sigreturn,%r2 --- 454 unchanged lines hidden --- |