zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

link.h (1834B) - Raw


      1 /* Machine-specific declarations for dynamic linker interface.  C-SKY version.
      2    Copyright (C) 2018-2025 Free Software Foundation, Inc.
      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
      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
     16    License along with the GNU C Library.  If not, see
     17    <https://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 C-SKY.  */
     24 typedef struct La_csky_regs
     25 {
     26   uint32_t lr_reg[4];
     27   uint32_t lr_sp;
     28   uint32_t lr_lr;
     29 } La_csky_regs;
     30 
     31 /* Return values for calls from PLT on C-SKY.  */
     32 typedef struct La_csky_retval
     33 {
     34   /* Up to four integer registers can be used for a return value.  */
     35   uint32_t lrv_reg[4];
     36   uint32_t lrv_v0;
     37 } La_csky_retval;
     38 
     39 __BEGIN_DECLS
     40 
     41 extern Elf32_Addr la_csky_gnu_pltenter (Elf32_Sym *__sym, unsigned int __ndx,
     42 					uintptr_t *__refcook,
     43 					uintptr_t *__defcook,
     44 					La_csky_regs *__regs,
     45 					unsigned int *__flags,
     46 					const char *__symname,
     47 					long int *__framesizep);
     48 extern unsigned int la_csky_gnu_pltexit (Elf32_Sym *__sym, unsigned int __ndx,
     49 					 uintptr_t *__refcook,
     50 					 uintptr_t *__defcook,
     51 					 const La_csky_regs *__inregs,
     52 					 La_csky_retval *__outregs,
     53 					 const char *__symname);
     54 
     55 __END_DECLS