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 in_addr { 18 * in_addr_t s_addr; 19 * } 20 * } 21 */ 22 @SuppressWarnings("restricted") public class in_addr { 23 24 in_addr() { 25 // Suppresses public default constructor, ensuring non-instantiability, 26 // but allows generated subclasses in same package. 27 } 28 29 private static final GroupLayout $LAYOUT = MemoryLayout.structLayout( 30 iouring_h.C_INT.withName("s_addr") 31 ).withName("in_addr"); 32 33 public static final GroupLayout $LAYOUT() { 34 return $LAYOUT; 35 } 36 37 private static final long s_addr$OFFSET = 0; 38 private static final OfInt s_addr$LAYOUT = ((OfInt)$LAYOUT.select(groupElement("s_addr"))).withOrder(ByteOrder.BIG_ENDIAN); 39 40 /** 41 * Getter for field: 42 * {@snippet lang=c : 43 * in_addr_t s_addr 44 * } 45 */ 46 public static int s_addr(MemorySegment struct) { 47 return struct.get(s_addr$LAYOUT, s_addr$OFFSET); 48 } 49 50 /** 51 * Setter for field: 52 * {@snippet lang=c : 53 * in_addr_t s_addr 54 * } 55 */ 56 public static void s_addr(MemorySegment struct, int fieldValue) { 57 struct.set(s_addr$LAYOUT, s_addr$OFFSET, fieldValue); 58 } 59 60 public static MemorySegment asSlice(MemorySegment array, long index) { 61 return array.asSlice($LAYOUT().byteSize() * index); 62 } 63 64 public static long sizeof() { return $LAYOUT().byteSize(); } 65 66 public static MemorySegment allocate(SegmentAllocator allocator) { 67 return allocator.allocate($LAYOUT()); 68 } 69 70 public static MemorySegment allocateArray(long elementCount, SegmentAllocator allocator) { 71 return allocator.allocate(MemoryLayout.sequenceLayout(elementCount, $LAYOUT())); 72 } 73 74 public static MemorySegment reinterpret(MemorySegment addr, Arena scope, Consumer<MemorySegment> cleanup) { 75 return reinterpret(addr, 1, scope, cleanup); 76 } 77 78 public static MemorySegment reinterpret(MemorySegment addr, long elementCount, Arena scope, Consumer<MemorySegment> cleanup) { 79 return addr.reinterpret($LAYOUT().byteSize() * elementCount, scope, cleanup); 80 } 81 } 82