Show misc_sim.h syntax highlighted
/*
*
* Copyright (c) 2003 The Regents of the University of California. All
* rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Neither the name of the University nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/* $Id: misc_sim.h,v 1.11 2005/04/01 04:59:24 girod Exp $ */
/**
* \file misc_sim.h
* \brief Functions needed by clients when running inside the simulator
*
* On the semantics of the sim flags.
*
* There are three variables that control the behavior of
* the system wrt simulation and emulation.
*
* my_node_id is the node ID for this stack. It may be
* a "real" ID or the ID of a "simulated" stack.
*
* in_sim is a flag that indicates you are part of a
* "simulated" stack, i.e. that more than one node
* will be running in your group on this machine.
* It is true when the SIM_ID env var is set.
*
* my_sim_group is the group number you are in. It is
* a misnomer because it does not imply you are in
* simulation mode -- it may mean that you are a
* sim component or just that you are using a channel
* so as not to collide with other real node traffic.
* It will be set to the value of the SIM_GROUP env
* variable.
*
*/
extern int in_sim;
void sim_init(char *proc_title);
char *sim_path(char *orig_path);
char *group_path(char *orig_path);
/** \brief returns true if our process is a "sim component" */
int sim_is_component();
/** \brief temporarily disable mangling done by sim_path */
void sim_path_disable();
/** \brief enable the mangling done by sim_path */
void sim_path_enable();
/** \brief enables sim components to temporarily 'become' another node */
int sim_become_node(node_id_t id);
int sim_restore_node();
/* look up the remote proxy, if we're in ceiling mode.
* this is passed via the SIM_PROXY_HOST environment var */
char *misc_sim_get_proxy_host(char *link_name, int *argc, char **argv);
See more files for this project here