Lines Matching refs:rctl

211 rcop_no_action(struct rctl *r, struct proc *p, rctl_entity_p_t *e)  in rcop_no_action()
217 rcop_no_usage(struct rctl *r, struct proc *p) in rcop_no_usage()
224 rcop_no_set(struct rctl *r, struct proc *p, rctl_entity_p_t *e, rctl_qty_t l) in rcop_no_set()
231 rcop_no_test(struct rctl *r, struct proc *p, rctl_entity_p_t *e, in rcop_no_test()
251 rcop_absolute_test(struct rctl *r, struct proc *p, rctl_entity_p_t *e, in rcop_absolute_test()
588 rctl_t *rctl = prev; in rctl_gp_alloc() local
593 rctl = kmem_cache_alloc(rctl_cache, KM_SLEEP); in rctl_gp_alloc()
594 prev->rc_next = rctl; in rctl_gp_alloc()
595 prev = rctl; in rctl_gp_alloc()
598 rctl->rc_next = NULL; in rctl_gp_alloc()
635 rctl_t *rctl = rcgp->rcag_ctls; in rctl_gp_detach_ctl() local
639 rcgp->rcag_ctls = rctl->rc_next; in rctl_gp_detach_ctl()
641 rctl->rc_next = NULL; in rctl_gp_detach_ctl()
643 return (rctl); in rctl_gp_detach_ctl()
651 rctl_t *rctl = rcgp->rcag_ctls; in rctl_gp_free() local
660 while (rctl != NULL) { in rctl_gp_free()
661 rctl_t *next = rctl->rc_next; in rctl_gp_free()
663 kmem_cache_free(rctl_cache, rctl); in rctl_gp_free()
664 rctl = next; in rctl_gp_free()
976 rctl_set_insert(rctl_set_t *set, rctl_hndl_t hndl, rctl_t *rctl) in rctl_set_insert() argument
983 rctl->rc_next = NULL; in rctl_set_insert()
986 set->rcs_ctls[index] = rctl; in rctl_set_insert()
991 rctl->rc_next = set->rcs_ctls[index]; in rctl_set_insert()
992 set->rcs_ctls[index] = rctl; in rctl_set_insert()
1003 rctl->rc_next = next_ctl; in rctl_set_insert()
1004 prev_ctl->rc_next = rctl; in rctl_set_insert()
1010 rctl->rc_next = next_ctl; in rctl_set_insert()
1011 prev_ctl->rc_next = rctl; in rctl_set_insert()
1113 rctl_t *rctl = rctl_gp_detach_ctl(ragp); in rctl_set_init() local
1115 rctl->rc_dict_entry = rde; in rctl_set_init()
1116 rctl->rc_id = rde->rcd_id; in rctl_set_init()
1117 rctl->rc_projdb = NULL; in rctl_set_init()
1119 rctl->rc_values = rctl_val_list_dup(rde->rcd_default_value, in rctl_set_init()
1121 rctl->rc_cursor = rctl->rc_values; in rctl_set_init()
1123 ASSERT(rctl->rc_cursor != NULL); in rctl_set_init()
1125 rctl_set_insert(rset, rde->rcd_id, rctl); in rctl_set_init()
1127 RCTLOP_SET(rctl, p, e, rctl_model_value(rctl->rc_dict_entry, p, in rctl_set_init()
1128 rctl->rc_cursor->rcv_value)); in rctl_set_init()
1138 rctl_dup(rctl_t *rctl, rctl_alloc_gp_t *ragp, struct proc *oldp, in rctl_dup() argument
1144 dup->rc_id = rctl->rc_id; in rctl_dup()
1145 dup->rc_dict_entry = rctl->rc_dict_entry; in rctl_dup()
1148 dup->rc_values = rctl_val_list_dup(rctl->rc_values, ragp, oldp, newp); in rctl_dup()
1152 if (rctl_val_cmp(rctl->rc_cursor, dval, 0) >= 0) { in rctl_dup()
1448 rctl_set_find(rctl_set_t *set, rctl_hndl_t hndl, rctl_t **rctl) in rctl_set_find() argument
1458 *rctl = curr_ctl; in rctl_set_find()
1485 rctl_t *rctl; in rctl_enforced_value() local
1490 if (rctl_set_find(rset, hndl, &rctl) == -1) in rctl_enforced_value()
1493 ret = rctl_model_value(rctl->rc_dict_entry, p, in rctl_enforced_value()
1494 rctl->rc_cursor->rcv_value); in rctl_enforced_value()
1564 rctl_t *rctl; in rctl_local_op() local
1584 if (rctl_set_find(rset, hndl, &rctl) == -1) { in rctl_local_op()
1589 ret = cbop(hndl, p, &e, rctl, oval, nval); in rctl_local_op()
1598 rctl_t *rctl, rctl_val_t *oval, rctl_val_t *nval) in rctl_local_get_cb() argument
1604 bcopy(rctl->rc_values, nval, sizeof (rctl_val_t)); in rctl_local_get_cb()
1609 rctl_val_t *tval = rctl_val_list_find(&rctl->rc_values, oval); in rctl_local_get_cb()
1641 rctl_t *rctl, rctl_val_t *oval, rctl_val_t *nval) in rctl_local_delete_cb() argument
1643 if ((oval = rctl_val_list_find(&rctl->rc_values, nval)) == NULL) in rctl_local_delete_cb()
1646 if (rctl->rc_cursor == oval) { in rctl_local_delete_cb()
1647 rctl->rc_cursor = oval->rcv_next; in rctl_local_delete_cb()
1648 rctl_val_list_reset(rctl->rc_cursor); in rctl_local_delete_cb()
1649 RCTLOP_SET(rctl, p, e, rctl_model_value(rctl->rc_dict_entry, p, in rctl_local_delete_cb()
1650 rctl->rc_cursor->rcv_value)); in rctl_local_delete_cb()
1652 ASSERT(rctl->rc_cursor != NULL); in rctl_local_delete_cb()
1655 (void) rctl_val_list_delete(&rctl->rc_values, oval); in rctl_local_delete_cb()
1690 rctl_t *rctl, rctl_val_t *oval, rctl_val_t *nval) in rctl_local_insert_cb() argument
1697 if (rctl_val_list_insert(&rctl->rc_values, nval) != 0) in rctl_local_insert_cb()
1700 if (rctl_val_cmp(nval, rctl->rc_cursor, 0) < 0) { in rctl_local_insert_cb()
1701 rctl->rc_cursor = nval; in rctl_local_insert_cb()
1702 rctl_val_list_reset(rctl->rc_cursor); in rctl_local_insert_cb()
1703 RCTLOP_SET(rctl, p, e, rctl_model_value(rctl->rc_dict_entry, p, in rctl_local_insert_cb()
1704 rctl->rc_cursor->rcv_value)); in rctl_local_insert_cb()
1706 ASSERT(rctl->rc_cursor != NULL); in rctl_local_insert_cb()
1744 rctl_t *rctl, rctl_val_t *new_values, rctl_val_t *alloc_values) in rctl_local_insert_all_cb() argument
1758 if (rctl->rc_projdb == NULL) { in rctl_local_insert_all_cb()
1759 val = rctl->rc_values; in rctl_local_insert_all_cb()
1766 rctl->rc_values = val->rcv_next; in rctl_local_insert_all_cb()
1784 val = rctl->rc_projdb; in rctl_local_insert_all_cb()
1795 if (((tmp_val = rctl_val_list_find(&rctl->rc_values, in rctl_local_insert_all_cb()
1798 (void) rctl_val_list_delete(&rctl->rc_values, in rctl_local_insert_all_cb()
1803 (void) rctl_val_list_delete(&rctl->rc_projdb, val); in rctl_local_insert_all_cb()
1821 if (rctl_val_list_insert(&rctl->rc_projdb, new_values) == 0) { in rctl_local_insert_all_cb()
1827 if (rctl_val_list_insert(&rctl->rc_values, in rctl_local_insert_all_cb()
1853 rctl->rc_cursor = rctl->rc_values; in rctl_local_insert_all_cb()
1854 rctl_val_list_reset(rctl->rc_cursor); in rctl_local_insert_all_cb()
1855 RCTLOP_SET(rctl, p, e, rctl_model_value(rctl->rc_dict_entry, p, in rctl_local_insert_all_cb()
1856 rctl->rc_cursor->rcv_value)); in rctl_local_insert_all_cb()
1889 rctl_t *rctl, rctl_val_t *new_values, rctl_val_t *alloc_values) in rctl_local_replace_all_cb() argument
1896 val = rctl->rc_values; in rctl_local_replace_all_cb()
1903 rctl->rc_values = val->rcv_next; in rctl_local_replace_all_cb()
1917 val = rctl->rc_projdb; in rctl_local_replace_all_cb()
1924 rctl->rc_projdb = NULL; in rctl_local_replace_all_cb()
1932 if (rctl_val_list_insert(&rctl->rc_projdb, new_values) == 0) { in rctl_local_replace_all_cb()
1937 if (rctl_val_list_insert(&rctl->rc_values, in rctl_local_replace_all_cb()
1962 rctl->rc_cursor = rctl->rc_values; in rctl_local_replace_all_cb()
1963 rctl_val_list_reset(rctl->rc_cursor); in rctl_local_replace_all_cb()
1964 RCTLOP_SET(rctl, p, e, rctl_model_value(rctl->rc_dict_entry, p, in rctl_local_replace_all_cb()
1965 rctl->rc_cursor->rcv_value)); in rctl_local_replace_all_cb()
1980 rctl_t *rctl, rctl_val_t *oval, rctl_val_t *nval) in rctl_local_replace_cb() argument
1986 tmp = rctl_val_list_find(&rctl->rc_values, oval); in rctl_local_replace_cb()
2004 if (ret = rctl_local_insert_cb(hndl, p, e, rctl, NULL, nval)) in rctl_local_replace_cb()
2007 ret = rctl_local_delete_cb(hndl, p, e, rctl, NULL, oval); in rctl_local_replace_cb()
2039 rctl_t *rctl; in rctl_rlimit_get() local
2046 if (rctl_set_find(rset, rc, &rctl) == -1) { in rctl_rlimit_get()
2051 rval = rctl->rc_values; in rctl_rlimit_get()
2053 if (rctl->rc_dict_entry->rcd_flagaction & (RCTL_GLOBAL_DENY_NEVER | in rctl_rlimit_get()
2081 rctl->rc_dict_entry, p)) in rctl_rlimit_get()
2099 rval->rcv_value < rctl_model_maximum(rctl->rc_dict_entry, in rctl_rlimit_get()
2126 rval->rcv_value < rctl_model_maximum(rctl->rc_dict_entry, p)) in rctl_rlimit_get()
2194 rctl_t *rctl; in rctl_rlimit_set() local
2220 if (rctl_set_find(rset, rc, &rctl) == -1) { in rctl_rlimit_set()
2227 rval = rctl->rc_values; in rctl_rlimit_set()
2238 if (rctl->rc_cursor == rval) { in rctl_rlimit_set()
2239 rctl->rc_cursor = rval->rcv_next; in rctl_rlimit_set()
2240 rctl_val_list_reset(rctl->rc_cursor); in rctl_rlimit_set()
2241 RCTLOP_SET(rctl, p, &e, rctl_model_value( in rctl_rlimit_set()
2242 rctl->rc_dict_entry, p, in rctl_rlimit_set()
2243 rctl->rc_cursor->rcv_value)); in rctl_rlimit_set()
2245 (void) rctl_val_list_delete(&rctl->rc_values, rval); in rctl_rlimit_set()
2255 max = rctl->rc_dict_entry->rcd_max_native; in rctl_rlimit_set()
2266 (void) rctl_val_list_insert(&rctl->rc_values, rval_priv); in rctl_rlimit_set()
2267 rctl->rc_cursor = rval_priv; in rctl_rlimit_set()
2268 rctl_val_list_reset(rctl->rc_cursor); in rctl_rlimit_set()
2269 RCTLOP_SET(rctl, p, &e, rctl_model_value(rctl->rc_dict_entry, p, in rctl_rlimit_set()
2270 rctl->rc_cursor->rcv_value)); in rctl_rlimit_set()
2284 (void) rctl_val_list_insert(&rctl->rc_values, rval_basic); in rctl_rlimit_set()
2285 rctl->rc_cursor = rval_basic; in rctl_rlimit_set()
2286 rctl_val_list_reset(rctl->rc_cursor); in rctl_rlimit_set()
2287 RCTLOP_SET(rctl, p, &e, rctl_model_value(rctl->rc_dict_entry, p, in rctl_rlimit_set()
2288 rctl->rc_cursor->rcv_value)); in rctl_rlimit_set()
2291 ASSERT(rctl->rc_cursor != NULL); in rctl_rlimit_set()
2333 rctl_t *rctl = kmem_cache_alloc(rctl_cache, KM_SLEEP); in rctl_register() local
2343 bzero(rctl, sizeof (rctl_t)); in rctl_register()
2369 rctl->rc_dict_entry = rctl_de; in rctl_register()
2370 rctl->rc_values = rctl_val; in rctl_register()
2381 rhndl = rctl_de->rcd_id = rctl->rc_id = in rctl_register()
2390 (uint_t)rctl->rc_id); in rctl_register()
2395 if (mod_hash_find(rctl_dict, (mod_hash_key_t)(uintptr_t)rctl->rc_id, in rctl_register()
2397 panic("duplicate rctl ID %u registered", rctl->rc_id); in rctl_register()
2399 if (mod_hash_insert(rctl_dict, (mod_hash_key_t)(uintptr_t)rctl->rc_id, in rctl_register()
2400 (mod_hash_val_t)rctl)) in rctl_register()
2402 (uint_t)rctl->rc_id, (void *)rctl); in rctl_register()