| 1005 | } |
| 1006 | |
| 1007 | struct rctl_rule * |
| 1008 | rctl_rule_alloc(int flags) |
| 1009 | { |
| 1010 | struct rctl_rule *rule; |
| 1011 | |
| 1012 | ASSERT_RACCT_ENABLED(); |
| 1013 | |
| 1014 | rule = uma_zalloc(rctl_rule_zone, flags); |
| 1015 | if (rule == NULL) |
| 1016 | return (NULL); |
| 1017 | rule->rr_subject_type = RCTL_SUBJECT_TYPE_UNDEFINED; |
| 1018 | rule->rr_subject.rs_proc = NULL; |
| 1019 | rule->rr_subject.rs_uip = NULL; |
| 1020 | rule->rr_subject.rs_loginclass = NULL; |
| 1021 | rule->rr_subject.rs_prison_racct = NULL; |
| 1022 | rule->rr_per = RCTL_SUBJECT_TYPE_UNDEFINED; |
| 1023 | rule->rr_resource = RACCT_UNDEFINED; |
| 1024 | rule->rr_action = RCTL_ACTION_UNDEFINED; |
| 1025 | rule->rr_amount = RCTL_AMOUNT_UNDEFINED; |
| 1026 | refcount_init(&rule->rr_refcount, 1); |
| 1027 | |
| 1028 | return (rule); |
| 1029 | } |
| 1030 | |
| 1031 | struct rctl_rule * |
| 1032 | rctl_rule_duplicate(const struct rctl_rule *rule, int flags) |
no test coverage detected