Lines Matching refs:mm

144 mls_free(struct mac_mls *mm)  in mls_free()  argument
147 if (mm != NULL) in mls_free()
148 uma_zfree(zone_mls, mm); in mls_free()
154 mls_atmostflags(struct mac_mls *mm, int flags) in mls_atmostflags() argument
157 if ((mm->mm_flags & flags) != mm->mm_flags) in mls_atmostflags()
276 mls_contains_equal(struct mac_mls *mm) in mls_contains_equal() argument
279 if (mm->mm_flags & MAC_MLS_FLAG_EFFECTIVE) in mls_contains_equal()
280 if (mm->mm_effective.mme_type == MAC_MLS_TYPE_EQUAL) in mls_contains_equal()
283 if (mm->mm_flags & MAC_MLS_FLAG_RANGE) { in mls_contains_equal()
284 if (mm->mm_rangelow.mme_type == MAC_MLS_TYPE_EQUAL) in mls_contains_equal()
286 if (mm->mm_rangehigh.mme_type == MAC_MLS_TYPE_EQUAL) in mls_contains_equal()
294 mls_subject_privileged(struct mac_mls *mm) in mls_subject_privileged() argument
297 KASSERT((mm->mm_flags & MAC_MLS_FLAGS_BOTH) == MAC_MLS_FLAGS_BOTH, in mls_subject_privileged()
301 if (mm->mm_effective.mme_type == MAC_MLS_TYPE_EQUAL) in mls_subject_privileged()
305 if (mm->mm_rangelow.mme_type == MAC_MLS_TYPE_EQUAL || in mls_subject_privileged()
306 mm->mm_rangehigh.mme_type == MAC_MLS_TYPE_EQUAL) in mls_subject_privileged()
310 if (mm->mm_rangelow.mme_type == MAC_MLS_TYPE_LOW && in mls_subject_privileged()
311 mm->mm_rangehigh.mme_type == MAC_MLS_TYPE_HIGH) in mls_subject_privileged()
319 mls_valid(struct mac_mls *mm) in mls_valid() argument
322 if (mm->mm_flags & MAC_MLS_FLAG_EFFECTIVE) { in mls_valid()
323 switch (mm->mm_effective.mme_type) { in mls_valid()
330 if (mm->mm_effective.mme_level != 0 || in mls_valid()
332 mm->mm_effective.mme_compartments)) in mls_valid()
340 if (mm->mm_effective.mme_type != MAC_MLS_TYPE_UNDEF) in mls_valid()
344 if (mm->mm_flags & MAC_MLS_FLAG_RANGE) { in mls_valid()
345 switch (mm->mm_rangelow.mme_type) { in mls_valid()
352 if (mm->mm_rangelow.mme_level != 0 || in mls_valid()
354 mm->mm_rangelow.mme_compartments)) in mls_valid()
362 switch (mm->mm_rangehigh.mme_type) { in mls_valid()
369 if (mm->mm_rangehigh.mme_level != 0 || in mls_valid()
371 mm->mm_rangehigh.mme_compartments)) in mls_valid()
378 if (!mls_dominate_element(&mm->mm_rangehigh, in mls_valid()
379 &mm->mm_rangelow)) in mls_valid()
382 if (mm->mm_rangelow.mme_type != MAC_MLS_TYPE_UNDEF || in mls_valid()
383 mm->mm_rangehigh.mme_type != MAC_MLS_TYPE_UNDEF) in mls_valid()
391 mls_set_range(struct mac_mls *mm, u_short typelow, u_short levellow, in mls_set_range() argument
396 mm->mm_rangelow.mme_type = typelow; in mls_set_range()
397 mm->mm_rangelow.mme_level = levellow; in mls_set_range()
399 memcpy(mm->mm_rangelow.mme_compartments, compartmentslow, in mls_set_range()
400 sizeof(mm->mm_rangelow.mme_compartments)); in mls_set_range()
401 mm->mm_rangehigh.mme_type = typehigh; in mls_set_range()
402 mm->mm_rangehigh.mme_level = levelhigh; in mls_set_range()
404 memcpy(mm->mm_rangehigh.mme_compartments, compartmentshigh, in mls_set_range()
405 sizeof(mm->mm_rangehigh.mme_compartments)); in mls_set_range()
406 mm->mm_flags |= MAC_MLS_FLAG_RANGE; in mls_set_range()
410 mls_set_effective(struct mac_mls *mm, u_short type, u_short level, in mls_set_effective() argument
414 mm->mm_effective.mme_type = type; in mls_set_effective()
415 mm->mm_effective.mme_level = level; in mls_set_effective()
417 memcpy(mm->mm_effective.mme_compartments, compartments, in mls_set_effective()
418 sizeof(mm->mm_effective.mme_compartments)); in mls_set_effective()
419 mm->mm_flags |= MAC_MLS_FLAG_EFFECTIVE; in mls_set_effective()
550 mls_to_string(struct sbuf *sb, struct mac_mls *mm) in mls_to_string() argument
553 if (mm->mm_flags & MAC_MLS_FLAG_EFFECTIVE) { in mls_to_string()
554 if (mls_element_to_string(sb, &mm->mm_effective) == -1) in mls_to_string()
558 if (mm->mm_flags & MAC_MLS_FLAG_RANGE) { in mls_to_string()
562 if (mls_element_to_string(sb, &mm->mm_rangelow) == -1) in mls_to_string()
568 if (mls_element_to_string(sb, &mm->mm_rangehigh) == -1) in mls_to_string()
582 struct mac_mls *mm; in mls_externalize_label() local
589 mm = SLOT(label); in mls_externalize_label()
591 return (mls_to_string(sb, mm)); in mls_externalize_label()
651 mls_parse(struct mac_mls *mm, char *string) in mls_parse() argument
678 bzero(mm, sizeof(*mm)); in mls_parse()
680 error = mls_parse_element(&mm->mm_effective, effective); in mls_parse()
683 mm->mm_flags |= MAC_MLS_FLAG_EFFECTIVE; in mls_parse()
687 error = mls_parse_element(&mm->mm_rangelow, rangelow); in mls_parse()
690 error = mls_parse_element(&mm->mm_rangehigh, rangehigh); in mls_parse()
693 mm->mm_flags |= MAC_MLS_FLAG_RANGE; in mls_parse()
696 error = mls_valid(mm); in mls_parse()
707 struct mac_mls *mm, mm_temp; in mls_internalize_label() local
719 mm = SLOT(label); in mls_internalize_label()
720 *mm = mm_temp; in mls_internalize_label()
904 struct mac_mls *mm; in mls_devfs_create_device() local
908 mm = SLOT(delabel); in mls_devfs_create_device()
925 mls_set_effective(mm, mls_type, 0, NULL); in mls_devfs_create_device()
932 struct mac_mls *mm; in mls_devfs_create_directory() local
934 mm = SLOT(delabel); in mls_devfs_create_directory()
935 mls_set_effective(mm, MAC_MLS_TYPE_LOW, 0, NULL); in mls_devfs_create_directory()