< prev index next > src/hotspot/share/prims/universalNativeInvoker.hpp
Print this page
*/
#ifndef SHARE_VM_PRIMS_UNIVERSALNATIVEINVOKER_HPP
#define SHARE_VM_PRIMS_UNIVERSALNATIVEINVOKER_HPP
- #include "runtime/stubCodeGenerator.hpp"
#include "prims/foreign_globals.hpp"
! class ProgrammableInvoker: AllStatic {
- private:
- static constexpr CodeBuffer::csize_t native_invoker_size = 1024;
-
- class Generator : StubCodeGenerator {
- private:
- const ABIDescriptor* _abi;
- const BufferLayout* _layout;
- public:
- Generator(CodeBuffer* code, const ABIDescriptor* abi, const BufferLayout* layout);
! void generate();
- };
public:
! using Stub = void(*)(address);
!
! static void invoke_native(Stub stub, address buff, JavaThread* thread);
! static address generate_adapter(jobject abi, jobject layout);
};
#endif // SHARE_VM_PRIMS_UNIVERSALNATIVEINVOKER_HPP
*/
#ifndef SHARE_VM_PRIMS_UNIVERSALNATIVEINVOKER_HPP
#define SHARE_VM_PRIMS_UNIVERSALNATIVEINVOKER_HPP
#include "prims/foreign_globals.hpp"
! class RuntimeStub;
! class ProgrammableInvoker: AllStatic {
public:
! static RuntimeStub* make_native_invoker(BasicType*,
! int num_args,
! BasicType ret_bt,
! const ABIDescriptor& abi,
+ const GrowableArray<VMReg>& input_registers,
+ const GrowableArray<VMReg>& output_registers,
+ bool needs_return_buffer);
};
#endif // SHARE_VM_PRIMS_UNIVERSALNATIVEINVOKER_HPP
< prev index next >