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