#include enum { VAL_TYPE_PTR = 1<<0, VAL_TYPE_CHAR = 1<<1, VAL_TYPE_SHORT = 1<<2, VAL_TYPE_INT = 1<<3, VAL_TYPE_LONG = 1<<4, VAL_TYPE_FLOAT = 1<<5, VAL_TYPE_DOUBLE = 1<<6 }; typedef enum { VAL_OK, VAL_MEMORY, VAL_LH, VAL_UNKNOWN } val_rc_t; struct val_s; typedef struct val_s val_t; val_rc_t val_create (val_t **); val_rc_t val_destroy (val_t *); val_rc_t val_reg (val_t *, const char *, int, void *); val_rc_t val_set (val_t *, const char *, ...); val_rc_t val_get (val_t *, const char *, ...); val_rc_t val_vset (val_t *, const char *, va_list); val_rc_t val_vget (val_t *, const char *, va_list);