packaing: switch off build_html
[platform/upstream/glibc.git] / sysdeps / mips / dl-r_debug.h
1 /* Function to access r_debug structure.  MIPS specific version.
2    Copyright (C) 2022-2024 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 #ifdef EW_
20 /* Return the offset of the struct r_debug before relocation.  */
21
22 static inline EW(Addr)
23 E(r_debug_offset) (EW(Dyn) *d, int fd, EW(Addr) offset)
24 {
25   switch (d->d_tag)
26     {
27     case DT_MIPS_RLD_MAP_REL:
28       offset += d->d_un.d_val;
29       break;
30     case DT_MIPS_RLD_MAP:
31       offset = d->d_un.d_ptr;
32       break;
33     default:
34       return 0;
35     }
36
37   if (pread (fd, &offset, sizeof (offset), offset) != sizeof (offset))
38     return 0;
39
40   return offset;
41 }
42 #else
43 /* Return the address of the struct r_debug after relocation.  */
44
45 static inline EW(Addr)
46 E(r_debug_address) (EW(Dyn) *d)
47 {
48   EW(Addr) ptr;
49
50   switch (d->d_tag)
51     {
52     case DT_MIPS_RLD_MAP_REL:
53       ptr = ((EW(Addr)) d) + d->d_un.d_val;
54       break;
55     case DT_MIPS_RLD_MAP:
56       ptr = d->d_un.d_ptr;
57       break;
58     default:
59       return 0;
60     }
61
62   return *(EW(Addr) *) ptr;
63 }
64 #endif