• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/xnu-2782.1.97/osfmk/kern/

Lines Matching refs:entry

46  * Ledger entry flags. Bits in second nibble (masked by 0xF0) are used for
49 #define LF_ENTRY_ACTIVE 0x0001 /* entry is active if set */
59 /* Determine whether a ledger entry exists and has been initialized and active */
128 * Use 2 "tocks" to track the rolling maximum balance of a ledger entry.
245 * Add a new entry to the list of entries in a ledger template. There is
246 * currently no mechanism to remove an entry. Implementing such a mechanism
247 * would require us to maintain per-entry reference counts, which we would
303 ledger_entry_setactive(ledger_t ledger, int entry)
307 if ((ledger == NULL) || (entry < 0) || (entry >= ledger->l_size))
310 le = &ledger->l_entries[entry];
378 /* make entry inactive by removing active bit */
382 * If template has a callback, this entry is opted-in,
458 * Determine whether an entry has exceeded its warning level.
478 * Determine whether an entry has exceeded its limit.
497 entry_get_callback(ledger_t ledger, int entry)
503 callback = ledger->l_template->lt_entries[entry].et_callback;
531 ledger_refill(uint64_t now, ledger_t ledger, int entry)
537 le = &ledger->l_entries[entry];
623 * is enabled for the entry.
655 ledger_check_new_balance(ledger_t ledger, int entry)
659 le = &ledger->l_entries[entry];
685 ledger_refill(now, ledger, entry);
690 * We've exceeded the limit for this entry. There
701 entry_get_callback(ledger, entry))) {
708 * If there are any threads blocked on this entry, now would
754 ledger, entry, le, le->le_credit - le->le_debit);
759 * Add value to an entry in a ledger.
762 ledger_credit(ledger_t ledger, int entry, ledger_amount_t amount)
767 if (!ENTRY_VALID(ledger, entry) || (amount < 0))
773 le = &ledger->l_entries[entry];
778 ledger_check_new_balance(ledger, entry);
786 * may see bogus values when comparing one entry to another.
787 * As each entry's credit & debit are modified one at a time, the warning/limit
817 ledger_zero_balance(ledger_t ledger, int entry)
821 if (!ENTRY_VALID(ledger, entry))
824 le = &ledger->l_entries[entry];
841 ledger_get_limit(ledger_t ledger, int entry, ledger_amount_t *limit)
845 if (!ENTRY_VALID(ledger, entry))
848 le = &ledger->l_entries[entry];
865 ledger_set_limit(ledger_t ledger, int entry, ledger_amount_t limit,
870 if (!ENTRY_VALID(ledger, entry))
874 le = &ledger->l_entries[entry];
882 ledger_disable_refill(ledger, entry);
904 ledger_get_maximum(ledger_t ledger, int entry,
911 le = &ledger->l_entries[entry];
913 if (!ENTRY_VALID(ledger, entry) || !(le->le_flags & LF_TRACKING_MAX)) {
940 * Enable tracking of periodic maximums for this ledger entry.
943 ledger_track_maximum(ledger_template_t template, int entry,
948 if ((entry < 0) || (entry >= template->lt_cnt)) {
953 template->lt_entries[entry].et_flags |= LF_TRACKING_MAX;
960 ledger_panic_on_negative(ledger_template_t template, int entry)
964 if ((entry < 0) || (entry >= template->lt_cnt)) {
969 template->lt_entries[entry].et_flags |= LF_PANIC_ON_NEGATIVE;
979 ledger_set_callback(ledger_template_t template, int entry,
985 if ((entry < 0) || (entry >= template->lt_cnt))
998 et = &template->lt_entries[entry];
1009 * Disable callback notification for a specific ledger entry.
1016 ledger_disable_callback(ledger_t ledger, int entry)
1018 if (!ENTRY_VALID(ledger, entry))
1027 ledger->l_entries[entry].le_warn_level = LEDGER_LIMIT_INFINITY;
1028 flag_clear(&ledger->l_entries[entry].le_flags, LEDGER_ACTION_CALLBACK);
1033 * Enable callback notification for a specific ledger entry.
1036 * been invoked against an entry; there must already be a callback
1040 ledger_enable_callback(ledger_t ledger, int entry)
1042 if (!ENTRY_VALID(ledger, entry))
1045 assert(entry_get_callback(ledger, entry) != NULL);
1047 flag_set(&ledger->l_entries[entry].le_flags, LEDGER_ACTION_CALLBACK);
1052 * Query the automatic refill period for this ledger entry.
1054 * A period of 0 means this entry has none configured.
1057 ledger_get_period(ledger_t ledger, int entry, uint64_t *period)
1061 if (!ENTRY_VALID(ledger, entry))
1064 le = &ledger->l_entries[entry];
1074 ledger_set_period(ledger_t ledger, int entry, uint64_t period)
1079 if (!ENTRY_VALID(ledger, entry))
1082 le = &ledger->l_entries[entry];
1106 ledger_zero_balance(ledger, entry);
1117 ledger_disable_refill(ledger_t ledger, int entry)
1121 if (!ENTRY_VALID(ledger, entry))
1124 le = &ledger->l_entries[entry];
1132 ledger_get_actions(ledger_t ledger, int entry, int *actions)
1134 if (!ENTRY_VALID(ledger, entry))
1137 *actions = ledger->l_entries[entry].le_flags & LEDGER_ACTION_MASK;
1143 ledger_set_action(ledger_t ledger, int entry, int action)
1146 if (!ENTRY_VALID(ledger, entry))
1149 flag_set(&ledger->l_entries[entry].le_flags, action);
1177 ledger_debit(ledger_t ledger, int entry, ledger_amount_t amount)
1182 if (!ENTRY_VALID(ledger, entry) || (amount < 0))
1188 le = &ledger->l_entries[entry];
1194 ledger_check_new_balance(ledger, entry);
1288 * resources, find the first entry in deficit for which we should wait.
1394 /* Mark that somebody is waiting on this entry */
1415 ledger_get_entries(ledger_t ledger, int entry, ledger_amount_t *credit,
1420 if (!ENTRY_VALID(ledger, entry))
1423 le = &ledger->l_entries[entry];
1432 ledger_reset_callback_state(ledger_t ledger, int entry)
1436 if (!ENTRY_VALID(ledger, entry))
1439 le = &ledger->l_entries[entry];
1447 ledger_disable_panic_on_negative(ledger_t ledger, int entry)
1451 if (!ENTRY_VALID(ledger, entry))
1454 le = &ledger->l_entries[entry];
1462 ledger_get_balance(ledger_t ledger, int entry, ledger_amount_t *balance)
1466 if (!ENTRY_VALID(ledger, entry))
1469 le = &ledger->l_entries[entry];
1568 int entry,
1575 assert(entry < ledger->l_size);
1577 struct ledger_entry *le = &ledger->l_entries[entry];