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