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