5#ifndef RUNTIME_VM_COMPILER_FFI_MARSHALLER_H_
6#define RUNTIME_VM_COMPILER_FFI_MARSHALLER_H_
8#if defined(DART_PRECOMPILED_RUNTIME)
9#error "AOT runtime should not use compiler sources (including header files)"
67 intptr_t arg_index)
const;
68 intptr_t
DefinitionIndex(intptr_t def_index_in_arg, intptr_t arg_index)
const;
107 AbstractTypePtr
CType(intptr_t arg_index)
const;
109 AbstractTypePtr
DartType(intptr_t arg_index)
const;
146 bool IsBool(intptr_t arg_index)
const;
202 intptr_t function_params_start_at,
215 native_calling_convention) {}
258 native_calling_convention),
268 intptr_t def_index)
const;
273 if (native_loc.IsPointerToMemory()) {
274 return native_loc.AsPointerToMemory().pointer_location().AsLocation();
276 return native_loc.AsLocation();
const T & At(intptr_t index) const
bool IsPointerPointer(intptr_t arg_index) const
bool IsCompoundPointer(intptr_t arg_index) const
bool IsBool(intptr_t arg_index) const
bool IsPointerDartType(intptr_t arg_index) const
BaseMarshaller(Zone *zone, const Function &dart_signature, intptr_t dart_signature_params_start_at, const FunctionType &c_signature, const NativeCallingConvention &native_calling_convention)
intptr_t DefinitionIndex(intptr_t def_index_in_arg, intptr_t arg_index) const
const Function & dart_signature() const
const FunctionType & c_signature() const
bool ArgumentIndexIsReturn(intptr_t arg_index) const
intptr_t dart_signature_params_start_at() const
bool IsPointerCType(intptr_t arg_index) const
const NativeCallingConvention & native_calling_convention_
bool IsCompoundCType(intptr_t arg_index) const
bool RequiresBitCast(intptr_t index) const
void RepsInFfiCall(intptr_t arg_index, GrowableArray< Representation > *out) const
bool DefinitionIndexIsReturn(intptr_t def_index_global) const
virtual intptr_t NumReturnDefinitions() const =0
intptr_t FirstDefinitionIndex(intptr_t arg_index) const
const FunctionType & c_signature_
virtual Representation RepInFfiCall(intptr_t def_index_global) const
const intptr_t dart_signature_params_start_at_
Representation RepInDart(intptr_t arg_index) const
bool IsTypedDataPointer(intptr_t arg_index) const
intptr_t ArgumentIndex(intptr_t def_index_global) const
const Function & dart_signature_
const NativeLocation & Location(intptr_t arg_index) const
bool IsHandleCType(intptr_t arg_index) const
bool contains_varargs() const
bool IsVoid(intptr_t arg_index) const
StringPtr function_name() const
virtual intptr_t NumDefinitions(intptr_t arg_index) const
const NativeType & SignExtendFrom(intptr_t arg_index) const
intptr_t NumArgumentDefinitions() const
AbstractTypePtr CType(intptr_t arg_index) const
bool ContainsHandles() const
intptr_t DefinitionInArgument(intptr_t def_index_global, intptr_t arg_index) const
AbstractTypePtr DartType(intptr_t arg_index) const
intptr_t num_args() const
virtual intptr_t NumDefinitions(intptr_t arg_index) const
CallMarshaller(Zone *zone, const Function &dart_signature, intptr_t dart_signature_params_start_at, const FunctionType &c_signature, const NativeCallingConvention &native_calling_convention)
intptr_t PassByPointerStackOffset(intptr_t arg_index) const
dart::Location LocInFfiCall(intptr_t def_index_global) const
virtual intptr_t NumReturnDefinitions() const
intptr_t RequiredStackSpaceInBytes() const
static CallMarshaller * FromFunction(Zone *zone, const Function &function, intptr_t function_params_start_at, const FunctionType &c_signature, const char **error)
bool ReturnsCompound() const
virtual Representation RepInFfiCall(intptr_t def_index_global) const
intptr_t CompoundReturnSizeInBytes() const
const NativeLocation & NativeLocationOfNativeParameter(intptr_t def_index) const
virtual intptr_t NumDefinitions(intptr_t arg_index) const
virtual Representation RepInFfiCall(intptr_t def_index_global) const
const NativeLocations & callback_locs_
static CallbackMarshaller * FromFunction(Zone *zone, const Function &function, const char **error)
CallbackMarshaller(Zone *zone, const Function &dart_signature, const FunctionType &c_signature, const NativeCallingConvention &native_calling_convention, const NativeLocations &callback_locs)
dart::Location LocationOfNativeParameter(intptr_t def_index) const
virtual intptr_t NumReturnDefinitions() const
const NativeLocation & return_location() const
const NativeLocations & argument_locations() const
bool contains_varargs() const
const NativeType & container_type() const
const NativeType & payload_type() const
virtual bool IsInt() const
virtual bool IsFloat() const
const uint8_t uint32_t uint32_t GError ** error
Dart_NativeFunction function
const intptr_t kResultIndex
const NativeFunctionType * NativeFunctionTypeFromFunctionType(Zone *zone, const FunctionType &c_signature, const char **error)