Update copyright notices with scripts/update-copyrights
[glibc.git] / ports / sysdeps / aarch64 / bits / link.h
blobfe068276ead12666365b46ecdf3893dc89ffdb26
1 /* Copyright (C) 2005-2014 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
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 License as
7 published by the Free Software Foundation; either version 2.1 of the
8 License, or (at your option) any later version.
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.
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <http://www.gnu.org/licenses/>. */
19 #ifndef _LINK_H
20 # error "Never include <bits/link.h> directly; use <link.h> instead."
21 #endif
23 /* Registers for entry into PLT on AArch64. */
24 typedef struct La_aarch64_regs
26 uint64_t lr_xreg[8];
27 uint64_t lr_dreg[8];
28 uint64_t lr_sp;
29 uint64_t lr_lr;
30 } La_aarch64_regs;
32 /* Return values for calls from PLT on AArch64. */
33 typedef struct La_aarch64_retval
35 /* Up to two integer registers can be used for a return value. */
36 uint64_t lrv_xreg[2];
37 /* Up to four D registers can be used for a return value. */
38 uint64_t lrv_dreg[4];
40 } La_aarch64_retval;
41 __BEGIN_DECLS
43 extern Elf64_Addr
44 la_aarch64_gnu_pltenter (Elf64_Sym *__sym, unsigned int __ndx,
45 uintptr_t *__refcook,
46 uintptr_t *__defcook,
47 La_aarch64_regs *__regs,
48 unsigned int *__flags,
49 const char *__symname,
50 long int *__framesizep);
52 extern unsigned int
53 la_aarch64_gnu_pltexit (Elf64_Sym *__sym, unsigned int __ndx,
54 uintptr_t *__refcook,
55 uintptr_t *__defcook,
56 const La_aarch64_regs *__inregs,
57 La_aarch64_retval *__outregs,
58 const char *__symname);
60 __END_DECLS