genode/repos/libports/src/test/spark/startup.cc

53 lines
1000 B
C++

/*
* \brief Wrapper for the Ada main program
* \author Norman Feske
* \date 2009-09-23
*/
/* Genode includes */
#include <base/log.h>
#include <base/component.h>
/* local includes */
#include <machinery.h>
/**
* Declaration of the Ada main procedure
*/
extern "C" void _ada_main(void);
extern "C" void add_package__add(int, int, int*);
/**
* Make the linker happy
*/
extern "C" void __gnat_eh_personality()
{
Genode::warning(__func__, " not implemented");
}
extern "C" void __gnat_rcheck_CE_Overflow_Check()
{
Genode::warning(__func__, " not implemented");
}
extern "C" void adainit();
extern "C" void adafinal();
/**
* Wrapper for the Ada main program
*
* This function is called on Genode component startup. It may be used to
* initialize memory objects at fixed virtual addresses prior calling the Ada
* main program.
*/
void Component::construct(Genode::Env &env)
{
adainit();
_ada_main();
test_spark_object_construction();
adafinal();
env.parent().exit(0);
}