1.\"
2.\" Copyright (c) 2016 John Baldwin <jhb@FreeBSD.org>
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.Dd November 24, 2017
26.Dt sysdecode_fcntl_arg 3
27.Os
28.Sh NAME
29.Nm sysdecode_fcntl_arg ,
30.Nm sysdecode_fcntl_arg_p
31.Nd output description of fcntl argument
32.Sh LIBRARY
33.Lb libsysdecode
34.Sh SYNOPSIS
35.In sysdecode.h
36.Ft void
37.Fn sysdecode_fcntl_arg "FILE *fp" "int cmd" "uintptr_t arg" "int base"
38.Ft bool
39.Fn sysdecode_fcntl_arg_p "int cmd"
40.Sh DESCRIPTION
41The
42.Fn sysdecode_fcntl_arg
43function outputs a text description of the optional
44.Fa arg
45argument to
46.Xr fcntl 2
47to the stream
48.Fa fp .
49The type and format of
50.Fa arg
51are determined by
52.Fa cmd :
53.Bl -column ".Dv F_SETLKW" "Vt struct flock *"
54.It Sy Command Ta Fa arg Sy Type Ta Sy Output Format
55.It
56.It Dv F_SETFD Ta Vt int Ta
57.Dq FD_CLOEXEC
58or the value of
59.Fa arg
60in the indicated
61.Fa base
62.Pq one of 8, 10, or 16 .
63.It
64.It Dv F_SETFL Ta Vt int Ta
65File flags as output by
66.Xr sysdecode_fcntl_fileflags 3
67with any unknown or remaining bits output in hexadecimal.
68.It
69.It Dv F_GETLK Ta Vt struct flock * Ta
70.It Dv F_SETLK Ta Vt struct flock * Ta
71.It Dv F_SETLKW Ta Vt struct flock * Ta
72The value of
73.Fa arg
74using the
75.Dq %p
76conversion specification.
77.It
78.It Others Ta Vt int Ta
79The value of
80.Fa arg
81in the indicated
82.Fa base
83.Pq one of 8, 10, or 16 .
84.El
85.Pp
86The
87.Fn sysdecode_fcntl_arg_p
88function can be used to determine if a
89.Xr fcntl 2
90command uses the optional third argument to
91.Xr fcntl 2 .
92The function returns
93.Dv true
94if
95.Fa cmd
96accepts a third argument to
97.Xr fcntl 2
98and
99.Dv false
100if it does not.
101.Sh RETURN VALUES
102The
103.Nm sysdecode_fcntl_arg_p
104function returns
105.Dv true
106if
107.Fa cmd
108accepts a third argument to
109.Xr fcntl 2
110and
111.Dv false
112if it does not.
113.Sh SEE ALSO
114.Xr sysdecode 3 ,
115.Xr sysdecode_fcntl_cmd 3 ,
116.Xr sysdecode_fcntl_fileflags 3
117