45 #define KS_COLL_AVOID 5
62 #define KEY_COLL_AVOID 5
78 #define NAME_COLL_AVOID 5
300 uint64_t a[2] = {
type, state};
int knowledge_system_test_func(void *pks, uint64_t key, void *arg)
knowledge_system_test_func
void MALP_blackboard_init(struct MALP_blackboard *bb, uint32_t workers_count, void *context)
MALP_blackboard initialisation.
static void MALP_Blackboard_remove_pending(struct MALP_blackboard *bb)
Decrements the number of pending data block counter.
int MALP_Blackboard_submit_data_entry(struct MALP_blackboard *bb, struct Data_entry *de)
MALP_Blackboard_submit_data_entry.
#define KS_COLL_AVOID
Number of KS cells (Number of elements)
static uint64_t MALP_Trace_crc64(char *source, uint64_t size)
Computes the hash of a given data.
void MALP_Blackboard_delete_ks(struct MALP_blackboard *bb, uint64_t type)
MALP_Blackboard_delete_ks.
static void MALP_blackboard_set_default_KS_handler(struct MALP_blackboard *bb, void(*default_handler)(struct MALP_blackboard *, uint64_t KS_id, struct Data_entry **, uint32_t, void *))
sets MALP_blackboard's default Knowledge system handler
This is the structure used to store the clusters (items that have the same hash)
struct Hash_Table_Internal ___
The Knowledge_system structure.
struct Hash_Table ks_table
The Knowledge system cell structure Structure containing an internal hash table and table of knowledg...
struct Hash_Table de_name_table
static uint64_t MALP_Blackboard_type_state_hash(uint64_t type, uint64_t state)
MALP_Blackboard_type_state_hash.
struct Hash_Table_Internal ___
int MALP_Blackboard_ks_present(struct MALP_blackboard *bb, uint64_t type)
test if a knowledge system is available in a MALP_Blackboard Test if a knowledge system of a specific...
int MALP_Spinlock_unlock(MALP_Spinlock *mutex)
Unlocks the given MALP_Spinlock.
void MALP_blackboard_release(struct MALP_blackboard *bb)
MALP_blackboard release.
void(* default_handler)(struct MALP_blackboard *, uint64_t KS_id, struct Data_entry **, uint32_t, void *arg)
The MALP_blackboard structure.
static int MALP_Blackboard_writable_data(struct Data_entry *de)
MALP_Blackboard_writable_data.
struct Hash_Table key_table
struct Knowledge_system * MALP_Blackboard_new_ks(struct MALP_blackboard *bb, uint64_t type, uint64_t *sensivities, uint32_t sensivities_count, void(*process)(struct MALP_blackboard *bb, struct Data_entry **de, uint32_t entry_count, void *arg), void *arg)
Create a new Knowledge system while associating a key (used as an id and a type) and a handler (proce...
void(* process)(struct MALP_blackboard *bb, struct Data_entry **de, uint32_t entry_count, void *arg)
static uint64_t MALP_Blackboard_pending(struct MALP_blackboard *bb)
Returns the number of pebnding data block counter.
static uint32_t MALP_blackboard_cpu_count(struct MALP_blackboard *bb)
Return the number of currently online processors for a MALP_blackboard.
void * name[NAME_COLL_AVOID]
struct Knowledge_system ks[KS_COLL_AVOID]
static uint64_t MALP_Blackboard_type_hash(uint64_t type)
MALP_Blackboard_type_hash.
This is the main hask table structure.
void MALP_blackboard_wait(struct MALP_blackboard *bb)
MALP_blackboard_wait Function to call the wait function for the Pbb workers of a MALP blackboard...
int MALP_Blackboard_submit_data(struct MALP_blackboard *bb, uint64_t key, void *payload, size_t payload_size)
MALP_Blackboard_submit_data.
Structure defining a parallel blackboard worker set.
static void MALP_Blackboard_add_pending(struct MALP_blackboard *bb)
Increments the number of pending data block counter.
static uint64_t Data_entry_get_ref_count(struct Data_entry *de)
Getter on the ref_count of a Data_entry.
The Name_cell structure Structure containing an internal hash table and table of cell names...
int MALP_Blackboard_resubmit_data_entry(struct MALP_blackboard *bb, struct Data_entry *de)
MALP_Blackboard_resubmit_data_entry.
int MALP_Spinlock_lock(MALP_Spinlock *mutex)
Locks the given MALP_Spinlock.
int empty_key_entry_test_func(void *pke, uint64_t key, void *arg)
empty_key_entry_test_func
volatile unsigned int MALP_Spinlock
The type of spinlocks in MALP.
int key_entry_test_func(void *pke, uint64_t key, void *arg)
key_entry_test_func
int empty_knowledge_system_test_func(void *pks, uint64_t key, void *arg)
empty_knowledge_system_test_func
struct Hash_Table_Internal ___
struct Key_entry ke[KEY_COLL_AVOID]
Struct defining a piece of data that can exist on the blackboard.
The Key_cell structure Structure containing an internal hash table and table of key entries ( Key ent...
#define KEY_COLL_AVOID
Number of column keys (Number of elements)
struct Pbb_workers workers
#define NAME_COLL_AVOID
Number of column names (Number of elements)
static void MALP_Blackboard_wait_pending(struct MALP_blackboard *bb, uint64_t value)
MALP_Blackboard_wait_pending.
volatile uint64_t pending_datas