2015-01-21 15:34:05 +01:00
|
|
|
#pragma once
|
2016-02-01 22:53:16 +01:00
|
|
|
|
|
|
|
|
#include "ARMv7Function.h"
|
2015-01-21 15:34:05 +01:00
|
|
|
|
|
|
|
|
namespace vm
|
|
|
|
|
{
|
|
|
|
|
template<typename AT, typename RT, typename... T>
|
2016-08-03 22:51:05 +02:00
|
|
|
FORCE_INLINE RT _ptr_base<RT(T...), AT>::operator()(ARMv7Thread& cpu, T... args) const
|
2015-01-21 15:34:05 +01:00
|
|
|
{
|
2016-02-01 22:53:16 +01:00
|
|
|
return arm_func_detail::func_caller<RT, T...>::call(cpu, vm::cast(this->addr(), HERE), args...);
|
2015-01-21 15:34:05 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2016-02-01 22:53:16 +01:00
|
|
|
template<typename RT, typename... T> inline RT cb_call(ARMv7Thread& cpu, u32 addr, T... args)
|
2015-01-21 15:34:05 +01:00
|
|
|
{
|
2016-02-01 22:53:16 +01:00
|
|
|
return arm_func_detail::func_caller<RT, T...>::call(cpu, addr, args...);
|
2015-01-28 13:59:16 +01:00
|
|
|
}
|