xref: /freebsd/lib/libsysdecode/sysdecode_mask.3 (revision bd23e71f91ceec5dfdffc28bbd0020849fdd20b4)
19289f547SJohn Baldwin.\"
29289f547SJohn Baldwin.\" Copyright (c) 2016 John Baldwin <jhb@FreeBSD.org>
39289f547SJohn Baldwin.\"
49289f547SJohn Baldwin.\" Redistribution and use in source and binary forms, with or without
59289f547SJohn Baldwin.\" modification, are permitted provided that the following conditions
69289f547SJohn Baldwin.\" are met:
79289f547SJohn Baldwin.\" 1. Redistributions of source code must retain the above copyright
89289f547SJohn Baldwin.\"    notice, this list of conditions and the following disclaimer.
99289f547SJohn Baldwin.\" 2. Redistributions in binary form must reproduce the above copyright
109289f547SJohn Baldwin.\"    notice, this list of conditions and the following disclaimer in the
119289f547SJohn Baldwin.\"    documentation and/or other materials provided with the distribution.
129289f547SJohn Baldwin.\"
139289f547SJohn Baldwin.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
149289f547SJohn Baldwin.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
159289f547SJohn Baldwin.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
169289f547SJohn Baldwin.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
179289f547SJohn Baldwin.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
189289f547SJohn Baldwin.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
199289f547SJohn Baldwin.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
209289f547SJohn Baldwin.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
219289f547SJohn Baldwin.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
229289f547SJohn Baldwin.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
239289f547SJohn Baldwin.\" SUCH DAMAGE.
249289f547SJohn Baldwin.\"
25*bd23e71fSKyle Evans.Dd February 29, 2024
269289f547SJohn Baldwin.Dt sysdecode_mask 3
279289f547SJohn Baldwin.Os
289289f547SJohn Baldwin.Sh NAME
299289f547SJohn Baldwin.Nm sysdecode_mask ,
309289f547SJohn Baldwin.Nm sysdecode_accessmode ,
3139a3a438SJohn Baldwin.Nm sysdecode_atflags ,
329289f547SJohn Baldwin.Nm sysdecode_capfcntlrights ,
33f3f3e3c4SMateusz Guzik.Nm sysdecode_close_range_flags ,
349289f547SJohn Baldwin.Nm sysdecode_fcntl_fileflags ,
359289f547SJohn Baldwin.Nm sysdecode_fileflags ,
369289f547SJohn Baldwin.Nm sysdecode_filemode ,
379289f547SJohn Baldwin.Nm sysdecode_flock_operation ,
389289f547SJohn Baldwin.Nm sysdecode_mlockall_flags ,
399289f547SJohn Baldwin.Nm sysdecode_mmap_flags ,
409289f547SJohn Baldwin.Nm sysdecode_mmap_prot ,
419289f547SJohn Baldwin.Nm sysdecode_mount_flags ,
429289f547SJohn Baldwin.Nm sysdecode_msg_flags ,
439289f547SJohn Baldwin.Nm sysdecode_msync_flags ,
449289f547SJohn Baldwin.Nm sysdecode_open_flags ,
459289f547SJohn Baldwin.Nm sysdecode_pipe2_flags ,
46*bd23e71fSKyle Evans.Nm sysdecode_pollfd_events ,
479289f547SJohn Baldwin.Nm sysdecode_reboot_howto ,
489289f547SJohn Baldwin.Nm sysdecode_rfork_flags ,
499289f547SJohn Baldwin.Nm sysdecode_semget_flags ,
509289f547SJohn Baldwin.Nm sysdecode_sendfile_flags ,
519289f547SJohn Baldwin.Nm sysdecode_shmat_flags ,
520faae8b9SMichael Tuexen.Nm sysdecode_sctp_nxt_flags ,
530faae8b9SMichael Tuexen.Nm sysdecode_sctp_rcv_flags ,
540faae8b9SMichael Tuexen.Nm sysdecode_sctp_snd_flags ,
559289f547SJohn Baldwin.Nm sysdecode_socket_type ,
569289f547SJohn Baldwin.Nm sysdecode_thr_create_flags ,
579289f547SJohn Baldwin.Nm sysdecode_umtx_cvwait_flags ,
589289f547SJohn Baldwin.Nm sysdecode_umtx_rwlock_flags ,
599289f547SJohn Baldwin.Nm sysdecode_vmprot ,
609289f547SJohn Baldwin.Nm sysdecode_wait4_options ,
619289f547SJohn Baldwin.Nm sysdecode_wait6_options
629289f547SJohn Baldwin.Nd print name of various bitmask values
639289f547SJohn Baldwin.Sh LIBRARY
649289f547SJohn Baldwin.Lb libsysdecode
659289f547SJohn Baldwin.Sh SYNOPSIS
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
7039a3a438SJohn Baldwin.Fn sysdecode_atflags "FILE *fp" "int flags" "int *rem"
7139a3a438SJohn Baldwin.Ft bool
729289f547SJohn Baldwin.Fn sysdecode_cap_fcntlrights "FILE *fp" "uint32_t rights" "uint32_t *rem"
739289f547SJohn Baldwin.Ft bool
74f3f3e3c4SMateusz Guzik.Fn sysdecode_close_range_flags "FILE *fp" "int flags" "int *rem"
75f3f3e3c4SMateusz Guzik.Ft bool
769289f547SJohn Baldwin.Fn sysdecode_fcntl_fileflags "FILE *fp" "int flags" "int *rem"
779289f547SJohn Baldwin.Ft bool
789289f547SJohn Baldwin.Fn sysdecode_fileflags "FILE *fp" "fflags_t flags" "fflags_t *rem"
799289f547SJohn Baldwin.Ft bool
809289f547SJohn Baldwin.Fn sysdecode_filemode "FILE *fp" "int mode" "int *rem"
819289f547SJohn Baldwin.Ft bool
829289f547SJohn Baldwin.Fn sysdecode_flock_operation "FILE *fp" "int operation" "int *rem"
839289f547SJohn Baldwin.Ft bool
849289f547SJohn Baldwin.Fn sysdecode_mlockall_flags "FILE *fp" "int flags" "int *rem"
859289f547SJohn Baldwin.Ft bool
869289f547SJohn Baldwin.Fn sysdecode_mmap_flags "FILE *fp" "int flags" "int *rem"
879289f547SJohn Baldwin.Ft bool
889289f547SJohn Baldwin.Fn sysdecode_mmap_prot "FILE *fp" "int prot" "int *rem"
899289f547SJohn Baldwin.Ft bool
909289f547SJohn Baldwin.Fn sysdecode_mount_flags "FILE *fp" "int flags" "int *rem"
919289f547SJohn Baldwin.Ft bool
929289f547SJohn Baldwin.Fn sysdecode_msg_flags "FILE *fp" "int flags" "int *rem"
939289f547SJohn Baldwin.Ft bool
949289f547SJohn Baldwin.Fn sysdecode_msync_flags "FILE *fp" "int flags" "int *rem"
959289f547SJohn Baldwin.Ft bool
969289f547SJohn Baldwin.Fn sysdecode_open_flags "FILE *fp" "int flags" "int *rem"
979289f547SJohn Baldwin.Ft bool
989289f547SJohn Baldwin.Fn sysdecode_pipe2_flags "FILE *fp" "int flags" "int *rem"
999289f547SJohn Baldwin.Ft bool
100*bd23e71fSKyle Evans.Fn sysdecode_pollfd_events "FILE *fp" "int flags" "int *rem"
101*bd23e71fSKyle Evans.Ft bool
1029289f547SJohn Baldwin.Fn sysdecode_reboot_howto "FILE *fp" "int howto" "int *rem"
1039289f547SJohn Baldwin.Ft bool
1049289f547SJohn Baldwin.Fn sysdecode_rfork_flags "FILE *fp" "int flags" "int *rem"
1059289f547SJohn Baldwin.Ft bool
1060faae8b9SMichael Tuexen.Fn sysdecode_sctp_nxt_flags "FILE *fp" "int flags" "int *rem"
1070faae8b9SMichael Tuexen.Ft bool
1080faae8b9SMichael Tuexen.Fn sysdecode_sctp_rcv_flags "FILE *fp" "int flags" "int *rem"
1090faae8b9SMichael Tuexen.Ft bool
1100faae8b9SMichael Tuexen.Fn sysdecode_sctp_snd_flags "FILE *fp" "int flags" "int *rem"
1110faae8b9SMichael Tuexen.Ft bool
1129289f547SJohn Baldwin.Fn sysdecode_semget_flags "FILE *fp" "int flags" "int *rem"
1139289f547SJohn Baldwin.Ft bool
1149289f547SJohn Baldwin.Fn sysdecode_sendfile_flags "FILE *fp" "int flags" "int *rem"
1159289f547SJohn Baldwin.Ft bool
1169289f547SJohn Baldwin.Fn sysdecode_shmat_flags "FILE *fp" "int flags" "int *rem"
1179289f547SJohn Baldwin.Ft bool
1189289f547SJohn Baldwin.Fn sysdecode_socket_type "FILE *fp" "int type" "int *rem"
1199289f547SJohn Baldwin.Ft bool
1209289f547SJohn Baldwin.Fn sysdecode_thr_create_flags "FILE *fp" "int flags" "int *rem"
1219289f547SJohn Baldwin.Ft bool
1229289f547SJohn Baldwin.Fn sysdecode_umtx_cvwait_flags "FILE *fp" "u_long flags" "u_long *rem"
1239289f547SJohn Baldwin.Ft bool
1249289f547SJohn Baldwin.Fn sysdecode_umtx_rwlock_flags "FILE *fp" "u_long flags" "u_long *rem"
1259289f547SJohn Baldwin.Ft bool
1269289f547SJohn Baldwin.Fn sysdecode_vmprot "FILE *fp" "int type" "int *rem"
1279289f547SJohn Baldwin.Ft bool
1289289f547SJohn Baldwin.Fn sysdecode_wait4_options "FILE *fp" "int options" "int *rem"
1299289f547SJohn Baldwin.Ft bool
1309289f547SJohn Baldwin.Fn sysdecode_wait6_options "FILE *fp" "int options" "int *rem"
1319289f547SJohn Baldwin.Sh DESCRIPTION
1329289f547SJohn BaldwinThe
1339289f547SJohn Baldwin.Nm
1349289f547SJohn Baldwinfunctions are used to generate a text description of an integer value
1359289f547SJohn Baldwinbuilt from a mask of bitfields.
1369289f547SJohn BaldwinThe text description lists the C macros for field values joined by pipe
1379289f547SJohn Baldwin.Sq |
1389289f547SJohn Baldwincharacters matching the format used in C source code.
1399289f547SJohn BaldwinMost of the values decoded by these functions are passed as arguments to
1409289f547SJohn Baldwinsystem calls,
1419289f547SJohn Baldwinthough some of these values are used internally in the kernel.
1429289f547SJohn Baldwin.Pp
1439289f547SJohn BaldwinEach function writes the text description to
1449289f547SJohn Baldwin.Fa fp .
1459289f547SJohn BaldwinThe second argument should contain the integer value to be decoded.
1469289f547SJohn BaldwinThe
1479289f547SJohn Baldwin.Fa rem
1489289f547SJohn Baldwinargument is set to the value of any bits that were not decoded
1499289f547SJohn Baldwin.Pq bit fields that do not have a corresponding C macro .
1509289f547SJohn Baldwin.Fa rem
1519289f547SJohn Baldwinmay be set to
1529289f547SJohn Baldwin.Dv NULL
1539289f547SJohn Baldwinif the caller does not need this value.
1549289f547SJohn BaldwinEach function returns
1559289f547SJohn Baldwin.Dv true
1569289f547SJohn Baldwinif any bit fields in the value were decoded and
1579289f547SJohn Baldwin.Dv false
1589289f547SJohn Baldwinif no bit fields were decoded.
1599289f547SJohn Baldwin.Pp
1609289f547SJohn BaldwinMost of these functions decode an argument passed to a system call:
1619289f547SJohn Baldwin.Bl -column "Fn sysdecode_flock_operation" "Xr cap_fcntls_limit 2"
1629289f547SJohn Baldwin.It Sy Function Ta Sy System Call Ta Sy Argument
1639289f547SJohn Baldwin.It Fn sysdecode_access_mode Ta Xr access 2 Ta Fa mode
16439a3a438SJohn Baldwin.It Fn sysdecode_atflags Ta Xr chflagsat 2 , Xr fstatat 2 Ta Fa atflag , Fa flag
1659289f547SJohn Baldwin.It Fn sysdecode_cap_fcntlrights Ta Xr cap_fcntls_limit 2 Ta Fa fcntlrights
1669289f547SJohn Baldwin.It Fn sysdecode_fileflags Ta Xr chflags 2 Ta Fa flags
1679289f547SJohn Baldwin.It Fn sysdecode_filemode Ta Xr chmod 2 , Xr open 2 Ta mode
1689289f547SJohn Baldwin.It Fn sysdecode_flock_operation Ta Xr flock 2 Ta Fa operation
1699289f547SJohn Baldwin.It Fn sysdecode_mlockall_flags Ta Xr mlockall 2 Ta Fa flags
1709289f547SJohn Baldwin.It Fn sysdecode_mmap_flags Ta Xr mmap 2 Ta Fa flags
1719289f547SJohn Baldwin.It Fn sysdecode_mmap_prot Ta Xr mmap 2 Ta Fa prot
1729289f547SJohn Baldwin.It Fn sysdecode_mount_flags Ta Xr mount 2 Ta Fa flags
1739289f547SJohn Baldwin.It Fn sysdecode_msg_flags Ta Xr recv 2 , Xr send 2 Ta Fa flags
1749289f547SJohn Baldwin.It Fn sysdecode_msync_flags Ta Xr msync 2 Ta Fa flags
1759289f547SJohn Baldwin.It Fn sysdecode_open_flags Ta Xr open 2 Ta Fa flags
1769289f547SJohn Baldwin.It Fn sysdecode_pipe2_flags Ta Xr pipe2 Ta Fa flags
1779289f547SJohn Baldwin.It Fn sysdecode_reboot_howto Ta Xr reboot 2 Ta Fa howto
1789289f547SJohn Baldwin.It Fn sysdecode_rfork_flags Ta Xr rfork 2 Ta Fa flags
1799289f547SJohn Baldwin.It Fn sysdecode_semget_flags Ta Xr semget 2 Ta Fa flags
1809289f547SJohn Baldwin.It Fn sysdecode_sendfile_flags Ta Xr sendfile 2 Ta Fa flags
1819289f547SJohn Baldwin.It Fn sysdecode_shmat_flags Ta Xr shmat 2 Ta Fa flags
1829289f547SJohn Baldwin.It Fn sysdecode_socket_type Ta Xr socket 2 Ta Fa type
1839289f547SJohn Baldwin.It Fn sysdecode_thr_create_flags Ta Xr thr_create 2 Ta Fa flags
1849289f547SJohn Baldwin.It Fn sysdecode_wait4_options Ta Xr wait4 2 Ta Fa options
1859289f547SJohn Baldwin.It Fn sysdecode_wait6_options Ta Xr wait6 2 Ta Fa options
1869289f547SJohn Baldwin.El
1879289f547SJohn Baldwin.Pp
1889289f547SJohn BaldwinOther functions decode the values described below:
1899289f547SJohn Baldwin.Bl -tag -width ".Fn sysdecode_umtx_cvwait_flags"
1909289f547SJohn Baldwin.It Fn sysdecode_fcntl_fileflags
1919289f547SJohn BaldwinThe file flags used with the
1929289f547SJohn Baldwin.Dv F_GETFL
1939289f547SJohn Baldwinand
1949289f547SJohn Baldwin.Dv F_SETFL
1959289f547SJohn Baldwin.Xr fcntl 2
1969289f547SJohn Baldwincommands.
197*bd23e71fSKyle Evans.It Fn sysdecode_pollfd_events
198*bd23e71fSKyle EvansThe
199*bd23e71fSKyle Evans.Fa events
200*bd23e71fSKyle Evansand
201*bd23e71fSKyle Evans.Fa revents
202*bd23e71fSKyle Evansmembers of a
203*bd23e71fSKyle Evans.Vt struct pollfd .
2040faae8b9SMichael Tuexen.It Fn sysdecode_sctp_nxt_flags
2050faae8b9SMichael TuexenThe
2060faae8b9SMichael Tuexen.Fa nxt_flags
2070faae8b9SMichael Tuexenmember of a
2080faae8b9SMichael Tuexen.Vt struct sctp_nxtinfo .
2090faae8b9SMichael Tuexen.It Fn sysdecode_sctp_rcv_flags
2100faae8b9SMichael TuexenThe
2110faae8b9SMichael Tuexen.Fa rcv_flags
2120faae8b9SMichael Tuexenmember of a
2130faae8b9SMichael Tuexen.Vt struct sctp_rcvinfo .
2140faae8b9SMichael Tuexen.It Fn sysdecode_sctp_snd_flags
2150faae8b9SMichael TuexenThe
2160faae8b9SMichael Tuexen.Fa snd_flags
2170faae8b9SMichael Tuexenmember of a
2180faae8b9SMichael Tuexen.Vt struct sctp_sndinfo .
2199289f547SJohn Baldwin.It Fn sysdecode_umtx_cvwait_flags
2209289f547SJohn BaldwinThe
2219289f547SJohn Baldwin.Fa val
2229289f547SJohn Baldwinargument to
2239289f547SJohn Baldwin.Xr _umtx_op 2
2249289f547SJohn Baldwinfor
2259289f547SJohn Baldwin.Dv UMTX_OP_CV_WAIT
2269289f547SJohn Baldwinoperations.
2279289f547SJohn Baldwin.It Fn sysdecode_umtx_rwlock_flags
2289289f547SJohn BaldwinThe
2299289f547SJohn Baldwin.Fa val
2309289f547SJohn Baldwinargument to
2319289f547SJohn Baldwin.Xr _umtx_op 2
2329289f547SJohn Baldwinfor
2339289f547SJohn Baldwin.Dv UMTX_OP_RW_RDLOCK
2349289f547SJohn Baldwinoperations.
2359289f547SJohn Baldwin.It Fn sysdecode_vmprot
2369289f547SJohn BaldwinThe memory protection flags stored in
2379289f547SJohn Baldwin.Vt vm_prot_t
2389289f547SJohn Baldwinvariables.
2399289f547SJohn Baldwin.El
2409289f547SJohn Baldwin.Sh RETURN VALUES
2419289f547SJohn BaldwinThe
2429289f547SJohn Baldwin.Nm
2439289f547SJohn Baldwinfunctions return
2449289f547SJohn Baldwin.Dv true
2459289f547SJohn Baldwinif any bit fields in the value were decoded and
2469289f547SJohn Baldwin.Dv false
2479289f547SJohn Baldwinif no bit fields were decoded.
2489289f547SJohn Baldwin.Sh SEE ALSO
2499289f547SJohn Baldwin.Xr sysdecode 3 ,
2509289f547SJohn Baldwin.Xr sysdecode_enum 3
251