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
1582 if (rctl_set_find(rset, hndl, &rctl) == -1) { in rctl_local_op()
1587 ret = cbop(hndl, p, &e, rctl, oval, nval); in rctl_local_op()
1596 rctl_t *rctl, rctl_val_t *oval, rctl_val_t *nval) in rctl_local_get_cb() argument
1602 bcopy(rctl->rc_values, nval, sizeof (rctl_val_t)); in rctl_local_get_cb()
1607 rctl_val_t *tval = rctl_val_list_find(&rctl->rc_values, oval); in rctl_local_get_cb()
1639 rctl_t *rctl, rctl_val_t *oval, rctl_val_t *nval) in rctl_local_delete_cb() argument
1641 if ((oval = rctl_val_list_find(&rctl->rc_values, nval)) == NULL) in rctl_local_delete_cb()
1644 if (rctl->rc_cursor == oval) { in rctl_local_delete_cb()
1645 rctl->rc_cursor = oval->rcv_next; in rctl_local_delete_cb()
1646 rctl_val_list_reset(rctl->rc_cursor); in rctl_local_delete_cb()
1647 RCTLOP_SET(rctl, p, e, rctl_model_value(rctl->rc_dict_entry, p, in rctl_local_delete_cb()
1648 rctl->rc_cursor->rcv_value)); in rctl_local_delete_cb()
1650 ASSERT(rctl->rc_cursor != NULL); in rctl_local_delete_cb()
1653 (void) rctl_val_list_delete(&rctl->rc_values, oval); in rctl_local_delete_cb()
1688 rctl_t *rctl, rctl_val_t *oval, rctl_val_t *nval) in rctl_local_insert_cb() argument
1695 if (rctl_val_list_insert(&rctl->rc_values, nval) != 0) in rctl_local_insert_cb()
1698 if (rctl_val_cmp(nval, rctl->rc_cursor, 0) < 0) { in rctl_local_insert_cb()
1699 rctl->rc_cursor = nval; in rctl_local_insert_cb()
1700 rctl_val_list_reset(rctl->rc_cursor); in rctl_local_insert_cb()
1701 RCTLOP_SET(rctl, p, e, rctl_model_value(rctl->rc_dict_entry, p, in rctl_local_insert_cb()
1702 rctl->rc_cursor->rcv_value)); in rctl_local_insert_cb()
1704 ASSERT(rctl->rc_cursor != NULL); in rctl_local_insert_cb()
1742 rctl_t *rctl, rctl_val_t *new_values, rctl_val_t *alloc_values) in rctl_local_insert_all_cb() argument
1756 if (rctl->rc_projdb == NULL) { in rctl_local_insert_all_cb()
1757 val = rctl->rc_values; in rctl_local_insert_all_cb()
1764 rctl->rc_values = val->rcv_next; in rctl_local_insert_all_cb()
1782 val = rctl->rc_projdb; in rctl_local_insert_all_cb()
1793 if (((tmp_val = rctl_val_list_find(&rctl->rc_values, in rctl_local_insert_all_cb()
1796 (void) rctl_val_list_delete(&rctl->rc_values, in rctl_local_insert_all_cb()
1801 (void) rctl_val_list_delete(&rctl->rc_projdb, val); in rctl_local_insert_all_cb()
1819 if (rctl_val_list_insert(&rctl->rc_projdb, new_values) == 0) { in rctl_local_insert_all_cb()
1825 if (rctl_val_list_insert(&rctl->rc_values, in rctl_local_insert_all_cb()
1851 rctl->rc_cursor = rctl->rc_values; in rctl_local_insert_all_cb()
1852 rctl_val_list_reset(rctl->rc_cursor); in rctl_local_insert_all_cb()
1853 RCTLOP_SET(rctl, p, e, rctl_model_value(rctl->rc_dict_entry, p, in rctl_local_insert_all_cb()
1854 rctl->rc_cursor->rcv_value)); in rctl_local_insert_all_cb()
1887 rctl_t *rctl, rctl_val_t *new_values, rctl_val_t *alloc_values) in rctl_local_replace_all_cb() argument
1894 val = rctl->rc_values; in rctl_local_replace_all_cb()
1901 rctl->rc_values = val->rcv_next; in rctl_local_replace_all_cb()
1915 val = rctl->rc_projdb; in rctl_local_replace_all_cb()
1922 rctl->rc_projdb = NULL; in rctl_local_replace_all_cb()
1930 if (rctl_val_list_insert(&rctl->rc_projdb, new_values) == 0) { in rctl_local_replace_all_cb()
1935 if (rctl_val_list_insert(&rctl->rc_values, in rctl_local_replace_all_cb()
1960 rctl->rc_cursor = rctl->rc_values; in rctl_local_replace_all_cb()
1961 rctl_val_list_reset(rctl->rc_cursor); in rctl_local_replace_all_cb()
1962 RCTLOP_SET(rctl, p, e, rctl_model_value(rctl->rc_dict_entry, p, in rctl_local_replace_all_cb()
1963 rctl->rc_cursor->rcv_value)); in rctl_local_replace_all_cb()
1978 rctl_t *rctl, rctl_val_t *oval, rctl_val_t *nval) in rctl_local_replace_cb() argument
1984 tmp = rctl_val_list_find(&rctl->rc_values, oval); in rctl_local_replace_cb()
2002 if (ret = rctl_local_insert_cb(hndl, p, e, rctl, NULL, nval)) in rctl_local_replace_cb()
2005 ret = rctl_local_delete_cb(hndl, p, e, rctl, NULL, oval); in rctl_local_replace_cb()
2037 rctl_t *rctl; in rctl_rlimit_get() local
2044 if (rctl_set_find(rset, rc, &rctl) == -1) { in rctl_rlimit_get()
2049 rval = rctl->rc_values; in rctl_rlimit_get()
2051 if (rctl->rc_dict_entry->rcd_flagaction & (RCTL_GLOBAL_DENY_NEVER | in rctl_rlimit_get()
2079 rctl->rc_dict_entry, p)) in rctl_rlimit_get()
2097 rval->rcv_value < rctl_model_maximum(rctl->rc_dict_entry, in rctl_rlimit_get()
2124 rval->rcv_value < rctl_model_maximum(rctl->rc_dict_entry, p)) in rctl_rlimit_get()
2192 rctl_t *rctl; in rctl_rlimit_set() local
2218 if (rctl_set_find(rset, rc, &rctl) == -1) { in rctl_rlimit_set()
2225 rval = rctl->rc_values; in rctl_rlimit_set()
2236 if (rctl->rc_cursor == rval) { in rctl_rlimit_set()
2237 rctl->rc_cursor = rval->rcv_next; in rctl_rlimit_set()
2238 rctl_val_list_reset(rctl->rc_cursor); in rctl_rlimit_set()
2239 RCTLOP_SET(rctl, p, &e, rctl_model_value( in rctl_rlimit_set()
2240 rctl->rc_dict_entry, p, in rctl_rlimit_set()
2241 rctl->rc_cursor->rcv_value)); in rctl_rlimit_set()
2243 (void) rctl_val_list_delete(&rctl->rc_values, rval); in rctl_rlimit_set()
2253 max = rctl->rc_dict_entry->rcd_max_native; in rctl_rlimit_set()
2264 (void) rctl_val_list_insert(&rctl->rc_values, rval_priv); in rctl_rlimit_set()
2265 rctl->rc_cursor = rval_priv; in rctl_rlimit_set()
2266 rctl_val_list_reset(rctl->rc_cursor); in rctl_rlimit_set()
2267 RCTLOP_SET(rctl, p, &e, rctl_model_value(rctl->rc_dict_entry, p, in rctl_rlimit_set()
2268 rctl->rc_cursor->rcv_value)); in rctl_rlimit_set()
2282 (void) rctl_val_list_insert(&rctl->rc_values, rval_basic); in rctl_rlimit_set()
2283 rctl->rc_cursor = rval_basic; in rctl_rlimit_set()
2284 rctl_val_list_reset(rctl->rc_cursor); in rctl_rlimit_set()
2285 RCTLOP_SET(rctl, p, &e, rctl_model_value(rctl->rc_dict_entry, p, in rctl_rlimit_set()
2286 rctl->rc_cursor->rcv_value)); in rctl_rlimit_set()
2289 ASSERT(rctl->rc_cursor != NULL); in rctl_rlimit_set()
2331 rctl_t *rctl = kmem_cache_alloc(rctl_cache, KM_SLEEP); in rctl_register() local
2341 bzero(rctl, sizeof (rctl_t)); in rctl_register()
2367 rctl->rc_dict_entry = rctl_de; in rctl_register()
2368 rctl->rc_values = rctl_val; in rctl_register()
2379 rhndl = rctl_de->rcd_id = rctl->rc_id = in rctl_register()
2388 (uint_t)rctl->rc_id); in rctl_register()
2393 if (mod_hash_find(rctl_dict, (mod_hash_key_t)(uintptr_t)rctl->rc_id, in rctl_register()
2395 panic("duplicate rctl ID %u registered", rctl->rc_id); in rctl_register()
2397 if (mod_hash_insert(rctl_dict, (mod_hash_key_t)(uintptr_t)rctl->rc_id, in rctl_register()
2398 (mod_hash_val_t)rctl)) in rctl_register()
2400 (uint_t)rctl->rc_id, (void *)rctl); in rctl_register()