1 /* Memory related definitions for program modules.
2    Copyright (C) 1998-2022 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4 
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published
7    by the Free Software Foundation; version 2 of the License, or
8    (at your option) any later version.
9 
10    This program 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
13    GNU General Public License for more details.
14 
15    You should have received a copy of the GNU General Public License
16    along with this program; if not, see <https://www.gnu.org/licenses/>.  */
17 
18 #ifndef _XMALLOC_H
19 #define _XMALLOC_H	1
20 
21 #include <sys/cdefs.h>
22 #include <stddef.h>
23 
24 /* Prototypes for a few program-wide used functions.  */
25 extern void *xmalloc (size_t n)
26   __attribute_malloc__ __attribute_alloc_size__ ((1)) __attr_dealloc_free
27   __returns_nonnull;
28 extern void *xcalloc (size_t n, size_t s)
29   __attribute_malloc__ __attribute_alloc_size__ ((1, 2)) __attr_dealloc_free
30   __returns_nonnull;
31 extern void *xrealloc (void *o, size_t n)
32   __attribute_malloc__ __attribute_alloc_size__ ((2)) __attr_dealloc_free;
33 extern char *xstrdup (const char *) __attribute_malloc__ __attr_dealloc_free
34   __returns_nonnull;
35 
36 #endif /* xmalloc.h */
37