#include #include #include #include #include #include #include #include #include #include struct ksym_s { char *name; ksym_fn function; }; // Simple methods // Name KGET_STR(sym, name); KSET_STR_ONCE(sym, name); // Function KGET(sym, ksym_fn, function); KSET(sym, ksym_fn, function); ksym_t *ksym_new(const char *name, ksym_fn function) { ksym_t *sym = NULL; if (faux_str_is_empty(name)) return NULL; sym = faux_zmalloc(sizeof(*sym)); assert(sym); if (!sym) return NULL; // Initialize sym->name = faux_str_dup(name); sym->function = function; return sym; } void ksym_free(ksym_t *sym) { if (!sym) return; faux_str_free(sym->name); faux_free(sym); }