Lines Matching refs:mb

156 biba_free(struct mac_biba *mb)  in biba_free()  argument
159 if (mb != NULL) in biba_free()
160 uma_zfree(zone_biba, mb); in biba_free()
166 biba_atmostflags(struct mac_biba *mb, int flags) in biba_atmostflags() argument
169 if ((mb->mb_flags & flags) != mb->mb_flags) in biba_atmostflags()
227 biba_subject_dominate_high(struct mac_biba *mb) in biba_subject_dominate_high() argument
231 KASSERT((mb->mb_flags & MAC_BIBA_FLAG_EFFECTIVE) != 0, in biba_subject_dominate_high()
233 element = &mb->mb_effective; in biba_subject_dominate_high()
301 biba_contains_equal(struct mac_biba *mb) in biba_contains_equal() argument
304 if (mb->mb_flags & MAC_BIBA_FLAG_EFFECTIVE) { in biba_contains_equal()
305 if (mb->mb_effective.mbe_type == MAC_BIBA_TYPE_EQUAL) in biba_contains_equal()
309 if (mb->mb_flags & MAC_BIBA_FLAG_RANGE) { in biba_contains_equal()
310 if (mb->mb_rangelow.mbe_type == MAC_BIBA_TYPE_EQUAL) in biba_contains_equal()
312 if (mb->mb_rangehigh.mbe_type == MAC_BIBA_TYPE_EQUAL) in biba_contains_equal()
320 biba_subject_privileged(struct mac_biba *mb) in biba_subject_privileged() argument
323 KASSERT((mb->mb_flags & MAC_BIBA_FLAGS_BOTH) == MAC_BIBA_FLAGS_BOTH, in biba_subject_privileged()
327 if (mb->mb_effective.mbe_type == MAC_BIBA_TYPE_EQUAL) in biba_subject_privileged()
331 if (mb->mb_rangelow.mbe_type == MAC_BIBA_TYPE_EQUAL || in biba_subject_privileged()
332 mb->mb_rangehigh.mbe_type == MAC_BIBA_TYPE_EQUAL) in biba_subject_privileged()
336 if (mb->mb_rangelow.mbe_type == MAC_BIBA_TYPE_LOW && in biba_subject_privileged()
337 mb->mb_rangehigh.mbe_type == MAC_BIBA_TYPE_HIGH) in biba_subject_privileged()
345 biba_high_effective(struct mac_biba *mb) in biba_high_effective() argument
348 KASSERT((mb->mb_flags & MAC_BIBA_FLAG_EFFECTIVE) != 0, in biba_high_effective()
351 return (mb->mb_effective.mbe_type == MAC_BIBA_TYPE_HIGH); in biba_high_effective()
355 biba_valid(struct mac_biba *mb) in biba_valid() argument
358 if (mb->mb_flags & MAC_BIBA_FLAG_EFFECTIVE) { in biba_valid()
359 switch (mb->mb_effective.mbe_type) { in biba_valid()
366 if (mb->mb_effective.mbe_grade != 0 || in biba_valid()
368 mb->mb_effective.mbe_compartments)) in biba_valid()
376 if (mb->mb_effective.mbe_type != MAC_BIBA_TYPE_UNDEF) in biba_valid()
380 if (mb->mb_flags & MAC_BIBA_FLAG_RANGE) { in biba_valid()
381 switch (mb->mb_rangelow.mbe_type) { in biba_valid()
388 if (mb->mb_rangelow.mbe_grade != 0 || in biba_valid()
390 mb->mb_rangelow.mbe_compartments)) in biba_valid()
398 switch (mb->mb_rangehigh.mbe_type) { in biba_valid()
405 if (mb->mb_rangehigh.mbe_grade != 0 || in biba_valid()
407 mb->mb_rangehigh.mbe_compartments)) in biba_valid()
414 if (!biba_dominate_element(&mb->mb_rangehigh, in biba_valid()
415 &mb->mb_rangelow)) in biba_valid()
418 if (mb->mb_rangelow.mbe_type != MAC_BIBA_TYPE_UNDEF || in biba_valid()
419 mb->mb_rangehigh.mbe_type != MAC_BIBA_TYPE_UNDEF) in biba_valid()
427 biba_set_range(struct mac_biba *mb, u_short typelow, u_short gradelow, in biba_set_range() argument
432 mb->mb_rangelow.mbe_type = typelow; in biba_set_range()
433 mb->mb_rangelow.mbe_grade = gradelow; in biba_set_range()
435 memcpy(mb->mb_rangelow.mbe_compartments, compartmentslow, in biba_set_range()
436 sizeof(mb->mb_rangelow.mbe_compartments)); in biba_set_range()
437 mb->mb_rangehigh.mbe_type = typehigh; in biba_set_range()
438 mb->mb_rangehigh.mbe_grade = gradehigh; in biba_set_range()
440 memcpy(mb->mb_rangehigh.mbe_compartments, compartmentshigh, in biba_set_range()
441 sizeof(mb->mb_rangehigh.mbe_compartments)); in biba_set_range()
442 mb->mb_flags |= MAC_BIBA_FLAG_RANGE; in biba_set_range()
446 biba_set_effective(struct mac_biba *mb, u_short type, u_short grade, in biba_set_effective() argument
450 mb->mb_effective.mbe_type = type; in biba_set_effective()
451 mb->mb_effective.mbe_grade = grade; in biba_set_effective()
453 memcpy(mb->mb_effective.mbe_compartments, compartments, in biba_set_effective()
454 sizeof(mb->mb_effective.mbe_compartments)); in biba_set_effective()
455 mb->mb_flags |= MAC_BIBA_FLAG_EFFECTIVE; in biba_set_effective()
586 biba_to_string(struct sbuf *sb, struct mac_biba *mb) in biba_to_string() argument
589 if (mb->mb_flags & MAC_BIBA_FLAG_EFFECTIVE) { in biba_to_string()
590 if (biba_element_to_string(sb, &mb->mb_effective) == -1) in biba_to_string()
594 if (mb->mb_flags & MAC_BIBA_FLAG_RANGE) { in biba_to_string()
598 if (biba_element_to_string(sb, &mb->mb_rangelow) == -1) in biba_to_string()
604 if (biba_element_to_string(sb, &mb->mb_rangehigh) == -1) in biba_to_string()
618 struct mac_biba *mb; in biba_externalize_label() local
625 mb = SLOT(label); in biba_externalize_label()
626 return (biba_to_string(sb, mb)); in biba_externalize_label()
686 biba_parse(struct mac_biba *mb, char *string) in biba_parse() argument
713 bzero(mb, sizeof(*mb)); in biba_parse()
715 error = biba_parse_element(&mb->mb_effective, effective); in biba_parse()
718 mb->mb_flags |= MAC_BIBA_FLAG_EFFECTIVE; in biba_parse()
722 error = biba_parse_element(&mb->mb_rangelow, rangelow); in biba_parse()
725 error = biba_parse_element(&mb->mb_rangehigh, rangehigh); in biba_parse()
728 mb->mb_flags |= MAC_BIBA_FLAG_RANGE; in biba_parse()
731 error = biba_valid(mb); in biba_parse()
742 struct mac_biba *mb, mb_temp; in biba_internalize_label() local
754 mb = SLOT(label); in biba_internalize_label()
755 *mb = mb_temp; in biba_internalize_label()
941 struct mac_biba *mb; in biba_devfs_create_device() local
945 mb = SLOT(delabel); in biba_devfs_create_device()
959 biba_set_effective(mb, biba_type, 0, NULL); in biba_devfs_create_device()
966 struct mac_biba *mb; in biba_devfs_create_directory() local
968 mb = SLOT(delabel); in biba_devfs_create_directory()
970 biba_set_effective(mb, MAC_BIBA_TYPE_HIGH, 0, NULL); in biba_devfs_create_directory()