Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 17 jdk.incubator.foreign.jmod - JDK Incubator Foreign
JDK 17 jdk.incubator.foreign.jmod is the JMOD file for JDK 17 HTTP Server module.
JDK 17 Incubator Foreign module compiled class files are stored in \fyicenter\jdk-17.0.5\jmods\jdk.incubator.foreign.jmod.
JDK 17 Incubator Foreign module compiled class files are also linked and stored in the \fyicenter\jdk-17.0.5\lib\modules JImage file.
JDK 17 Incubator Foreign module source code files are stored in \fyicenter\jdk-17.0.5\lib\src.zip\jdk.incubator.foreign.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ jdk/internal/foreign/SystemLookup.java
/* * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package jdk.internal.foreign; import jdk.incubator.foreign.MemoryAccess; import jdk.incubator.foreign.MemorySegment; import jdk.incubator.foreign.ResourceScope; import jdk.incubator.foreign.SymbolLookup; import jdk.incubator.foreign.MemoryAddress; import jdk.internal.loader.NativeLibraries; import jdk.internal.loader.NativeLibrary; import java.nio.file.Files; import java.nio.file.Path; import java.util.Objects; import java.util.Optional; import java.util.function.Function; import static jdk.incubator.foreign.CLinker.C_POINTER; public class SystemLookup implements SymbolLookup { private SystemLookup() { } final static SystemLookup INSTANCE = new SystemLookup(); /* * On POSIX systems, dlsym will allow us to lookup symbol in library dependencies; the same trick doesn't work * on Windows. For this reason, on Windows we do not generate any side-library, and load msvcrt.dll directly instead. */ private static final SymbolLookup syslookup = switch (CABI.current()) { case SysV, LinuxAArch64, MacOsAArch64 -> libLookup(libs -> libs.loadLibrary("syslookup")); case Win64 -> makeWindowsLookup(); // out of line to workaround javac crash }; private static SymbolLookup makeWindowsLookup() { Path system32 = Path.of(System.getenv("SystemRoot"), "System32"); Path ucrtbase = system32.resolve("ucrtbase.dll"); Path msvcrt = system32.resolve("msvcrt.dll"); boolean useUCRT = Files.exists(ucrtbase); Path stdLib = useUCRT ? ucrtbase : msvcrt; SymbolLookup lookup = libLookup(libs -> libs.loadLibrary(null, stdLib.toFile())); if (useUCRT) { // use a fallback lookup to look up inline functions from fallback lib SymbolLookup fallbackLibLookup = libLookup(libs -> libs.loadLibrary("WinFallbackLookup")); int numSymbols = WindowsFallbackSymbols.values().length; MemorySegment funcs = fallbackLibLookup.lookup("funcs").orElseThrow() .asSegment(C_POINTER.byteSize() * numSymbols, ResourceScope.newImplicitScope()); SymbolLookup fallbackLookup = name -> Optional.ofNullable(WindowsFallbackSymbols.valueOfOrNull(name)) .map(symbol -> MemoryAccess.getAddressAtIndex(funcs, symbol.ordinal())); final SymbolLookup finalLookup = lookup; lookup = name -> finalLookup.lookup(name).or(() -> fallbackLookup.lookup(name)); } return lookup; } private static SymbolLookup libLookup(Function<NativeLibraries, NativeLibrary> loader) { NativeLibrary lib = loader.apply(NativeLibraries.rawNativeLibraries(SystemLookup.class, false)); return name -> { Objects.requireNonNull(name); try { long addr = lib.lookup(name); return addr == 0 ? Optional.empty() : Optional.of(MemoryAddress.ofLong(addr)); } catch (NoSuchMethodException e) { return Optional.empty(); } }; } @Override public Optional<MemoryAddress> lookup(String name) { return syslookup.lookup(name); } public static SystemLookup getInstance() { return INSTANCE; } // fallback symbols missing from ucrtbase.dll // this list has to be kept in sync with the table in the companion native library private enum WindowsFallbackSymbols { // stdio fprintf, fprintf_s, fscanf, fscanf_s, fwprintf, fwprintf_s, fwscanf, fwscanf_s, printf, printf_s, scanf, scanf_s, snprintf, sprintf, sprintf_s, sscanf, sscanf_s, swprintf, swprintf_s, swscanf, swscanf_s, vfprintf, vfprintf_s, vfscanf, vfscanf_s, vfwprintf, vfwprintf_s, vfwscanf, vfwscanf_s, vprintf, vprintf_s, vscanf, vscanf_s, vsnprintf, vsnprintf_s, vsprintf, vsprintf_s, vsscanf, vsscanf_s, vswprintf, vswprintf_s, vswscanf, vswscanf_s, vwprintf, vwprintf_s, vwscanf, vwscanf_s, wprintf, wprintf_s, wscanf, wscanf_s, // time gmtime ; static WindowsFallbackSymbols valueOfOrNull(String name) { try { return valueOf(name); } catch (IllegalArgumentException e) { return null; } } } }
⏎ jdk/internal/foreign/SystemLookup.java
Or download all of them as a single archive file:
File name: jdk.incubator.foreign-17.0.5-src.zip File size: 168767 bytes Release date: 2022-09-13 Download
⇒ JDK 17 jdk.incubator.vector.jmod - JDK Incubator Vector
2023-10-04, 5916👍, 0💬
Popular Posts:
The JMX technology provides the tools for building distributed, Web-based, modular and dynamic solut...
Apache Log4j API provides the interface that applications should code to and provides the adapter co...
Apache Log4j provides the interface that applications should code to and provides the adapter compon...
Apache Commons Codec library provides implementations of common encoders and decoders such as Base64...
MP3SPI is a Java Service Provider Interface that adds MP3 (MPEG 1/2/2.5 Layer 1/2/3) audio format su...