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_in6 { 18 * sa_family_t sin6_family; 19 * in_port_t sin6_port; 20 * uint32_t sin6_flowinfo; 21 * struct in6_addr sin6_addr; 22 * uint32_t sin6_scope_id; 23 * } 24 * } 25 */ 26 @SuppressWarnings("restricted") public class sockaddr_in6 { 27 28 sockaddr_in6() { 29 // Suppresses public default constructor, ensuring non-instantiability, 30 // but allows generated subclasses in same package. 31 } 32 33 private static final GroupLayout $LAYOUT = MemoryLayout.structLayout( 34 iouring_h.C_SHORT.withName("sin6_family"), 35 iouring_h.C_SHORT.withName("sin6_port"), 36 iouring_h.C_INT.withName("sin6_flowinfo"), 37 in6_addr.$LAYOUT().withName("sin6_addr"), 38 iouring_h.C_INT.withName("sin6_scope_id") 39 ).withName("sockaddr_in6"); 40 41 public static final GroupLayout $LAYOUT() { 42 return $LAYOUT; 43 } 44 45 private static final long sin6_family$OFFSET = 0; 46 private static final OfShort sin6_family$LAYOUT = (OfShort)$LAYOUT.select(groupElement("sin6_family")); 47 48 /** 49 * Getter for field: 50 * {@snippet lang=c : 51 * sa_family_t sin6_family 52 * } 53 */ 54 public static short sin6_family(MemorySegment struct) { 55 return struct.get(sin6_family$LAYOUT, sin6_family$OFFSET); 56 } 57 58 /** 59 * Setter for field: 60 * {@snippet lang=c : 61 * sa_family_t sin6_family 62 * } 63 */ 64 public static void sin6_family(MemorySegment struct, short fieldValue) { 65 struct.set(sin6_family$LAYOUT, sin6_family$OFFSET, fieldValue); 66 } 67 68 private static final long sin6_port$OFFSET = 2; 69 private static final OfShort sin6_port$LAYOUT = ((OfShort)$LAYOUT.select(groupElement("sin6_port"))).withOrder(ByteOrder.BIG_ENDIAN); 70 71 /** 72 * Getter for field: 73 * {@snippet lang=c : 74 * in_port_t sin6_port 75 * } 76 */ 77 public static short sin6_port(MemorySegment struct) { 78 return struct.get(sin6_port$LAYOUT, sin6_port$OFFSET); 79 } 80 81 /** 82 * Setter for field: 83 * {@snippet lang=c : 84 * in_port_t sin6_port 85 * } 86 */ 87 public static void sin6_port(MemorySegment struct, short fieldValue) { 88 struct.set(sin6_port$LAYOUT, sin6_port$OFFSET, fieldValue); 89 } 90 91 private static final long sin6_flowinfo$OFFSET = 4; 92 private static final OfInt sin6_flowinfo$LAYOUT = (OfInt)$LAYOUT.select(groupElement("sin6_flowinfo")); 93 94 /** 95 * Getter for field: 96 * {@snippet lang=c : 97 * uint32_t sin6_flowinfo 98 * } 99 */ 100 public static int sin6_flowinfo(MemorySegment struct) { 101 return struct.get(sin6_flowinfo$LAYOUT, sin6_flowinfo$OFFSET); 102 } 103 104 /** 105 * Setter for field: 106 * {@snippet lang=c : 107 * uint32_t sin6_flowinfo 108 * } 109 */ 110 public static void sin6_flowinfo(MemorySegment struct, int fieldValue) { 111 struct.set(sin6_flowinfo$LAYOUT, sin6_flowinfo$OFFSET, fieldValue); 112 } 113 114 private static final long sin6_addr$OFFSET = 8; 115 private static final long sin6_addr$SIZE = 16; 116 117 /** 118 * Getter for field: 119 * {@snippet lang=c : 120 * struct in6_addr sin6_addr 121 * } 122 */ 123 public static MemorySegment sin6_addr(MemorySegment struct) { 124 return struct.asSlice(sin6_addr$OFFSET, sin6_addr$SIZE); 125 } 126 127 /** 128 * Setter for field: 129 * {@snippet lang=c : 130 * struct in6_addr sin6_addr 131 * } 132 */ 133 public static void sin6_addr(MemorySegment struct, MemorySegment fieldValue) { 134 MemorySegment.copy(fieldValue, 0L, struct, sin6_addr$OFFSET, sin6_addr$SIZE); 135 } 136 137 private static final long sin6_scope_id$OFFSET = 24; 138 private static final OfInt sin6_scope_id$LAYOUT = (OfInt)$LAYOUT.select(groupElement("sin6_scope_id")); 139 140 /** 141 * Getter for field: 142 * {@snippet lang=c : 143 * uint32_t sin6_scope_id 144 * } 145 */ 146 public static int sin6_scope_id(MemorySegment struct) { 147 return struct.get(sin6_scope_id$LAYOUT, sin6_scope_id$OFFSET); 148 } 149 150 /** 151 * Setter for field: 152 * {@snippet lang=c : 153 * uint32_t sin6_scope_id 154 * } 155 */ 156 public static void sin6_scope_id(MemorySegment struct, int fieldValue) { 157 struct.set(sin6_scope_id$LAYOUT, sin6_scope_id$OFFSET, fieldValue); 158 } 159 160 public static MemorySegment asSlice(MemorySegment array, long index) { 161 return array.asSlice($LAYOUT().byteSize() * index); 162 } 163 164 public static long sizeof() { return $LAYOUT().byteSize(); } 165 166 public static MemorySegment allocate(SegmentAllocator allocator) { 167 return allocator.allocate($LAYOUT()); 168 } 169 170 public static MemorySegment allocateArray(long elementCount, SegmentAllocator allocator) { 171 return allocator.allocate(MemoryLayout.sequenceLayout(elementCount, $LAYOUT())); 172 } 173 174 public static MemorySegment reinterpret(MemorySegment addr, Arena scope, Consumer<MemorySegment> cleanup) { 175 return reinterpret(addr, 1, scope, cleanup); 176 } 177 178 public static MemorySegment reinterpret(MemorySegment addr, long elementCount, Arena scope, Consumer<MemorySegment> cleanup) { 179 return addr.reinterpret($LAYOUT().byteSize() * elementCount, scope, cleanup); 180 } 181 } 182