| 222 | } |
| 223 | |
| 224 | static bool |
| 225 | cap_rights_is_vset(const cap_rights_t *rights, va_list ap) |
| 226 | { |
| 227 | uint64_t right; |
| 228 | int i, n __unused; |
| 229 | |
| 230 | assert(CAPVER(rights) == CAP_RIGHTS_VERSION_00); |
| 231 | |
| 232 | n = CAPARSIZE(rights); |
| 233 | assert(n >= CAPARSIZE_MIN && n <= CAPARSIZE_MAX); |
| 234 | |
| 235 | for (;;) { |
| 236 | right = (uint64_t)va_arg(ap, unsigned long long); |
| 237 | if (right == 0) |
| 238 | break; |
| 239 | assert(CAPRVER(right) == 0); |
| 240 | i = right_to_index(right); |
| 241 | assert(i >= 0); |
| 242 | assert(i < n); |
| 243 | assert(CAPIDXBIT(rights->cr_rights[i]) == CAPIDXBIT(right)); |
| 244 | if ((rights->cr_rights[i] & right) != right) |
| 245 | return (false); |
| 246 | } |
| 247 | |
| 248 | return (true); |
| 249 | } |
| 250 | |
| 251 | cap_rights_t * |
| 252 | __cap_rights_init(int version, cap_rights_t *rights, ...) |
no test coverage detected