diff a/src/java.base/macosx/classes/jdk/internal/sys/in6_h$constants.java b/src/java.base/macosx/classes/jdk/internal/sys/in6_h$constants.java --- /dev/null +++ b/src/java.base/macosx/classes/jdk/internal/sys/in6_h$constants.java @@ -0,0 +1,55 @@ +// Generatable but for now somewhat handcrafted to encapsulate the layouts +// generated by JStruct, with some additional memory handles and accessors to +// mirror that of the what jextract generates as dynamic constants. +package jdk.internal.sys; + +import jdk.incubator.foreign.MemoryLayout; +import jdk.incubator.foreign.MemoryLayout.PathElement; +import jdk.incubator.foreign.MemoryLayouts; +import java.lang.invoke.VarHandle; + +final class in6_h$constants { + + private static final MemoryLayout Cin6_addr$LAYOUT = MemoryLayout.ofStruct( + MemoryLayout.ofUnion( + MemoryLayout.ofSequence(16, MemoryLayouts.BITS_8_LE).withName("__u6_addr8"), + MemoryLayout.ofSequence(8, MemoryLayouts.BITS_16_LE).withName("__u6_addr16"), + MemoryLayout.ofSequence(4, MemoryLayouts.BITS_32_LE).withName("__u6_addr32") + ).withName("__u6_addr") + ).withName("in6_addr"); + static final MemoryLayout Cin6_addr$LAYOUT() { + return Cin6_addr$LAYOUT; + } + + private static final MemoryLayout Csockaddr_in6$LAYOUT = MemoryLayout.ofStruct( + MemoryLayouts.BITS_8_LE.withName("sin6_len"), + MemoryLayouts.BITS_8_LE.withName("sin6_family"), + MemoryLayouts.BITS_16_BE.withName("sin6_port"), + MemoryLayouts.BITS_32_LE.withName("sin6_flowinfo"), + Cin6_addr$LAYOUT, + MemoryLayouts.BITS_32_LE.withName("sin6_scope_id") + ).withName("sockaddr_in6"); + private static final VarHandle sin6_len$VH = Csockaddr_in6$LAYOUT.varHandle(byte.class, PathElement.groupElement("sin6_len")); + private static final VarHandle sin6_family$VH = Csockaddr_in6$LAYOUT.varHandle(byte.class, PathElement.groupElement("sin6_family")); + private static final VarHandle sin6_port$VH = Csockaddr_in6$LAYOUT.varHandle(short.class, PathElement.groupElement("sin6_port")); + private static final VarHandle sin6_flowinfo$VH = Csockaddr_in6$LAYOUT.varHandle(int.class, PathElement.groupElement("sin6_flowinfo")); + private static final VarHandle sin6_scope_id$VH = Csockaddr_in6$LAYOUT.varHandle(int.class, PathElement.groupElement("sin6_scope_id")); + static final MemoryLayout Csockaddr_in6$LAYOUT() { + return Csockaddr_in6$LAYOUT; + } + static final VarHandle sin6_len$VH() { + return sin6_len$VH; + } + static final VarHandle sin6_family$VH() { + return sin6_family$VH; + } + static final VarHandle sin6_port$VH() { + return sin6_port$VH; + } + static final VarHandle sin6_flowinfo$VH() { + return sin6_flowinfo$VH; + } + static final VarHandle sin6_scope_id$VH() { + return sin6_scope_id$VH; + } +}