Lines Matching refs:mb
158 biba_free(struct mac_biba *mb) in biba_free() argument
161 if (mb != NULL) in biba_free()
162 uma_zfree(zone_biba, mb); in biba_free()
168 biba_atmostflags(struct mac_biba *mb, int flags) in biba_atmostflags() argument
171 if ((mb->mb_flags & flags) != mb->mb_flags) in biba_atmostflags()
229 biba_subject_dominate_high(struct mac_biba *mb) in biba_subject_dominate_high() argument
233 KASSERT((mb->mb_flags & MAC_BIBA_FLAG_EFFECTIVE) != 0, in biba_subject_dominate_high()
235 element = &mb->mb_effective; in biba_subject_dominate_high()
303 biba_contains_equal(struct mac_biba *mb) in biba_contains_equal() argument
306 if (mb->mb_flags & MAC_BIBA_FLAG_EFFECTIVE) { in biba_contains_equal()
307 if (mb->mb_effective.mbe_type == MAC_BIBA_TYPE_EQUAL) in biba_contains_equal()
311 if (mb->mb_flags & MAC_BIBA_FLAG_RANGE) { in biba_contains_equal()
312 if (mb->mb_rangelow.mbe_type == MAC_BIBA_TYPE_EQUAL) in biba_contains_equal()
314 if (mb->mb_rangehigh.mbe_type == MAC_BIBA_TYPE_EQUAL) in biba_contains_equal()
322 biba_subject_privileged(struct mac_biba *mb) in biba_subject_privileged() argument
325 KASSERT((mb->mb_flags & MAC_BIBA_FLAGS_BOTH) == MAC_BIBA_FLAGS_BOTH, in biba_subject_privileged()
329 if (mb->mb_effective.mbe_type == MAC_BIBA_TYPE_EQUAL) in biba_subject_privileged()
333 if (mb->mb_rangelow.mbe_type == MAC_BIBA_TYPE_EQUAL || in biba_subject_privileged()
334 mb->mb_rangehigh.mbe_type == MAC_BIBA_TYPE_EQUAL) in biba_subject_privileged()
338 if (mb->mb_rangelow.mbe_type == MAC_BIBA_TYPE_LOW && in biba_subject_privileged()
339 mb->mb_rangehigh.mbe_type == MAC_BIBA_TYPE_HIGH) in biba_subject_privileged()
347 biba_high_effective(struct mac_biba *mb) in biba_high_effective() argument
350 KASSERT((mb->mb_flags & MAC_BIBA_FLAG_EFFECTIVE) != 0, in biba_high_effective()
353 return (mb->mb_effective.mbe_type == MAC_BIBA_TYPE_HIGH); in biba_high_effective()
357 biba_valid(struct mac_biba *mb) in biba_valid() argument
360 if (mb->mb_flags & MAC_BIBA_FLAG_EFFECTIVE) { in biba_valid()
361 switch (mb->mb_effective.mbe_type) { in biba_valid()
368 if (mb->mb_effective.mbe_grade != 0 || in biba_valid()
370 mb->mb_effective.mbe_compartments)) in biba_valid()
378 if (mb->mb_effective.mbe_type != MAC_BIBA_TYPE_UNDEF) in biba_valid()
382 if (mb->mb_flags & MAC_BIBA_FLAG_RANGE) { in biba_valid()
383 switch (mb->mb_rangelow.mbe_type) { in biba_valid()
390 if (mb->mb_rangelow.mbe_grade != 0 || in biba_valid()
392 mb->mb_rangelow.mbe_compartments)) in biba_valid()
400 switch (mb->mb_rangehigh.mbe_type) { in biba_valid()
407 if (mb->mb_rangehigh.mbe_grade != 0 || in biba_valid()
409 mb->mb_rangehigh.mbe_compartments)) in biba_valid()
416 if (!biba_dominate_element(&mb->mb_rangehigh, in biba_valid()
417 &mb->mb_rangelow)) in biba_valid()
420 if (mb->mb_rangelow.mbe_type != MAC_BIBA_TYPE_UNDEF || in biba_valid()
421 mb->mb_rangehigh.mbe_type != MAC_BIBA_TYPE_UNDEF) in biba_valid()
429 biba_set_range(struct mac_biba *mb, u_short typelow, u_short gradelow, in biba_set_range() argument
434 mb->mb_rangelow.mbe_type = typelow; in biba_set_range()
435 mb->mb_rangelow.mbe_grade = gradelow; in biba_set_range()
437 memcpy(mb->mb_rangelow.mbe_compartments, compartmentslow, in biba_set_range()
438 sizeof(mb->mb_rangelow.mbe_compartments)); in biba_set_range()
439 mb->mb_rangehigh.mbe_type = typehigh; in biba_set_range()
440 mb->mb_rangehigh.mbe_grade = gradehigh; in biba_set_range()
442 memcpy(mb->mb_rangehigh.mbe_compartments, compartmentshigh, in biba_set_range()
443 sizeof(mb->mb_rangehigh.mbe_compartments)); in biba_set_range()
444 mb->mb_flags |= MAC_BIBA_FLAG_RANGE; in biba_set_range()
448 biba_set_effective(struct mac_biba *mb, u_short type, u_short grade, in biba_set_effective() argument
452 mb->mb_effective.mbe_type = type; in biba_set_effective()
453 mb->mb_effective.mbe_grade = grade; in biba_set_effective()
455 memcpy(mb->mb_effective.mbe_compartments, compartments, in biba_set_effective()
456 sizeof(mb->mb_effective.mbe_compartments)); in biba_set_effective()
457 mb->mb_flags |= MAC_BIBA_FLAG_EFFECTIVE; in biba_set_effective()
588 biba_to_string(struct sbuf *sb, struct mac_biba *mb) in biba_to_string() argument
591 if (mb->mb_flags & MAC_BIBA_FLAG_EFFECTIVE) { in biba_to_string()
592 if (biba_element_to_string(sb, &mb->mb_effective) == -1) in biba_to_string()
596 if (mb->mb_flags & MAC_BIBA_FLAG_RANGE) { in biba_to_string()
600 if (biba_element_to_string(sb, &mb->mb_rangelow) == -1) in biba_to_string()
606 if (biba_element_to_string(sb, &mb->mb_rangehigh) == -1) in biba_to_string()
620 struct mac_biba *mb; in biba_externalize_label() local
627 mb = SLOT(label); in biba_externalize_label()
628 return (biba_to_string(sb, mb)); in biba_externalize_label()
688 biba_parse(struct mac_biba *mb, char *string) in biba_parse() argument
715 bzero(mb, sizeof(*mb)); in biba_parse()
717 error = biba_parse_element(&mb->mb_effective, effective); in biba_parse()
720 mb->mb_flags |= MAC_BIBA_FLAG_EFFECTIVE; in biba_parse()
724 error = biba_parse_element(&mb->mb_rangelow, rangelow); in biba_parse()
727 error = biba_parse_element(&mb->mb_rangehigh, rangehigh); in biba_parse()
730 mb->mb_flags |= MAC_BIBA_FLAG_RANGE; in biba_parse()
733 error = biba_valid(mb); in biba_parse()
744 struct mac_biba *mb, mb_temp; in biba_internalize_label() local
756 mb = SLOT(label); in biba_internalize_label()
757 *mb = mb_temp; in biba_internalize_label()
943 struct mac_biba *mb; in biba_devfs_create_device() local
947 mb = SLOT(delabel); in biba_devfs_create_device()
961 biba_set_effective(mb, biba_type, 0, NULL); in biba_devfs_create_device()
968 struct mac_biba *mb; in biba_devfs_create_directory() local
970 mb = SLOT(delabel); in biba_devfs_create_directory()
972 biba_set_effective(mb, MAC_BIBA_TYPE_HIGH, 0, NULL); in biba_devfs_create_directory()