1 .\"
   2 .\" This file and its contents are supplied under the terms of the
   3 .\" Common Development and Distribution License ("CDDL"), version 1.0.
   4 .\" You may only use this file in accordance with the terms of version
   5 .\" 1.0 of the CDDL.
   6 .\"
   7 .\" A full copy of the text of the CDDL should have accompanied this
   8 .\" source.  A copy of the CDDL is also available via the Internet at
   9 .\" http://www.illumos.org/license/CDDL.
  10 .\"
  11 .\"
  12 .\" Copyright 2015 Joyent, Inc.
  13 .\"
  14 .Dd May 11, 2016
  15 .Dt PUNAME 3PROC
  16 .Os
  17 .Sh NAME
  18 .Nm Puname
  19 .Nd get uname information from a process
  20 .Sh SYNOPSIS
  21 .Lb libproc
  22 .In libproc.h
  23 .Ft int
  24 .Fo Puname
  25 .Fa "struct ps_prochandle *P"
  26 .Fa "struct utsname *u"
  27 .Fc
  28 .Sh DESCRIPTION
  29 The
  30 .Fn Puname
  31 function copies the operating system information from the process
  32 handle
  33 .Fa P
  34 into
  35 .Fa u .
  36 .Pp
  37 For an active process or zombie process, this is the same information
  38 obtained from
  39 .Xr uname 2 .
  40 For core files, if available, it is the system information at the time
  41 the core was dumped.
  42 .Pp
  43 Handles that correspond to ELF objects do not contain uname
  44 information.
  45 .Sh RETURN VALUES
  46 Upon successful completion, the
  47 .Fn Puname
  48 function returns
  49 .Sy 0
  50 and updates the information at
  51 .Fa u .
  52 Otherwise,
  53 .Sy -1
  54 is returned and
  55 .Sy errno
  56 is set to indicate the error.
  57 .Sh ERRORS
  58 The
  59 .Fn Puname
  60 function will fail if:
  61 .Bl -tag -width Er
  62 .It Er ENODATA
  63 .Fa P
  64 is a handle that corresponds to an ELF object or
  65 .Fa P
  66 is a handle that corresponds to a core file and that information is not
  67 available in the core file.
  68 .It Er EFAULT
  69 .Fa P
  70 is a handle that corresponds to an active process and
  71 .Fa u
  72 is a bad address.
  73 .El
  74 .Sh INTERFACE STABILITY
  75 .Sy Uncommitted
  76 .Sh MT-LEVEL
  77 See
  78 .Sy LOCKING
  79 in
  80 .Xr libproc 3LIB .
  81 .Sh SEE ALSO
  82 .Xr uname 1 ,
  83 .Xr uname 2 ,
  84 .Xr libproc 3LIB