SimGrid
3.16
Versatile Simulation of Distributed Systems
|
#include <xbt/base.h>
#include <simgrid/simix.h>
#include <src/kernel/activity/ActivityImpl.hpp>
#include <src/kernel/activity/CommImpl.hpp>
#include <boost/intrusive_ptr.hpp>
#include "popping_enum.h"
#include "popping_accessors.h"
Classes | |
union | u_smx_scalar |
struct | s_smx_simcall |
Represents a simcall to the kernel. More... | |
Macros | |
#define | SIMCALL_SET_MC_VALUE(simcall, value) ((simcall)->mc_value = (value)) |
#define | SIMCALL_GET_MC_VALUE(simcall) ((simcall)->mc_value) |
Typedefs | |
typedef int(* | simix_match_func_t) (void *, void *, smx_activity_t) |
typedef void(* | simix_copy_data_func_t) (smx_activity_t, void *, size_t) |
typedef void(* | simix_clean_func_t) (void *) |
typedef void(* | FPtr) (void) |
Functions | |
void | SIMIX_simcall_answer (smx_simcall_t simcall) |
void | SIMIX_simcall_handle (smx_simcall_t simcall, int value) |
(in kernel mode) unpack the simcall and activate the handler More... | |
void | SIMIX_simcall_exit (smx_activity_t synchro) |
const char * | SIMIX_simcall_name (e_smx_simcall_t kind) |
returns a printable string representing a simcall More... | |
void | SIMIX_run_kernel (std::function< void()> const *code) |
void | SIMIX_run_blocking (std::function< void()> const *code) |
Kernel code for run_blocking. More... | |
Variables | |
const char * | simcall_names [] |
Simcalls' names (generated from src/simix/simcalls.in) More... | |
#define SIMCALL_GET_MC_VALUE | ( | simcall | ) | ((simcall)->mc_value) |
typedef int(* simix_match_func_t) (void *, void *, smx_activity_t) |
typedef void(* simix_copy_data_func_t) (smx_activity_t, void *, size_t) |
void SIMIX_simcall_answer | ( | smx_simcall_t | simcall | ) |
void SIMIX_simcall_handle | ( | smx_simcall_t | simcall, |
int | value | ||
) |
(in kernel mode) unpack the simcall and activate the handler
This function is generated from src/simix/simcalls.in
void SIMIX_simcall_exit | ( | smx_activity_t | synchro | ) |
const char* SIMIX_simcall_name | ( | e_smx_simcall_t | kind | ) |
returns a printable string representing a simcall
void SIMIX_run_kernel | ( | std::function< void()> const * | code | ) |
void SIMIX_run_blocking | ( | std::function< void()> const * | code | ) |
Kernel code for run_blocking.
The implementtion looks a lot like SIMIX_run_kernel ^^
However, this run_blocking
is blocking so the process will not be woken up until SIMIX_simcall_answer(simcall)
is called by the kernel. This means that
code` is responsible for doing this.
const char* simcall_names[] |
Simcalls' names (generated from src/simix/simcalls.in)