|
| #define | SUBSET(x, y) ((x & y) == x) |
| | Is x a subset of y? More...
|
| |
| #define | __unused |
| |
| #define | tesla_panic(...) errx(1, __VA_ARGS__) |
| | errx() is the userspace equivalent of panic(). More...
|
| |
| #define | tesla_assert(condition,...) assert(condition) |
| | POSIX assert() doesn't let us provide an error message. More...
|
| |
| #define | tesla_malloc(len) calloc(1, len) |
| |
| #define | tesla_free(x) free(x) |
| |
| #define | tesla_lock(l) do { __debug int err = pthread_mutex_lock(l); assert(err == 0); } while(0) |
| |
| #define | tesla_unlock(l) do { __debug int err = pthread_mutex_unlock(l); assert(err == 0); } while(0) |
| |
| #define | TESLA_MAX_CLASSES 128 |
| |
| #define | TESLA_MAX_INSTANCES 128 |
| |
| #define | SAFE_SPRINTF(current, end,...) |
| | Do a sprintf() into a buffer, checking bounds appropriately. More...
|
| |
| #define | print(...) printf(__VA_ARGS__) |
| |
| #define | error(...) fprintf(stderr, __VA_ARGS__) |
| |
| #define | __debug |
| |
| #define | DEBUG(dclass,...) if (tesla_debugging(#dclass)) printf(__VA_ARGS__) |
| | Emit debugging information with a debug name (e.g., libtesla.event). More...
|
| |
|
| void | tesla_die (int32_t errno, const char *event) __attribute__((noreturn)) |
| | Call this if things go catastrophically, unrecoverably wrong. More...
|
| |
| int32_t | tesla_store_reset (struct tesla_store *store) |
| | Reset all automata in a store to the inactive state. More...
|
| |
| void | tesla_store_free (struct tesla_store *) |
| | Clean up a tesla_store. More...
|
| |
| void | tesla_class_reset (struct tesla_class *) |
| | Reset a tesla_class for re-use from a clean state. More...
|
| |
| void | tesla_class_destroy (struct tesla_class *) |
| | Clean up a tesla_class. More...
|
| |
| int32_t | tesla_instance_new (struct tesla_class *tclass, const struct tesla_key *name, uint32_t state, struct tesla_instance **out) |
| | Create a new tesla_instance. More...
|
| |
| int32_t | tesla_instance_active (const struct tesla_instance *i) |
| | Checks whether or not a TESLA automata instance is active (in use). More...
|
| |
| int32_t | tesla_instance_clone (struct tesla_class *tclass, const struct tesla_instance *orig, struct tesla_instance **copy) |
| | Clone an existing instance into a new instance. More...
|
| |
| void | tesla_instance_clear (struct tesla_instance *tip) |
| | Zero an instance for re-use. More...
|
| |
| int32_t | tesla_match (struct tesla_class *tclass, const struct tesla_key *key, struct tesla_instance **array, uint32_t *size) |
| | Find all automata instances in a class that match a particular key. More...
|
| |
| int32_t | tesla_key_matches (const struct tesla_key *pattern, const struct tesla_key *k) |
| | Check to see if a key matches a pattern. More...
|
| |
| enum tesla_action_t | tesla_action (const struct tesla_instance *, const struct tesla_key *, const struct tesla_transitions *, const struct tesla_transition **trigger) |
| | What is the correct action to perform on a given tesla_instance to satisfy a set of tesla_transitions? More...
|
| |
| int32_t | tesla_key_union (struct tesla_key *dest, const struct tesla_key *source) |
| | Copy new entries from source into dest. More...
|
| |
| int | tesla_store_init (tesla_store *, enum tesla_context context, uint32_t classes, uint32_t instances) |
| | Initialise tesla_store internals. More...
|
| |
| int | tesla_class_init (struct tesla_class *, enum tesla_context context, uint32_t instances) |
| | Initialize tesla_class internals. More...
|
| |
| int32_t | tesla_class_global_postinit (struct tesla_class *) |
| |
| void | tesla_class_global_acquire (struct tesla_class *) |
| |
| void | tesla_class_global_release (struct tesla_class *) |
| |
| void | tesla_class_global_destroy (struct tesla_class *) |
| |
| int32_t | tesla_class_perthread_postinit (struct tesla_class *) |
| |
| void | tesla_class_perthread_acquire (struct tesla_class *) |
| |
| void | tesla_class_perthread_release (struct tesla_class *) |
| |
| void | tesla_class_perthread_destroy (struct tesla_class *) |
| |
| void | ev_new_instance (struct tesla_class *, struct tesla_instance *) |
| |
| void | ev_transition (struct tesla_class *, struct tesla_instance *, const struct tesla_transition *) |
| |
| void | ev_clone (struct tesla_class *, struct tesla_instance *orig, struct tesla_instance *copy, const struct tesla_transition *) |
| |
| void | ev_no_instance (struct tesla_class *, const struct tesla_key *, const struct tesla_transitions *) |
| |
| void | ev_bad_transition (struct tesla_class *, struct tesla_instance *, const struct tesla_transitions *) |
| |
| void | ev_err (struct tesla_class *tcp, int errno, const char *message) |
| |
| void | ev_accept (struct tesla_class *, struct tesla_instance *) |
| |
| void | ev_ignored (const struct tesla_class *, const struct tesla_key *, const struct tesla_transitions *) |
| |
| int32_t | tesla_debugging (const char *) |
| | Are we in (verbose) debug mode? More...
|
| |
| void | assert_instanceof (struct tesla_instance *i, struct tesla_class *tclass) |
| | Assert that a tesla_instance is an instance of a tesla_class. More...
|
| |
| char * | key_string (char *buffer, const char *end, const struct tesla_key *) |
| | Print a key into a buffer. More...
|
| |
| void | print_key (const char *debug_name, const struct tesla_key *key) |
| | Print a tesla_key to stderr. More...
|
| |
| void | print_class (const struct tesla_class *) |
| | Print a tesla_class to stderr. More...
|
| |
| void | print_transition (const char *debug, const struct tesla_transition *) |
| | Print a human-readable version of a tesla_transition. More...
|
| |
| char * | sprint_transition (char *buffer, const char *end, const struct tesla_transition *) |
| | Print a human-readable version of a tesla_transition into a buffer. More...
|
| |
| void | print_transitions (const char *debug, const struct tesla_transitions *) |
| | Print a human-readable version of tesla_transitions. More...
|
| |
| char * | sprint_transitions (char *buffer, const char *end, const struct tesla_transitions *) |
| | Print a human-readable version of tesla_transitions into a buffer. More...
|
| |