19289f547SJohn Baldwin.\" 29289f547SJohn Baldwin.\" Copyright (c) 2016 John Baldwin <[email protected]> 39289f547SJohn Baldwin.\" All rights reserved. 49289f547SJohn Baldwin.\" 59289f547SJohn Baldwin.\" Redistribution and use in source and binary forms, with or without 69289f547SJohn Baldwin.\" modification, are permitted provided that the following conditions 79289f547SJohn Baldwin.\" are met: 89289f547SJohn Baldwin.\" 1. Redistributions of source code must retain the above copyright 99289f547SJohn Baldwin.\" notice, this list of conditions and the following disclaimer. 109289f547SJohn Baldwin.\" 2. Redistributions in binary form must reproduce the above copyright 119289f547SJohn Baldwin.\" notice, this list of conditions and the following disclaimer in the 129289f547SJohn Baldwin.\" documentation and/or other materials provided with the distribution. 139289f547SJohn Baldwin.\" 149289f547SJohn Baldwin.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 159289f547SJohn Baldwin.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 169289f547SJohn Baldwin.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 179289f547SJohn Baldwin.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 189289f547SJohn Baldwin.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 199289f547SJohn Baldwin.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 209289f547SJohn Baldwin.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 219289f547SJohn Baldwin.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 229289f547SJohn Baldwin.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 239289f547SJohn Baldwin.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 249289f547SJohn Baldwin.\" SUCH DAMAGE. 259289f547SJohn Baldwin.\" 269289f547SJohn Baldwin.\" $FreeBSD$ 279289f547SJohn Baldwin.\" 28*39a3a438SJohn Baldwin.Dd September 3, 2017 299289f547SJohn Baldwin.Dt sysdecode_mask 3 309289f547SJohn Baldwin.Os 319289f547SJohn Baldwin.Sh NAME 329289f547SJohn Baldwin.Nm sysdecode_mask , 339289f547SJohn Baldwin.Nm sysdecode_accessmode , 34*39a3a438SJohn Baldwin.Nm sysdecode_atflags , 359289f547SJohn Baldwin.Nm sysdecode_capfcntlrights , 369289f547SJohn Baldwin.Nm sysdecode_fcntl_fileflags , 379289f547SJohn Baldwin.Nm sysdecode_fileflags , 389289f547SJohn Baldwin.Nm sysdecode_filemode , 399289f547SJohn Baldwin.Nm sysdecode_flock_operation , 409289f547SJohn Baldwin.Nm sysdecode_mlockall_flags , 419289f547SJohn Baldwin.Nm sysdecode_mmap_flags , 429289f547SJohn Baldwin.Nm sysdecode_mmap_prot , 439289f547SJohn Baldwin.Nm sysdecode_mount_flags , 449289f547SJohn Baldwin.Nm sysdecode_msg_flags , 459289f547SJohn Baldwin.Nm sysdecode_msync_flags , 469289f547SJohn Baldwin.Nm sysdecode_open_flags , 479289f547SJohn Baldwin.Nm sysdecode_pipe2_flags , 489289f547SJohn Baldwin.Nm sysdecode_reboot_howto , 499289f547SJohn Baldwin.Nm sysdecode_rfork_flags , 509289f547SJohn Baldwin.Nm sysdecode_semget_flags , 519289f547SJohn Baldwin.Nm sysdecode_sendfile_flags , 529289f547SJohn Baldwin.Nm sysdecode_shmat_flags , 539289f547SJohn Baldwin.Nm sysdecode_socket_type , 549289f547SJohn Baldwin.Nm sysdecode_thr_create_flags , 559289f547SJohn Baldwin.Nm sysdecode_umtx_cvwait_flags , 569289f547SJohn Baldwin.Nm sysdecode_umtx_rwlock_flags , 579289f547SJohn Baldwin.Nm sysdecode_vmprot , 589289f547SJohn Baldwin.Nm sysdecode_wait4_options , 599289f547SJohn Baldwin.Nm sysdecode_wait6_options 609289f547SJohn Baldwin.Nd print name of various bitmask values 619289f547SJohn Baldwin.Sh LIBRARY 629289f547SJohn Baldwin.Lb libsysdecode 639289f547SJohn Baldwin.Sh SYNOPSIS 649289f547SJohn Baldwin.In sys/types.h 659289f547SJohn Baldwin.In stdbool.h 669289f547SJohn Baldwin.In sysdecode.h 679289f547SJohn Baldwin.Ft bool 689289f547SJohn Baldwin.Fn sysdecode_access_mode "FILE *fp" "int mode" "int *rem" 699289f547SJohn Baldwin.Ft bool 70*39a3a438SJohn Baldwin.Fn sysdecode_atflags "FILE *fp" "int flags" "int *rem" 71*39a3a438SJohn Baldwin.Ft bool 729289f547SJohn Baldwin.Fn sysdecode_cap_fcntlrights "FILE *fp" "uint32_t rights" "uint32_t *rem" 739289f547SJohn Baldwin.Ft bool 749289f547SJohn Baldwin.Fn sysdecode_fcntl_fileflags "FILE *fp" "int flags" "int *rem" 759289f547SJohn Baldwin.Ft bool 769289f547SJohn Baldwin.Fn sysdecode_fileflags "FILE *fp" "fflags_t flags" "fflags_t *rem" 779289f547SJohn Baldwin.Ft bool 789289f547SJohn Baldwin.Fn sysdecode_filemode "FILE *fp" "int mode" "int *rem" 799289f547SJohn Baldwin.Ft bool 809289f547SJohn Baldwin.Fn sysdecode_flock_operation "FILE *fp" "int operation" "int *rem" 819289f547SJohn Baldwin.Ft bool 829289f547SJohn Baldwin.Fn sysdecode_mlockall_flags "FILE *fp" "int flags" "int *rem" 839289f547SJohn Baldwin.Ft bool 849289f547SJohn Baldwin.Fn sysdecode_mmap_flags "FILE *fp" "int flags" "int *rem" 859289f547SJohn Baldwin.Ft bool 869289f547SJohn Baldwin.Fn sysdecode_mmap_prot "FILE *fp" "int prot" "int *rem" 879289f547SJohn Baldwin.Ft bool 889289f547SJohn Baldwin.Fn sysdecode_mount_flags "FILE *fp" "int flags" "int *rem" 899289f547SJohn Baldwin.Ft bool 909289f547SJohn Baldwin.Fn sysdecode_msg_flags "FILE *fp" "int flags" "int *rem" 919289f547SJohn Baldwin.Ft bool 929289f547SJohn Baldwin.Fn sysdecode_msync_flags "FILE *fp" "int flags" "int *rem" 939289f547SJohn Baldwin.Ft bool 949289f547SJohn Baldwin.Fn sysdecode_open_flags "FILE *fp" "int flags" "int *rem" 959289f547SJohn Baldwin.Ft bool 969289f547SJohn Baldwin.Fn sysdecode_pipe2_flags "FILE *fp" "int flags" "int *rem" 979289f547SJohn Baldwin.Ft bool 989289f547SJohn Baldwin.Fn sysdecode_reboot_howto "FILE *fp" "int howto" "int *rem" 999289f547SJohn Baldwin.Ft bool 1009289f547SJohn Baldwin.Fn sysdecode_rfork_flags "FILE *fp" "int flags" "int *rem" 1019289f547SJohn Baldwin.Ft bool 1029289f547SJohn Baldwin.Fn sysdecode_semget_flags "FILE *fp" "int flags" "int *rem" 1039289f547SJohn Baldwin.Ft bool 1049289f547SJohn Baldwin.Fn sysdecode_sendfile_flags "FILE *fp" "int flags" "int *rem" 1059289f547SJohn Baldwin.Ft bool 1069289f547SJohn Baldwin.Fn sysdecode_shmat_flags "FILE *fp" "int flags" "int *rem" 1079289f547SJohn Baldwin.Ft bool 1089289f547SJohn Baldwin.Fn sysdecode_socket_type "FILE *fp" "int type" "int *rem" 1099289f547SJohn Baldwin.Ft bool 1109289f547SJohn Baldwin.Fn sysdecode_thr_create_flags "FILE *fp" "int flags" "int *rem" 1119289f547SJohn Baldwin.Ft bool 1129289f547SJohn Baldwin.Fn sysdecode_umtx_cvwait_flags "FILE *fp" "u_long flags" "u_long *rem" 1139289f547SJohn Baldwin.Ft bool 1149289f547SJohn Baldwin.Fn sysdecode_umtx_rwlock_flags "FILE *fp" "u_long flags" "u_long *rem" 1159289f547SJohn Baldwin.Ft bool 1169289f547SJohn Baldwin.Fn sysdecode_vmprot "FILE *fp" "int type" "int *rem" 1179289f547SJohn Baldwin.Ft bool 1189289f547SJohn Baldwin.Fn sysdecode_wait4_options "FILE *fp" "int options" "int *rem" 1199289f547SJohn Baldwin.Ft bool 1209289f547SJohn Baldwin.Fn sysdecode_wait6_options "FILE *fp" "int options" "int *rem" 1219289f547SJohn Baldwin.Sh DESCRIPTION 1229289f547SJohn BaldwinThe 1239289f547SJohn Baldwin.Nm 1249289f547SJohn Baldwinfunctions are used to generate a text description of an integer value 1259289f547SJohn Baldwinbuilt from a mask of bitfields. 1269289f547SJohn BaldwinThe text description lists the C macros for field values joined by pipe 1279289f547SJohn Baldwin.Sq | 1289289f547SJohn Baldwincharacters matching the format used in C source code. 1299289f547SJohn BaldwinMost of the values decoded by these functions are passed as arguments to 1309289f547SJohn Baldwinsystem calls, 1319289f547SJohn Baldwinthough some of these values are used internally in the kernel. 1329289f547SJohn Baldwin.Pp 1339289f547SJohn BaldwinEach function writes the text description to 1349289f547SJohn Baldwin.Fa fp . 1359289f547SJohn BaldwinThe second argument should contain the integer value to be decoded. 1369289f547SJohn BaldwinThe 1379289f547SJohn Baldwin.Fa rem 1389289f547SJohn Baldwinargument is set to the value of any bits that were not decoded 1399289f547SJohn Baldwin.Pq bit fields that do not have a corresponding C macro . 1409289f547SJohn Baldwin.Fa rem 1419289f547SJohn Baldwinmay be set to 1429289f547SJohn Baldwin.Dv NULL 1439289f547SJohn Baldwinif the caller does not need this value. 1449289f547SJohn BaldwinEach function returns 1459289f547SJohn Baldwin.Dv true 1469289f547SJohn Baldwinif any bit fields in the value were decoded and 1479289f547SJohn Baldwin.Dv false 1489289f547SJohn Baldwinif no bit fields were decoded. 1499289f547SJohn Baldwin.Pp 1509289f547SJohn BaldwinMost of these functions decode an argument passed to a system call: 1519289f547SJohn Baldwin.Bl -column "Fn sysdecode_flock_operation" "Xr cap_fcntls_limit 2" 1529289f547SJohn Baldwin.It Sy Function Ta Sy System Call Ta Sy Argument 1539289f547SJohn Baldwin.It Fn sysdecode_access_mode Ta Xr access 2 Ta Fa mode 154*39a3a438SJohn Baldwin.It Fn sysdecode_atflags Ta Xr chflagsat 2 , Xr fstatat 2 Ta Fa atflag , Fa flag 1559289f547SJohn Baldwin.It Fn sysdecode_cap_fcntlrights Ta Xr cap_fcntls_limit 2 Ta Fa fcntlrights 1569289f547SJohn Baldwin.It Fn sysdecode_fileflags Ta Xr chflags 2 Ta Fa flags 1579289f547SJohn Baldwin.It Fn sysdecode_filemode Ta Xr chmod 2 , Xr open 2 Ta mode 1589289f547SJohn Baldwin.It Fn sysdecode_flock_operation Ta Xr flock 2 Ta Fa operation 1599289f547SJohn Baldwin.It Fn sysdecode_mlockall_flags Ta Xr mlockall 2 Ta Fa flags 1609289f547SJohn Baldwin.It Fn sysdecode_mmap_flags Ta Xr mmap 2 Ta Fa flags 1619289f547SJohn Baldwin.It Fn sysdecode_mmap_prot Ta Xr mmap 2 Ta Fa prot 1629289f547SJohn Baldwin.It Fn sysdecode_mount_flags Ta Xr mount 2 Ta Fa flags 1639289f547SJohn Baldwin.It Fn sysdecode_msg_flags Ta Xr recv 2 , Xr send 2 Ta Fa flags 1649289f547SJohn Baldwin.It Fn sysdecode_msync_flags Ta Xr msync 2 Ta Fa flags 1659289f547SJohn Baldwin.It Fn sysdecode_open_flags Ta Xr open 2 Ta Fa flags 1669289f547SJohn Baldwin.It Fn sysdecode_pipe2_flags Ta Xr pipe2 Ta Fa flags 1679289f547SJohn Baldwin.It Fn sysdecode_reboot_howto Ta Xr reboot 2 Ta Fa howto 1689289f547SJohn Baldwin.It Fn sysdecode_rfork_flags Ta Xr rfork 2 Ta Fa flags 1699289f547SJohn Baldwin.It Fn sysdecode_semget_flags Ta Xr semget 2 Ta Fa flags 1709289f547SJohn Baldwin.It Fn sysdecode_sendfile_flags Ta Xr sendfile 2 Ta Fa flags 1719289f547SJohn Baldwin.It Fn sysdecode_shmat_flags Ta Xr shmat 2 Ta Fa flags 1729289f547SJohn Baldwin.It Fn sysdecode_socket_type Ta Xr socket 2 Ta Fa type 1739289f547SJohn Baldwin.It Fn sysdecode_thr_create_flags Ta Xr thr_create 2 Ta Fa flags 1749289f547SJohn Baldwin.It Fn sysdecode_wait4_options Ta Xr wait4 2 Ta Fa options 1759289f547SJohn Baldwin.It Fn sysdecode_wait6_options Ta Xr wait6 2 Ta Fa options 1769289f547SJohn Baldwin.El 1779289f547SJohn Baldwin.Pp 1789289f547SJohn BaldwinOther functions decode the values described below: 1799289f547SJohn Baldwin.Bl -tag -width ".Fn sysdecode_umtx_cvwait_flags" 1809289f547SJohn Baldwin.It Fn sysdecode_fcntl_fileflags 1819289f547SJohn BaldwinThe file flags used with the 1829289f547SJohn Baldwin.Dv F_GETFL 1839289f547SJohn Baldwinand 1849289f547SJohn Baldwin.Dv F_SETFL 1859289f547SJohn Baldwin.Xr fcntl 2 1869289f547SJohn Baldwincommands. 1879289f547SJohn Baldwin.It Fn sysdecode_umtx_cvwait_flags 1889289f547SJohn BaldwinThe 1899289f547SJohn Baldwin.Fa val 1909289f547SJohn Baldwinargument to 1919289f547SJohn Baldwin.Xr _umtx_op 2 1929289f547SJohn Baldwinfor 1939289f547SJohn Baldwin.Dv UMTX_OP_CV_WAIT 1949289f547SJohn Baldwinoperations. 1959289f547SJohn Baldwin.It Fn sysdecode_umtx_rwlock_flags 1969289f547SJohn BaldwinThe 1979289f547SJohn Baldwin.Fa val 1989289f547SJohn Baldwinargument to 1999289f547SJohn Baldwin.Xr _umtx_op 2 2009289f547SJohn Baldwinfor 2019289f547SJohn Baldwin.Dv UMTX_OP_RW_RDLOCK 2029289f547SJohn Baldwinoperations. 2039289f547SJohn Baldwin.It Fn sysdecode_vmprot 2049289f547SJohn BaldwinThe memory protection flags stored in 2059289f547SJohn Baldwin.Vt vm_prot_t 2069289f547SJohn Baldwinvariables. 2079289f547SJohn Baldwin.El 2089289f547SJohn Baldwin.Sh RETURN VALUES 2099289f547SJohn BaldwinThe 2109289f547SJohn Baldwin.Nm 2119289f547SJohn Baldwinfunctions return 2129289f547SJohn Baldwin.Dv true 2139289f547SJohn Baldwinif any bit fields in the value were decoded and 2149289f547SJohn Baldwin.Dv false 2159289f547SJohn Baldwinif no bit fields were decoded. 2169289f547SJohn Baldwin.Sh SEE ALSO 2179289f547SJohn Baldwin.Xr sysdecode 3 , 2189289f547SJohn Baldwin.Xr sysdecode_enum 3 219