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