LCOV - code coverage report
Current view: top level - core/src/gvt - gvt.h Hit Total Coverage
Test: ROOT-Sim master Documentation Coverage Lines: 3 13 23.1 %
Date: 2021-03-25 15:11:55

          Line data    Source code
       1           1 : /**
       2             :  * @file gvt/gvt.h
       3             :  *
       4             :  * @brief Global Virtual Time
       5             :  *
       6             :  * SPDX-FileCopyrightText: 2008-2021 HPDCS Group <rootsim@googlegroups.com>
       7             :  * SPDX-License-Identifier: GPL-3.0-only
       8             :  */
       9             : #pragma once
      10             : 
      11             : #include <core/core.h>
      12             : #include <lp/msg.h>
      13             : 
      14             : #include <stdalign.h>
      15             : 
      16           0 : extern void gvt_global_init(void);
      17           0 : extern simtime_t gvt_phase_run(void);
      18           0 : extern void gvt_on_msg_extraction(simtime_t msg_t);
      19             : 
      20           0 : extern __thread _Bool gvt_phase;
      21           0 : extern _Thread_local uint32_t remote_msg_seq[2][MAX_NODES];
      22           0 : extern _Thread_local uint32_t remote_msg_received[2];
      23             : 
      24           1 : extern void gvt_start_processing(void);
      25           1 : extern void gvt_on_done_ctrl_msg(void);
      26             : 
      27           0 : inline void gvt_remote_msg_send(struct lp_msg *msg, nid_t dest_nid)
      28             : {
      29             :         msg->m_seq = (remote_msg_seq[gvt_phase][dest_nid]++ << 1) | gvt_phase;
      30             :         msg->raw_flags = (nid << (MAX_THREADS_EXP + 2)) | ((rid + 1) << 2) |
      31             :                         gvt_phase;
      32             : }
      33             : 
      34           0 : inline void gvt_remote_anti_msg_send(struct lp_msg *msg, nid_t dest_nid)
      35             : {
      36             :         ++remote_msg_seq[gvt_phase][dest_nid];
      37             :         msg->raw_flags |= gvt_phase << 1U;
      38             : }
      39             : 
      40           0 : inline void gvt_remote_msg_receive(struct lp_msg *msg)
      41             : {
      42             :         ++remote_msg_received[msg->raw_flags & 1U];
      43             :         msg->raw_flags &= ~((uint32_t)3U);
      44             : }
      45             : 
      46           0 : inline void gvt_remote_anti_msg_receive(struct lp_msg *msg)
      47             : {
      48             :         ++remote_msg_received[(msg->raw_flags >> 1U) & 1U];
      49             :         msg->raw_flags &= ~((uint32_t)3U);
      50             :         msg->raw_flags |= MSG_FLAG_ANTI;
      51             : }
      52             : 

Generated by: LCOV version 1.14