1 /* Internal prototype declarations that don't fit anywhere else.
2    Copyright (C) 2000-2022 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 _LIBC_INTERNAL
20 # define _LIBC_INTERNAL 1
21 
22 #include <hp-timing.h>
23 
24 /* Discover the tick frequency of the machine if something goes wrong,
25    we return 0, an impossible hertz.  */
26 extern int __profile_frequency (void);
27 libc_hidden_proto (__profile_frequency)
28 
29 /* Hooks for the instrumenting functions.  */
30 extern void __cyg_profile_func_enter (void *this_fn, void *call_site);
31 extern void __cyg_profile_func_exit (void *this_fn, void *call_site);
32 
33 /* Free all allocated resources.  */
34 extern void __libc_freeres (void);
35 libc_hidden_proto (__libc_freeres)
36 
37 /* Free resources stored in thread-local variables on thread exit.  */
38 extern void __libc_thread_freeres (void)
39 #if PTHREAD_IN_LIBC
40   attribute_hidden
41 #endif
42   ;
43 
44 /* Define and initialize `__progname' et. al.  */
45 extern void __init_misc (int, char **, char **) attribute_hidden;
46 
47 # if IS_IN (rtld)
48 extern __typeof (__profile_frequency) __profile_frequency attribute_hidden;
49 # endif
50 
51 #ifdef SHARED
52 /* True if this libc belongs to the initially loaded program (i.e., it
53    is not for an audit module, not loaded via dlmopen, and not loaded
54    via static dlopen either).  */
55 extern _Bool __libc_initial attribute_hidden;
56 #endif
57 
58 #endif /* _LIBC_INTERNAL  */
59