public final class CEntryPointSnippets extends SubstrateTemplates implements org.graalvm.compiler.replacements.Snippets
CEntryPointActions
and
CEntryPointNativeFunctions
for descriptions of the different ways of entering Java, and
later returning to C. This class is the inverse of CFunctionSnippets
.
This code transitions thread states, handles when a safepoint is in progress, sets the thread
register (if multi-threaded), and sets the heap base register (if enabled).Modifier and Type | Class and Description |
---|---|
protected class |
CEntryPointSnippets.EnterLowering |
protected class |
CEntryPointSnippets.LeaveLowering |
protected class |
CEntryPointSnippets.UtilityLowering |
Modifier and Type | Method and Description |
---|---|
static int |
attachThreadSnippet(org.graalvm.nativeimage.Isolate isolate,
boolean ensureJavaThread,
int vmThreadSize) |
static int |
createIsolateSnippet(CEntryPointCreateIsolateParameters parameters,
int vmThreadSize) |
static int |
detachThreadSnippet() |
static int |
enterIsolateSnippet(org.graalvm.nativeimage.Isolate isolate) |
static int |
enterSnippet(org.graalvm.nativeimage.IsolateThread thread) |
static void |
failFatallySnippet(int code,
org.graalvm.nativeimage.c.type.CCharPointer message) |
static boolean |
isAttachedSnippet(org.graalvm.nativeimage.Isolate isolate) |
static boolean |
isIsolateInitialized() |
static void |
registerForeignCalls(RuntimeConfiguration runtimeConfig,
org.graalvm.compiler.phases.util.Providers providers,
org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection,
Map<SnippetRuntime.SubstrateForeignCallDescriptor,SubstrateForeignCallLinkage> foreignCalls,
boolean hosted) |
static void |
registerLowerings(org.graalvm.compiler.options.OptionValues options,
Iterable<org.graalvm.compiler.debug.DebugHandlersFactory> factories,
org.graalvm.compiler.phases.util.Providers providers,
org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection,
int vmThreadSize,
Map<Class<? extends org.graalvm.compiler.graph.Node>,NodeLoweringProvider<?>> lowerings) |
static int |
reportExceptionSnippet(Throwable exception) |
static int |
returnFromJavaToCSnippet() |
static int |
runtimeCall(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor,
CEntryPointCreateIsolateParameters parameters,
int vmThreadSize) |
static int |
runtimeCall(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor,
org.graalvm.nativeimage.Isolate isolate) |
static int |
runtimeCall(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor,
org.graalvm.nativeimage.Isolate isolate,
int vmThreadSize) |
static int |
runtimeCall(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor,
org.graalvm.nativeimage.IsolateThread thread) |
static int |
runtimeCall(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor,
Throwable exception) |
static void |
runtimeCallEnsureJavaThread(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor) |
static void |
runtimeCallFailFatally(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor,
int code,
org.graalvm.nativeimage.c.type.CCharPointer message) |
static int |
runtimeCallInitializeIsolate(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor) |
static boolean |
runtimeCallIsAttached(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor,
org.graalvm.nativeimage.Isolate isolate) |
static int |
runtimeCallTearDownIsolate(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor) |
static void |
setHeapBase(org.graalvm.word.PointerBase heapBase) |
static int |
tearDownIsolateSnippet() |
snippet, snippet, snippet, snippet
public static final SnippetRuntime.SubstrateForeignCallDescriptor CREATE_ISOLATE
public static final SnippetRuntime.SubstrateForeignCallDescriptor INITIALIZE_ISOLATE
public static final SnippetRuntime.SubstrateForeignCallDescriptor ATTACH_THREAD
public static final SnippetRuntime.SubstrateForeignCallDescriptor ENSURE_JAVA_THREAD
public static final SnippetRuntime.SubstrateForeignCallDescriptor ENTER_ISOLATE_MT
public static final SnippetRuntime.SubstrateForeignCallDescriptor DETACH_THREAD_MT
public static final SnippetRuntime.SubstrateForeignCallDescriptor REPORT_EXCEPTION
public static final SnippetRuntime.SubstrateForeignCallDescriptor TEAR_DOWN_ISOLATE
public static final SnippetRuntime.SubstrateForeignCallDescriptor IS_ATTACHED_MT
public static final SnippetRuntime.SubstrateForeignCallDescriptor FAIL_FATALLY
public static final SnippetRuntime.SubstrateForeignCallDescriptor VERIFY_ISOLATE_THREAD
public static final SnippetRuntime.SubstrateForeignCallDescriptor[] FOREIGN_CALLS
public static int runtimeCall(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor, CEntryPointCreateIsolateParameters parameters, int vmThreadSize)
public static int runtimeCall(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor, org.graalvm.nativeimage.Isolate isolate, int vmThreadSize)
public static int runtimeCall(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor, org.graalvm.nativeimage.Isolate isolate)
public static int runtimeCall(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor, org.graalvm.nativeimage.IsolateThread thread)
public static int runtimeCall(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor, Throwable exception)
public static int runtimeCallInitializeIsolate(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor)
public static int runtimeCallTearDownIsolate(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor)
public static boolean runtimeCallIsAttached(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor, org.graalvm.nativeimage.Isolate isolate)
public static void runtimeCallFailFatally(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor, int code, org.graalvm.nativeimage.c.type.CCharPointer message)
public static void setHeapBase(org.graalvm.word.PointerBase heapBase)
public static int createIsolateSnippet(CEntryPointCreateIsolateParameters parameters, int vmThreadSize)
public static boolean isIsolateInitialized()
public static int attachThreadSnippet(org.graalvm.nativeimage.Isolate isolate, boolean ensureJavaThread, int vmThreadSize)
public static void runtimeCallEnsureJavaThread(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor)
public static int detachThreadSnippet()
public static int tearDownIsolateSnippet()
public static int enterIsolateSnippet(org.graalvm.nativeimage.Isolate isolate)
public static int enterSnippet(org.graalvm.nativeimage.IsolateThread thread)
public static int reportExceptionSnippet(Throwable exception)
public static int returnFromJavaToCSnippet()
public static boolean isAttachedSnippet(org.graalvm.nativeimage.Isolate isolate)
public static void failFatallySnippet(int code, org.graalvm.nativeimage.c.type.CCharPointer message)
public static void registerForeignCalls(RuntimeConfiguration runtimeConfig, org.graalvm.compiler.phases.util.Providers providers, org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection, Map<SnippetRuntime.SubstrateForeignCallDescriptor,SubstrateForeignCallLinkage> foreignCalls, boolean hosted)
public static void registerLowerings(org.graalvm.compiler.options.OptionValues options, Iterable<org.graalvm.compiler.debug.DebugHandlersFactory> factories, org.graalvm.compiler.phases.util.Providers providers, org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection, int vmThreadSize, Map<Class<? extends org.graalvm.compiler.graph.Node>,NodeLoweringProvider<?>> lowerings)