Other Alias
cap_ioctls_limitLIBRARY
Lb libcSYNOPSIS
In sys/capability.h Ft int Fn cap_ioctls_limit int fd const unsigned long *cmds size_t ncmds Ft ssize_t Fn cap_ioctls_get int fd unsigned long *cmds size_t maxcmdsDESCRIPTION
If a file descriptor is granted the CAP_IOCTL capability right, the list of allowed ioctl(2) commands can be selectively reduced (but never expanded) with the Fn cap_ioctls_limit system call. The Fa cmds argument is an array of ioctl(2) commands and the Fa ncmds argument specifies the number of elements in the array. There can be up to 256 elements in the array.The list of allowed ioctl commands for a given file descriptor can be obtained with the Fn cap_ioctls_get system call. The Fa cmds argument points at memory that can hold up to Fa maxcmds values. The function populates the provided buffer with up to Fa maxcmds elements, but always returns the total number of ioctl commands allowed for the given file descriptor. The total number of ioctls commands for the given file descriptor can be obtained by passing NULL as the Fa cmds argument and 0 as the Fa maxcmds argument. If all ioctl commands are allowed ( CAP_IOCTL capability right is assigned to the file descriptor and the Fn cap_ioctls_limit system call was never called for this file descriptor), the Fn cap_ioctls_get system call will return CAP_IOCTLS_ALL and won't modify the buffer pointed to by the Fa cmds argument.
RETURN VALUES
Rv -std cap_ioctls_limitThe Fn cap_ioctls_get function, if successful, returns the total number of allowed ioctl commands or the value CAP_IOCTLS_ALL if all ioctls commands are allowed. On failure the value -1 is returned and the global variable errno is set to indicate the error.
ERRORS
Fn cap_ioctls_limit succeeds unless:- Bq Er EBADF
- The Fa fd argument is not a valid descriptor.
- Bq Er EFAULT
- The Fa cmds argument points at an invalid address.
- Bq Er EINVAL
- The Fa ncmds argument is greater than 256
- Bq Er ENOTCAPABLE
- Fa cmds would expand the list of allowed ioctl(2) commands.
Fn cap_ioctls_get succeeds unless:
- Bq Er EBADF
- The Fa fd argument is not a valid descriptor.
- Bq Er EFAULT
- The Fa cmds argument points at invalid address.
HISTORY
Support for capabilities and capabilities mode was developed as part of the TrustedBSD Project.AUTHORS
This function was created by An Pawel Jakub Dawidek Aq [email protected] under sponsorship of the FreeBSD Foundation.