]> git.ipfire.org Git - thirdparty/glibc.git/blame - ports/sysdeps/unix/sysv/linux/m68k/nptl/vfork.S
Update copyright notices with scripts/update-copyrights
[thirdparty/glibc.git] / ports / sysdeps / unix / sysv / linux / m68k / nptl / vfork.S
CommitLineData
d4697bc9 1/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
40111cb9
MK
2 This file is part of the GNU C Library.
3 Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
ab84e3ff
PE
16 License along with the GNU C Library. If not, see
17 <http://www.gnu.org/licenses/>. */
40111cb9
MK
18
19#include <tcb-offsets.h>
20
21#define SAVE_PID \
22 bsrl __m68k_read_tp@PLTPC ; /* Get the thread pointer. */ \
23 movel %a0, %a1 ; /* Save TP for RESTORE_PID. */ \
24 movel PID_OFFSET(%a1), %d0 ; /* Get the PID. */ \
25 movel %d0, %d1 ; /* Save PID for RESTORE_PID. */ \
26 negl %d0 ; /* Negate the PID. */ \
27 bne 1f ; /* If it was zero... */ \
28 movel #0x80000000, %d0 ; /* use 0x80000000 instead. */ \
291: movel %d0, PID_OFFSET(%a1) ; /* Store the temporary PID. */
30
31#define RESTORE_PID \
32 tstl %d0 ; \
33 beq 1f ; /* If we are the parent... */ \
34 movel %d1, PID_OFFSET(%a1) ; /* Restore the PID. */ \
2b3dafb0 351:
40111cb9
MK
36
37#include <sysdeps/unix/sysv/linux/m68k/vfork.S>