1*9289f547SJohn Baldwin.\"
2*9289f547SJohn Baldwin.\" Copyright (c) 2016 John Baldwin <[email protected]>
3*9289f547SJohn Baldwin.\" All rights reserved.
4*9289f547SJohn Baldwin.\"
5*9289f547SJohn Baldwin.\" Redistribution and use in source and binary forms, with or without
6*9289f547SJohn Baldwin.\" modification, are permitted provided that the following conditions
7*9289f547SJohn Baldwin.\" are met:
8*9289f547SJohn Baldwin.\" 1. Redistributions of source code must retain the above copyright
9*9289f547SJohn Baldwin.\"    notice, this list of conditions and the following disclaimer.
10*9289f547SJohn Baldwin.\" 2. Redistributions in binary form must reproduce the above copyright
11*9289f547SJohn Baldwin.\"    notice, this list of conditions and the following disclaimer in the
12*9289f547SJohn Baldwin.\"    documentation and/or other materials provided with the distribution.
13*9289f547SJohn Baldwin.\"
14*9289f547SJohn Baldwin.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15*9289f547SJohn Baldwin.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16*9289f547SJohn Baldwin.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17*9289f547SJohn Baldwin.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18*9289f547SJohn Baldwin.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19*9289f547SJohn Baldwin.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20*9289f547SJohn Baldwin.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21*9289f547SJohn Baldwin.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22*9289f547SJohn Baldwin.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23*9289f547SJohn Baldwin.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24*9289f547SJohn Baldwin.\" SUCH DAMAGE.
25*9289f547SJohn Baldwin.\"
26*9289f547SJohn Baldwin.\" $FreeBSD$
27*9289f547SJohn Baldwin.\"
28*9289f547SJohn Baldwin.Dd October 17, 2016
29*9289f547SJohn Baldwin.Dt sysdecode_mask 3
30*9289f547SJohn Baldwin.Os
31*9289f547SJohn Baldwin.Sh NAME
32*9289f547SJohn Baldwin.Nm sysdecode_mask ,
33*9289f547SJohn Baldwin.Nm sysdecode_accessmode ,
34*9289f547SJohn Baldwin.Nm sysdecode_capfcntlrights ,
35*9289f547SJohn Baldwin.Nm sysdecode_fcntl_fileflags ,
36*9289f547SJohn Baldwin.Nm sysdecode_fileflags ,
37*9289f547SJohn Baldwin.Nm sysdecode_filemode ,
38*9289f547SJohn Baldwin.Nm sysdecode_flock_operation ,
39*9289f547SJohn Baldwin.Nm sysdecode_getfsstat_flags ,
40*9289f547SJohn Baldwin.Nm sysdecode_mlockall_flags ,
41*9289f547SJohn Baldwin.Nm sysdecode_mmap_flags ,
42*9289f547SJohn Baldwin.Nm sysdecode_mmap_prot ,
43*9289f547SJohn Baldwin.Nm sysdecode_mount_flags ,
44*9289f547SJohn Baldwin.Nm sysdecode_msg_flags ,
45*9289f547SJohn Baldwin.Nm sysdecode_msync_flags ,
46*9289f547SJohn Baldwin.Nm sysdecode_open_flags ,
47*9289f547SJohn Baldwin.Nm sysdecode_pipe2_flags ,
48*9289f547SJohn Baldwin.Nm sysdecode_reboot_howto ,
49*9289f547SJohn Baldwin.Nm sysdecode_rfork_flags ,
50*9289f547SJohn Baldwin.Nm sysdecode_semget_flags ,
51*9289f547SJohn Baldwin.Nm sysdecode_sendfile_flags ,
52*9289f547SJohn Baldwin.Nm sysdecode_shmat_flags ,
53*9289f547SJohn Baldwin.Nm sysdecode_socket_type ,
54*9289f547SJohn Baldwin.Nm sysdecode_thr_create_flags ,
55*9289f547SJohn Baldwin.Nm sysdecode_umtx_cvwait_flags ,
56*9289f547SJohn Baldwin.Nm sysdecode_umtx_rwlock_flags ,
57*9289f547SJohn Baldwin.Nm sysdecode_vmprot ,
58*9289f547SJohn Baldwin.Nm sysdecode_wait4_options ,
59*9289f547SJohn Baldwin.Nm sysdecode_wait6_options
60*9289f547SJohn Baldwin.Nd print name of various bitmask values
61*9289f547SJohn Baldwin.Sh LIBRARY
62*9289f547SJohn Baldwin.Lb libsysdecode
63*9289f547SJohn Baldwin.Sh SYNOPSIS
64*9289f547SJohn Baldwin.In sys/types.h
65*9289f547SJohn Baldwin.In stdbool.h
66*9289f547SJohn Baldwin.In sysdecode.h
67*9289f547SJohn Baldwin.Ft bool
68*9289f547SJohn Baldwin.Fn sysdecode_access_mode "FILE *fp" "int mode" "int *rem"
69*9289f547SJohn Baldwin.Ft bool
70*9289f547SJohn Baldwin.Fn sysdecode_cap_fcntlrights "FILE *fp" "uint32_t rights" "uint32_t *rem"
71*9289f547SJohn Baldwin.Ft bool
72*9289f547SJohn Baldwin.Fn sysdecode_fcntl_fileflags "FILE *fp" "int flags" "int *rem"
73*9289f547SJohn Baldwin.Ft bool
74*9289f547SJohn Baldwin.Fn sysdecode_fileflags "FILE *fp" "fflags_t flags" "fflags_t *rem"
75*9289f547SJohn Baldwin.Ft bool
76*9289f547SJohn Baldwin.Fn sysdecode_filemode "FILE *fp" "int mode" "int *rem"
77*9289f547SJohn Baldwin.Ft bool
78*9289f547SJohn Baldwin.Fn sysdecode_flock_operation "FILE *fp" "int operation" "int *rem"
79*9289f547SJohn Baldwin.Ft bool
80*9289f547SJohn Baldwin.Fn sysdecode_mlockall_flags "FILE *fp" "int flags" "int *rem"
81*9289f547SJohn Baldwin.Ft bool
82*9289f547SJohn Baldwin.Fn sysdecode_mmap_flags "FILE *fp" "int flags" "int *rem"
83*9289f547SJohn Baldwin.Ft bool
84*9289f547SJohn Baldwin.Fn sysdecode_mmap_prot "FILE *fp" "int prot" "int *rem"
85*9289f547SJohn Baldwin.Ft bool
86*9289f547SJohn Baldwin.Fn sysdecode_mount_flags "FILE *fp" "int flags" "int *rem"
87*9289f547SJohn Baldwin.Ft bool
88*9289f547SJohn Baldwin.Fn sysdecode_msg_flags "FILE *fp" "int flags" "int *rem"
89*9289f547SJohn Baldwin.Ft bool
90*9289f547SJohn Baldwin.Fn sysdecode_msync_flags "FILE *fp" "int flags" "int *rem"
91*9289f547SJohn Baldwin.Ft bool
92*9289f547SJohn Baldwin.Fn sysdecode_open_flags "FILE *fp" "int flags" "int *rem"
93*9289f547SJohn Baldwin.Ft bool
94*9289f547SJohn Baldwin.Fn sysdecode_pipe2_flags "FILE *fp" "int flags" "int *rem"
95*9289f547SJohn Baldwin.Ft bool
96*9289f547SJohn Baldwin.Fn sysdecode_reboot_howto "FILE *fp" "int howto" "int *rem"
97*9289f547SJohn Baldwin.Ft bool
98*9289f547SJohn Baldwin.Fn sysdecode_rfork_flags "FILE *fp" "int flags" "int *rem"
99*9289f547SJohn Baldwin.Ft bool
100*9289f547SJohn Baldwin.Fn sysdecode_semget_flags "FILE *fp" "int flags" "int *rem"
101*9289f547SJohn Baldwin.Ft bool
102*9289f547SJohn Baldwin.Fn sysdecode_sendfile_flags "FILE *fp" "int flags" "int *rem"
103*9289f547SJohn Baldwin.Ft bool
104*9289f547SJohn Baldwin.Fn sysdecode_shmat_flags "FILE *fp" "int flags" "int *rem"
105*9289f547SJohn Baldwin.Ft bool
106*9289f547SJohn Baldwin.Fn sysdecode_socket_type "FILE *fp" "int type" "int *rem"
107*9289f547SJohn Baldwin.Ft bool
108*9289f547SJohn Baldwin.Fn sysdecode_thr_create_flags "FILE *fp" "int flags" "int *rem"
109*9289f547SJohn Baldwin.Ft bool
110*9289f547SJohn Baldwin.Fn sysdecode_umtx_cvwait_flags "FILE *fp" "u_long flags" "u_long *rem"
111*9289f547SJohn Baldwin.Ft bool
112*9289f547SJohn Baldwin.Fn sysdecode_umtx_rwlock_flags "FILE *fp" "u_long flags" "u_long *rem"
113*9289f547SJohn Baldwin.Ft bool
114*9289f547SJohn Baldwin.Fn sysdecode_vmprot "FILE *fp" "int type" "int *rem"
115*9289f547SJohn Baldwin.Ft bool
116*9289f547SJohn Baldwin.Fn sysdecode_wait4_options "FILE *fp" "int options" "int *rem"
117*9289f547SJohn Baldwin.Ft bool
118*9289f547SJohn Baldwin.Fn sysdecode_wait6_options "FILE *fp" "int options" "int *rem"
119*9289f547SJohn Baldwin.Sh DESCRIPTION
120*9289f547SJohn BaldwinThe
121*9289f547SJohn Baldwin.Nm
122*9289f547SJohn Baldwinfunctions are used to generate a text description of an integer value
123*9289f547SJohn Baldwinbuilt from a mask of bitfields.
124*9289f547SJohn BaldwinThe text description lists the C macros for field values joined by pipe
125*9289f547SJohn Baldwin.Sq |
126*9289f547SJohn Baldwincharacters matching the format used in C source code.
127*9289f547SJohn BaldwinMost of the values decoded by these functions are passed as arguments to
128*9289f547SJohn Baldwinsystem calls,
129*9289f547SJohn Baldwinthough some of these values are used internally in the kernel.
130*9289f547SJohn Baldwin.Pp
131*9289f547SJohn BaldwinEach function writes the text description to
132*9289f547SJohn Baldwin.Fa fp .
133*9289f547SJohn BaldwinThe second argument should contain the integer value to be decoded.
134*9289f547SJohn BaldwinThe
135*9289f547SJohn Baldwin.Fa rem
136*9289f547SJohn Baldwinargument is set to the value of any bits that were not decoded
137*9289f547SJohn Baldwin.Pq bit fields that do not have a corresponding C macro .
138*9289f547SJohn Baldwin.Fa rem
139*9289f547SJohn Baldwinmay be set to
140*9289f547SJohn Baldwin.Dv NULL
141*9289f547SJohn Baldwinif the caller does not need this value.
142*9289f547SJohn BaldwinEach function returns
143*9289f547SJohn Baldwin.Dv true
144*9289f547SJohn Baldwinif any bit fields in the value were decoded and
145*9289f547SJohn Baldwin.Dv false
146*9289f547SJohn Baldwinif no bit fields were decoded.
147*9289f547SJohn Baldwin.Pp
148*9289f547SJohn BaldwinMost of these functions decode an argument passed to a system call:
149*9289f547SJohn Baldwin.Bl -column "Fn sysdecode_flock_operation" "Xr cap_fcntls_limit 2"
150*9289f547SJohn Baldwin.It Sy Function Ta Sy System Call Ta Sy Argument
151*9289f547SJohn Baldwin.It Fn sysdecode_access_mode Ta Xr access 2 Ta Fa mode
152*9289f547SJohn Baldwin.It Fn sysdecode_cap_fcntlrights Ta Xr cap_fcntls_limit 2 Ta Fa fcntlrights
153*9289f547SJohn Baldwin.It Fn sysdecode_fileflags Ta Xr chflags 2 Ta Fa flags
154*9289f547SJohn Baldwin.It Fn sysdecode_filemode Ta Xr chmod 2 , Xr open 2 Ta mode
155*9289f547SJohn Baldwin.It Fn sysdecode_flock_operation Ta Xr flock 2 Ta Fa operation
156*9289f547SJohn Baldwin.It Fn sysdecode_getfsstat_flags Ta Xr getfsstatflags 2 Ta Fa flags
157*9289f547SJohn Baldwin.It Fn sysdecode_mlockall_flags Ta Xr mlockall 2 Ta Fa flags
158*9289f547SJohn Baldwin.It Fn sysdecode_mmap_flags Ta Xr mmap 2 Ta Fa flags
159*9289f547SJohn Baldwin.It Fn sysdecode_mmap_prot Ta Xr mmap 2 Ta Fa prot
160*9289f547SJohn Baldwin.It Fn sysdecode_mount_flags Ta Xr mount 2 Ta Fa flags
161*9289f547SJohn Baldwin.It Fn sysdecode_msg_flags Ta Xr recv 2 , Xr send 2 Ta Fa flags
162*9289f547SJohn Baldwin.It Fn sysdecode_msync_flags Ta Xr msync 2 Ta Fa flags
163*9289f547SJohn Baldwin.It Fn sysdecode_open_flags Ta Xr open 2 Ta Fa flags
164*9289f547SJohn Baldwin.It Fn sysdecode_pipe2_flags Ta Xr pipe2 Ta Fa flags
165*9289f547SJohn Baldwin.It Fn sysdecode_reboot_howto Ta Xr reboot 2 Ta Fa howto
166*9289f547SJohn Baldwin.It Fn sysdecode_rfork_flags Ta Xr rfork 2 Ta Fa flags
167*9289f547SJohn Baldwin.It Fn sysdecode_semget_flags Ta Xr semget 2 Ta Fa flags
168*9289f547SJohn Baldwin.It Fn sysdecode_sendfile_flags Ta Xr sendfile 2 Ta Fa flags
169*9289f547SJohn Baldwin.It Fn sysdecode_shmat_flags Ta Xr shmat 2 Ta Fa flags
170*9289f547SJohn Baldwin.It Fn sysdecode_socket_type Ta Xr socket 2 Ta Fa type
171*9289f547SJohn Baldwin.It Fn sysdecode_thr_create_flags Ta Xr thr_create 2 Ta Fa flags
172*9289f547SJohn Baldwin.It Fn sysdecode_wait4_options Ta Xr wait4 2 Ta Fa options
173*9289f547SJohn Baldwin.It Fn sysdecode_wait6_options Ta Xr wait6 2 Ta Fa options
174*9289f547SJohn Baldwin.El
175*9289f547SJohn Baldwin.Pp
176*9289f547SJohn BaldwinOther functions decode the values described below:
177*9289f547SJohn Baldwin.Bl -tag -width ".Fn sysdecode_umtx_cvwait_flags"
178*9289f547SJohn Baldwin.It Fn sysdecode_fcntl_fileflags
179*9289f547SJohn BaldwinThe file flags used with the
180*9289f547SJohn Baldwin.Dv F_GETFL
181*9289f547SJohn Baldwinand
182*9289f547SJohn Baldwin.Dv F_SETFL
183*9289f547SJohn Baldwin.Xr fcntl 2
184*9289f547SJohn Baldwincommands.
185*9289f547SJohn Baldwin.It Fn sysdecode_umtx_cvwait_flags
186*9289f547SJohn BaldwinThe
187*9289f547SJohn Baldwin.Fa val
188*9289f547SJohn Baldwinargument to
189*9289f547SJohn Baldwin.Xr _umtx_op 2
190*9289f547SJohn Baldwinfor
191*9289f547SJohn Baldwin.Dv UMTX_OP_CV_WAIT
192*9289f547SJohn Baldwinoperations.
193*9289f547SJohn Baldwin.It Fn sysdecode_umtx_rwlock_flags
194*9289f547SJohn BaldwinThe
195*9289f547SJohn Baldwin.Fa val
196*9289f547SJohn Baldwinargument to
197*9289f547SJohn Baldwin.Xr _umtx_op 2
198*9289f547SJohn Baldwinfor
199*9289f547SJohn Baldwin.Dv UMTX_OP_RW_RDLOCK
200*9289f547SJohn Baldwinoperations.
201*9289f547SJohn Baldwin.It Fn sysdecode_vmprot
202*9289f547SJohn BaldwinThe memory protection flags stored in
203*9289f547SJohn Baldwin.Vt vm_prot_t
204*9289f547SJohn Baldwinvariables.
205*9289f547SJohn Baldwin.El
206*9289f547SJohn Baldwin.Sh RETURN VALUES
207*9289f547SJohn BaldwinThe
208*9289f547SJohn Baldwin.Nm
209*9289f547SJohn Baldwinfunctions return
210*9289f547SJohn Baldwin.Dv true
211*9289f547SJohn Baldwinif any bit fields in the value were decoded and
212*9289f547SJohn Baldwin.Dv false
213*9289f547SJohn Baldwinif no bit fields were decoded.
214*9289f547SJohn Baldwin.Sh SEE ALSO
215*9289f547SJohn Baldwin.Xr sysdecode 3 ,
216*9289f547SJohn Baldwin.Xr sysdecode_enum 3
217