mirror of
https://github.com/nasa/trick.git
synced 2024-12-24 23:36:43 +00:00
19025d77ad
Reorganized. Created a new top level include directory that will hold all of Trick's header files. Moved all of the Trick headers to this directory. Created a libexec directory that holds all of the executables that users don't need to execute directly. Changed all of the executables remaining in bin to start with "trick-". In the sim_services directories changed all source files to find the Trick headers in their new location. Since all of the include files are gone in sim_services, removed the src directories as well, moving all of the source files up a level. Moved the makefiles, docs, man, and other architecture independent files into a top level share directory. Renamed lib_${TRICK_HOST_CPU} to lib64 or lib depending on the platform we're currently on. refs #63
55 lines
1.4 KiB
C++
55 lines
1.4 KiB
C++
|
|
#include "trick/JITEvent.hh"
|
|
#include "trick/jit_input_file_proto.hh"
|
|
#include "trick/exec_proto.h"
|
|
#include "trick/message_proto.h"
|
|
|
|
// Default constructor used by Trick for checkpoints.
|
|
Trick::JITEvent::JITEvent() :
|
|
func_ptr(NULL) {
|
|
active = false ;
|
|
}
|
|
|
|
Trick::JITEvent::JITEvent(std::string in_func_name , std::string in_name , double in_cycle ) :
|
|
Trick::Event(in_name, in_cycle) ,
|
|
func_name(in_func_name) {
|
|
// Set active to true by default for all JITEvents
|
|
active = true ;
|
|
get_func_ptr_from_name() ;
|
|
}
|
|
|
|
/**
|
|
@details
|
|
-# call the function and return it's return value.
|
|
*/
|
|
int Trick::JITEvent::process( long long curr_time __attribute__ ((unused)) ) {
|
|
if ( func_ptr != NULL ) {
|
|
return (*func_ptr)() ;
|
|
}
|
|
return 1 ;
|
|
}
|
|
|
|
/**
|
|
@details
|
|
-# Get the function pointer associated with this event.
|
|
*/
|
|
void Trick::JITEvent::restart() {
|
|
get_func_ptr_from_name() ;
|
|
}
|
|
|
|
/**
|
|
@details
|
|
-# If func_name is not empty
|
|
-# Get the function pointer associated with the func_name
|
|
-# If the function is not found
|
|
-# Print an error message saying we can't find the function
|
|
*/
|
|
void Trick::JITEvent::get_func_ptr_from_name() {
|
|
if ( ! func_name.empty() ) {
|
|
func_ptr = (int (*)(void))jit_find_symbol(func_name) ;
|
|
if ( func_ptr == NULL ) {
|
|
message_publish( MSG_WARNING, "JITEvent could not find function named %s", func_name.c_str() ) ;
|
|
}
|
|
}
|
|
}
|