chiark / gitweb /
eglibc (2.11.3-4+deb6u3) squeeze-lts; urgency=medium
[eglibc.git] / sysdeps / ia64 / bits / link.h
1 /* Copyright (C) 2005, 2009 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, write to the Free
16    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17    02111-1307 USA.  */
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 ia64.  */
24 typedef struct La_ia64_regs
25 {
26   uint64_t lr_r8;
27   uint64_t lr_r9;
28   uint64_t lr_r10;
29   uint64_t lr_r11;
30   uint64_t lr_gr [8];
31   long double lr_fr [8];
32   uint64_t lr_unat;
33   uint64_t lr_sp;
34 } La_ia64_regs;
35
36 /* Return values for calls from PLT on ia64.  */
37 typedef struct La_ia64_retval
38 {
39   uint64_t lrv_r8;
40   uint64_t lrv_r9;
41   uint64_t lrv_r10;
42   uint64_t lrv_r11;
43   long double lr_fr [8];
44 } La_ia64_retval;
45
46
47 __BEGIN_DECLS
48
49 extern Elf64_Addr la_ia64_gnu_pltenter (Elf64_Sym *__sym, unsigned int __ndx,
50                                        uintptr_t *__refcook,
51                                        uintptr_t *__defcook,
52                                        La_ia64_regs *__regs,
53                                        unsigned int *__flags,
54                                        const char *__symname,
55                                        long int *__framesizep);
56 extern unsigned int la_ia64_gnu_pltexit (Elf64_Sym *__sym, unsigned int __ndx,
57                                         uintptr_t *__refcook,
58                                         uintptr_t *__defcook,
59                                         const La_ia64_regs *__inregs,
60                                         La_ia64_retval *__outregs,
61                                         const char *__symname);
62
63 __END_DECLS