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