struct Chained_List target_ks
the list of Knowledge_system identified by this key entry
void Key_entry_push_ks(struct Key_entry *ke, struct Knowledge_system *ks)
associates a Knowledge_system to a key entry
void Key_entry_clear_ks(struct Key_entry *ke)
Clear all references to Ks in this entry.
void Key_entry_pop_ks(struct Key_entry *ke, struct Knowledge_system *ks)
Removes an association between a Knowledge_system and its key.
MALP_Spinlock lock
a lock for concurrent access
void Key_entry_init(struct Key_entry *ke, uint64_t key)
Init a key entry with given key.
void Key_entry_walk(struct Key_entry *ke, int(*handler)(struct Knowledge_system *, void *), void *arg)
Call a handler on every Ks of a key entry.
int Key_entry_has_KS_type(struct Key_entry *ke, uint64_t type)
Check if a KS type is present in a key entry.
struct Knowledge_system ** Key_entry_get_ks(struct Key_entry *ke, struct Knowledge_system *ks)
Search in the key entry if a Knowledge_system is associated with it.
void Key_entry_release(struct Key_entry *ke)
Clears a key entry.
uint8_t freed
set to one when the entry is released, 0 otherwise
int Key_entry_get_count(struct Key_entry *ke)
Get the number of Ks in this entry.