Fix unnecessary overallocation due to incomplete character
[platform/upstream/glibc.git] / posix / sys / utsname.h
1 /* Copyright (C) 1991,92,94,96,97,99,2002 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 /*
20  *      POSIX Standard: 4.4 System Identification       <sys/utsname.h>
21  */
22
23 #ifndef _SYS_UTSNAME_H
24 #define _SYS_UTSNAME_H  1
25
26 #include <features.h>
27
28 __BEGIN_DECLS
29
30 #include <bits/utsname.h>
31
32 #ifndef _UTSNAME_SYSNAME_LENGTH
33 # define _UTSNAME_SYSNAME_LENGTH _UTSNAME_LENGTH
34 #endif
35 #ifndef _UTSNAME_NODENAME_LENGTH
36 # define _UTSNAME_NODENAME_LENGTH _UTSNAME_LENGTH
37 #endif
38 #ifndef _UTSNAME_RELEASE_LENGTH
39 # define _UTSNAME_RELEASE_LENGTH _UTSNAME_LENGTH
40 #endif
41 #ifndef _UTSNAME_VERSION_LENGTH
42 # define _UTSNAME_VERSION_LENGTH _UTSNAME_LENGTH
43 #endif
44 #ifndef _UTSNAME_MACHINE_LENGTH
45 # define _UTSNAME_MACHINE_LENGTH _UTSNAME_LENGTH
46 #endif
47
48 /* Structure describing the system and machine.  */
49 struct utsname
50   {
51     /* Name of the implementation of the operating system.  */
52     char sysname[_UTSNAME_SYSNAME_LENGTH];
53
54     /* Name of this node on the network.  */
55     char nodename[_UTSNAME_NODENAME_LENGTH];
56
57     /* Current release level of this implementation.  */
58     char release[_UTSNAME_RELEASE_LENGTH];
59     /* Current version level of this release.  */
60     char version[_UTSNAME_VERSION_LENGTH];
61
62     /* Name of the hardware type the system is running on.  */
63     char machine[_UTSNAME_MACHINE_LENGTH];
64
65 #if _UTSNAME_DOMAIN_LENGTH - 0
66     /* Name of the domain of this node on the network.  */
67 # ifdef __USE_GNU
68     char domainname[_UTSNAME_DOMAIN_LENGTH];
69 # else
70     char __domainname[_UTSNAME_DOMAIN_LENGTH];
71 # endif
72 #endif
73   };
74
75 #ifdef __USE_SVID
76 /* Note that SVID assumes all members have the same size.  */
77 # define SYS_NMLN  _UTSNAME_LENGTH
78 #endif
79
80
81 /* Put information about the system in NAME.  */
82 extern int uname (struct utsname *__name) __THROW;
83
84
85 __END_DECLS
86
87 #endif /* sys/utsname.h  */