20 #ifndef KNOWLEDGE_SYSTEM_H
21 #define KNOWLEDGE_SYSTEM_H
uint64_t * sensivity_array
struct Buffered_FIFO * data_entries
struct Knowledge_system_job Knowledge_system_job_new(struct Knowledge_system *ks)
Knowledge_system_job_new.
struct Data_entry ** entries
struct Knowledge_system_job Knowledge_system_submit_data_entry(struct Knowledge_system *ks, struct Data_entry *de)
Knowledge_system_submit_data_entry.
The Knowledge_system structure.
This is a struct defining a FIFO It is composed of several Buffered_FIFO_chunk.
void Knowledge_system_set_serial(struct Knowledge_system *ks, int is_serial)
sets the parallelism mode for this KS
struct representing a job that does the actual data processing (created by Knowledge_system) ...
The MALP_blackboard structure.
void(* process)(struct MALP_blackboard *bb, struct Data_entry **de, uint32_t entry_count, void *arg)
void Knowledge_system_set_process(struct Knowledge_system *ks, void(*process)(struct MALP_blackboard *bb, struct Data_entry **de, uint32_t entry_count, void *arg), void *arg)
sets the processing function to a Knowledge_system
int Knowledge_system_has_unsatisfied_sensivities(struct Knowledge_system *ks)
Knowledge_system_has_unsatisfied_sensivities.
void Knowledge_system_release(struct Knowledge_system *ks)
Knowledge_system release.
volatile unsigned int MALP_Spinlock
The type of spinlocks in MALP.
void(* process)(struct MALP_blackboard *bb, struct Data_entry **de, uint32_t entry_count, void *arg)
uint64_t ks_type
the type of Knowledge_system
Struct defining a piece of data that can exist on the blackboard.
uint64_t * sensivity_keys
void Knowledge_system_job_release(struct Knowledge_system_job *ksj)
Knowledge_system_job_release.
void Knowledge_system_init(struct Knowledge_system *ks, uint64_t type, uint64_t *sensivity_keys, uint32_t sensivity_count, void(*process)(struct MALP_blackboard *bb, struct Data_entry **de, uint32_t entry_count, void *arg), void *arg)
Initializes a Knowledge_system.