Line data Source code
1 1 : /** 2 : * @file lp/process.h 3 : * 4 : * @brief LP state management functions 5 : * 6 : * LP state management functions 7 : * 8 : * SPDX-FileCopyrightText: 2008-2021 HPDCS Group <rootsim@googlegroups.com> 9 : * SPDX-License-Identifier: GPL-3.0-only 10 : */ 11 : #pragma once 12 : 13 : #include <datatypes/array.h> 14 : #include <lp/msg.h> 15 : 16 : /// The message processing data produced by the LP 17 1 : struct process_data { 18 : /// The messages processed in the past by the owner LP 19 1 : dyn_array(struct lp_msg *) past_msgs; 20 : /// The messages sent in the past by the owner LP 21 : /** During a single message execution a LP may send several messages, 22 : * therefore a NULL entry per message processed is inserted in the 23 : * array in order to distinguish the originator message */ 24 1 : dyn_array(struct lp_msg *) sent_msgs; 25 : }; 26 : 27 0 : extern void process_global_init(void); 28 0 : extern void process_global_fini(void); 29 : 30 1 : extern void process_lp_init(void); 31 1 : extern void process_lp_deinit(void); 32 1 : extern void process_lp_fini(void); 33 : 34 0 : extern void process_msg(void); 35 0 : extern void process_msg_sent(struct lp_msg *msg);