cap_ioctls_get (2)
Leading comments
Copyright (c) 2012 The FreeBSD Foundation All rights reserved. This documentation was written by Pawel Jakub Dawidek under sponsorship the FreeBSD Foundation. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above cop...
NAME
cap_ioctls_limit cap_ioctls_get - manage allowed ioctl commandsLIBRARY
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.