1 // Generated by jextract 2 3 package jdk.internal.ffi.generated.iouring; 4 5 import java.lang.invoke.*; 6 import java.lang.foreign.*; 7 import java.nio.ByteOrder; 8 import java.util.*; 9 import java.util.function.*; 10 import java.util.stream.*; 11 12 import static java.lang.foreign.ValueLayout.*; 13 import static java.lang.foreign.MemoryLayout.PathElement.*; 14 15 /** 16 * {@snippet lang=c : 17 * struct sockaddr { 18 * sa_family_t sa_family; 19 * char sa_data[14]; 20 * } 21 * } 22 */ 23 @SuppressWarnings("restricted") public class sockaddr { 24 25 sockaddr() { 26 // Suppresses public default constructor, ensuring non-instantiability, 27 // but allows generated subclasses in same package. 28 } 29 30 private static final GroupLayout $LAYOUT = MemoryLayout.structLayout( 31 iouring_h.C_SHORT.withName("sa_family"), 32 MemoryLayout.sequenceLayout(14, iouring_h.C_CHAR).withName("sa_data") 33 ).withName("sockaddr"); 34 35 public static final GroupLayout $LAYOUT() { 36 return $LAYOUT; 37 } 38 39 private static final long sa_family$OFFSET = 0; 40 private static final OfShort sa_family$LAYOUT = (OfShort)$LAYOUT.select(groupElement("sa_family")); 41 42 /** 43 * Getter for field: 44 * {@snippet lang=c : 45 * sa_family_t sa_family 46 * } 47 */ 48 public static short sa_family(MemorySegment struct) { 49 return struct.get(sa_family$LAYOUT, sa_family$OFFSET); 50 } 51 52 /** 53 * Setter for field: 54 * {@snippet lang=c : 55 * sa_family_t sa_family 56 * } 57 */ 58 public static void sa_family(MemorySegment struct, short fieldValue) { 59 struct.set(sa_family$LAYOUT, sa_family$OFFSET, fieldValue); 60 } 61 62 private static final long sa_data$OFFSET = 2; 63 private static final long sa_data$SIZE = 14; 64 65 /** 66 * Getter for field: 67 * {@snippet lang=c : 68 * char sa_data[14] 69 * } 70 */ 71 public static MemorySegment sa_data(MemorySegment struct) { 72 return struct.asSlice(sa_data$OFFSET, sa_data$SIZE); 73 } 74 75 /** 76 * Setter for field: 77 * {@snippet lang=c : 78 * char sa_data[14] 79 * } 80 */ 81 public static void sa_data(MemorySegment struct, MemorySegment fieldValue) { 82 MemorySegment.copy(fieldValue, 0L, struct, sa_data$OFFSET, sa_data$SIZE); 83 } 84 85 public static MemorySegment asSlice(MemorySegment array, long index) { 86 return array.asSlice($LAYOUT().byteSize() * index); 87 } 88 89 public static long sizeof() { return $LAYOUT().byteSize(); } 90 91 public static MemorySegment allocate(SegmentAllocator allocator) { 92 return allocator.allocate($LAYOUT()); 93 } 94 95 public static MemorySegment allocateArray(long elementCount, SegmentAllocator allocator) { 96 return allocator.allocate(MemoryLayout.sequenceLayout(elementCount, $LAYOUT())); 97 } 98 99 public static MemorySegment reinterpret(MemorySegment addr, Arena scope, Consumer<MemorySegment> cleanup) { 100 return reinterpret(addr, 1, scope, cleanup); 101 } 102 103 public static MemorySegment reinterpret(MemorySegment addr, long elementCount, Arena scope, Consumer<MemorySegment> cleanup) { 104 return addr.reinterpret($LAYOUT().byteSize() * elementCount, scope, cleanup); 105 } 106 } 107