]> git.ipfire.org Git - thirdparty/glibc.git/blame - sysdeps/aarch64/bits/link.h
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / aarch64 / bits / link.h
CommitLineData
b168057a 1/* Copyright (C) 2005-2015 Free Software Foundation, Inc.
554066b8
MS
2
3 This file is part of the GNU C Library.
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 License as
7 published by the Free Software Foundation; either version 2.1 of the
8 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
16 License along with the GNU C Library; if not, see
17 <http://www.gnu.org/licenses/>. */
18
19#ifndef _LINK_H
20# error "Never include <bits/link.h> directly; use <link.h> instead."
21#endif
22
23/* Registers for entry into PLT on AArch64. */
24typedef struct La_aarch64_regs
25{
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;
31
32/* Return values for calls from PLT on AArch64. */
33typedef struct La_aarch64_retval
34{
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];
39
40} La_aarch64_retval;
41__BEGIN_DECLS
42
01194ba1
WN
43extern ElfW(Addr)
44la_aarch64_gnu_pltenter (ElfW(Sym) *__sym, unsigned int __ndx,
554066b8
MS
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);
51
52extern unsigned int
01194ba1 53la_aarch64_gnu_pltexit (ElfW(Sym) *__sym, unsigned int __ndx,
554066b8
MS
54 uintptr_t *__refcook,
55 uintptr_t *__defcook,
56 const La_aarch64_regs *__inregs,
57 La_aarch64_retval *__outregs,
58 const char *__symname);
59
60__END_DECLS