#include #include #include #include #include "common.h" #include "ipc.h" #include "io.h" #include "pa2345.h" #include "child.h" #include "banking.h" #define BALANCE_HIST_SIZE(hist) \ (sizeof(BalanceHistory) - (sizeof(hist->s_history) - hist->s_history_len)) /** Syncronization cycle. */ static void sync_state(proc_t *p, MessageType type, char *payload, size_t payload_len) { Message msg; msg.s_header = (MessageHeader) { .s_magic = MESSAGE_MAGIC, .s_payload_len = payload_len, .s_type = type, .s_local_time = 0 }; memcpy(msg.s_payload, payload, payload_len); send_multicast((void*)p, (const Message *)&msg); for (size_t i = 1; i <= p->procnum; i++) { if (i != p->self_id) while(receive((void*)p, i, &msg) != 0); } } /* Copy balance if there was no transfer on the