Lines Matching refs:attr
599 struct cil_typeattribute *attr = node->data;
600 if (attr->datum.nodes->head->data == node) {
874 static int __evaluate_type_expression(struct cil_typeattribute *attr, struct cil_db *db)
878 attr->types = cil_malloc(sizeof(*attr->types));
879 rc = __cil_expr_list_to_bitmap(attr->expr_list, attr->types, db->num_types, db);
882 ebitmap_destroy(attr->types);
883 free(attr->types);
884 attr->types = NULL;
897 struct cil_typeattribute *attr = (struct cil_typeattribute *)datum;
898 if (attr->types == NULL) {
899 rc = __evaluate_type_expression(attr, db);
902 ebitmap_union(bitmap, attr->types);
926 static int __evaluate_user_expression(struct cil_userattribute *attr, struct cil_db *db)
930 attr->users = cil_malloc(sizeof(*attr->users));
931 rc = __cil_expr_list_to_bitmap(attr->expr_list, attr->users, db->num_users, db);
934 ebitmap_destroy(attr->users);
935 free(attr->users);
936 attr->users = NULL;
945 struct cil_userattribute *attr = NULL;
951 attr = (struct cil_userattribute *)datum;
952 if (attr->users == NULL) {
953 rc = __evaluate_user_expression(attr, db);
958 ebitmap_union(bitmap, attr->users);
974 static int __evaluate_role_expression(struct cil_roleattribute *attr, struct cil_db *db)
978 attr->roles = cil_malloc(sizeof(*attr->roles));
979 rc = __cil_expr_list_to_bitmap(attr->expr_list, attr->roles, db->num_roles, db);
982 ebitmap_destroy(attr->roles);
983 free(attr->roles);
984 attr->roles = NULL;
997 struct cil_roleattribute *attr = (struct cil_roleattribute *)datum;
998 if (attr->roles == NULL) {
999 rc = __evaluate_role_expression(attr, db);
1002 ebitmap_union(bitmap, attr->roles);
1442 static int cil_typeattribute_used(struct cil_typeattribute *attr, struct cil_db *db)
1444 if (!attr->used) {
1448 if (attr->used & CIL_ATTR_EXPAND_FALSE) {
1452 if (attr->used & CIL_ATTR_EXPAND_TRUE) {
1456 if (attr->used & CIL_ATTR_CONSTRAINT) {
1460 if (db->attrs_expand_generated || attr->used == CIL_ATTR_NEVERALLOW) {
1461 if (strcmp(DATUM(attr)->name, GEN_REQUIRE_ATTR) == 0) {
1463 } else if (strstr(DATUM(attr)->name, TYPEATTR_INFIX) != NULL) {
1467 if (attr->used == CIL_ATTR_NEVERALLOW) {
1472 if (attr->used == CIL_ATTR_AVRULE) {
1473 if (ebitmap_cardinality(attr->types) < db->attrs_expand_size) {
1492 struct cil_typeattribute *attr = curr->data;
1493 if (strstr(DATUM(attr)->name, TYPEATTR_INFIX)) {
1494 __mark_neverallow_attrs(attr->expr_list);
1496 attr->used |= CIL_ATTR_NEVERALLOW;
1520 struct cil_typeattribute *attr = node->data;
1521 if ((attr->used & CIL_ATTR_NEVERALLOW) &&
1522 strstr(DATUM(attr)->name, TYPEATTR_INFIX)) {
1523 __mark_neverallow_attrs(attr->expr_list);
1552 struct cil_typeattribute *attr = node->data;
1553 if (attr->types == NULL) {
1554 rc = __evaluate_type_expression(attr, db);
1557 attr->keep = cil_typeattribute_used(attr, db);
1561 struct cil_roleattribute *attr = node->data;
1562 if (attr->roles == NULL) {
1563 rc = __evaluate_role_expression(attr, db);
1583 struct cil_userattribute *attr = node->data;
1584 if (attr->users == NULL) {
1585 rc = __evaluate_user_expression(attr, db);
1625 struct cil_typeattribute *attr = (struct cil_typeattribute *)datum;
1626 ebitmap_union(role->types, attr->types);
1659 struct cil_roleattribute *attr = roletype->role;
1663 ebitmap_for_each_positive_bit(attr->roles, rnode, i) {
1697 struct cil_roleattribute *attr = NULL;
1711 attr = (struct cil_roleattribute *)datum;
1712 ebitmap_union(user->roles, attr->roles);