X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/39236c6e673c41db228275375ab7fdb0f837b292..eee3565979933af707c711411001ba11fe406a3c:/osfmk/kern/ledger.h diff --git a/osfmk/kern/ledger.h b/osfmk/kern/ledger.h index 17dcf329a..5d1c6818f 100644 --- a/osfmk/kern/ledger.h +++ b/osfmk/kern/ledger.h @@ -32,10 +32,14 @@ #ifndef _KERN_LEDGER_H_ #define _KERN_LEDGER_H_ +#include /* ledger_t */ + #define LEDGER_INFO 0 #define LEDGER_ENTRY_INFO 1 #define LEDGER_TEMPLATE_INFO 2 #define LEDGER_LIMIT 3 +/* LEDGER_MAX_CMD always tracks the index of the last ledger command. */ +#define LEDGER_MAX_CMD LEDGER_LIMIT #define LEDGER_NAME_MAX 32 @@ -52,11 +56,11 @@ struct ledger_template_info { }; struct ledger_entry_info { - int64_t lei_balance; - int64_t lei_credit; - int64_t lei_debit; - uint64_t lei_limit; - uint64_t lei_refill_period; /* In milliseconds */ + int64_t lei_balance; + int64_t lei_credit; + int64_t lei_debit; + uint64_t lei_limit; + uint64_t lei_refill_period; /* In nanoseconds */ uint64_t lei_last_refill; /* Time since last refill */ }; @@ -96,6 +100,10 @@ extern kern_return_t ledger_set_callback(ledger_template_t template, int entry, ledger_callback_t callback, const void *param0, const void *param1); extern kern_return_t ledger_track_maximum(ledger_template_t template, int entry, int period_in_secs); +extern kern_return_t ledger_panic_on_negative(ledger_template_t template, + int entry); +extern kern_return_t ledger_track_credit_only(ledger_template_t template, + int entry); extern int ledger_key_lookup(ledger_template_t template, const char *key); /* value of entry type */ @@ -118,6 +126,7 @@ extern kern_return_t ledger_set_period(ledger_t ledger, int entry, uint64_t period); extern kern_return_t ledger_disable_refill(ledger_t l, int entry); extern kern_return_t ledger_entry_setactive(ledger_t ledger, int entry); +extern void ledger_check_new_balance(ledger_t ledger, int entry); extern kern_return_t ledger_credit(ledger_t ledger, int entry, ledger_amount_t amount); extern kern_return_t ledger_debit(ledger_t ledger, int entry, @@ -127,9 +136,13 @@ extern kern_return_t ledger_get_entries(ledger_t ledger, int entry, ledger_amount_t *credit, ledger_amount_t *debit); extern kern_return_t ledger_get_balance(ledger_t ledger, int entry, ledger_amount_t *balance); +extern kern_return_t ledger_reset_callback_state(ledger_t ledger, int entry); +extern kern_return_t ledger_disable_panic_on_negative(ledger_t ledger, int entry); + +extern kern_return_t ledger_rollup(ledger_t to_ledger, ledger_t from_ledger); +extern kern_return_t ledger_rollup_entry(ledger_t to_ledger, ledger_t from_ledger, int entry); extern void ledger_ast(thread_t thread); -extern void set_astledger(thread_t thread); extern int ledger_reference_count(ledger_t ledger); extern kern_return_t ledger_reference(ledger_t ledger);