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 ---