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 io_uring_params { 18 * __u32 sq_entries; 19 * __u32 cq_entries; 20 * __u32 flags; 21 * __u32 sq_thread_cpu; 22 * __u32 sq_thread_idle; 23 * __u32 features; 24 * __u32 wq_fd; 25 * __u32 resv[3]; 26 * struct io_sqring_offsets sq_off; 27 * struct io_cqring_offsets cq_off; 28 * } 29 * } 30 */ 31 @SuppressWarnings("restricted") public class io_uring_params { 32 33 io_uring_params() { 34 // Suppresses public default constructor, ensuring non-instantiability, 35 // but allows generated subclasses in same package. 36 } 37 38 private static final GroupLayout $LAYOUT = MemoryLayout.structLayout( 39 iouring_h.C_INT.withName("sq_entries"), 40 iouring_h.C_INT.withName("cq_entries"), 41 iouring_h.C_INT.withName("flags"), 42 iouring_h.C_INT.withName("sq_thread_cpu"), 43 iouring_h.C_INT.withName("sq_thread_idle"), 44 iouring_h.C_INT.withName("features"), 45 iouring_h.C_INT.withName("wq_fd"), 46 MemoryLayout.sequenceLayout(3, iouring_h.C_INT).withName("resv"), 47 io_sqring_offsets.$LAYOUT().withName("sq_off"), 48 io_cqring_offsets.$LAYOUT().withName("cq_off") 49 ).withName("io_uring_params"); 50 51 public static final GroupLayout $LAYOUT() { 52 return $LAYOUT; 53 } 54 55 private static final long sq_entries$OFFSET = 0; 56 private static final OfInt sq_entries$LAYOUT = (OfInt)$LAYOUT.select(groupElement("sq_entries")); 57 58 /** 59 * Getter for field: 60 * {@snippet lang=c : 61 * __u32 sq_entries 62 * } 63 */ 64 public static int sq_entries(MemorySegment struct) { 65 return struct.get(sq_entries$LAYOUT, sq_entries$OFFSET); 66 } 67 68 /** 69 * Setter for field: 70 * {@snippet lang=c : 71 * __u32 sq_entries 72 * } 73 */ 74 public static void sq_entries(MemorySegment struct, int fieldValue) { 75 struct.set(sq_entries$LAYOUT, sq_entries$OFFSET, fieldValue); 76 } 77 78 private static final long cq_entries$OFFSET = 4; 79 private static final OfInt cq_entries$LAYOUT = (OfInt)$LAYOUT.select(groupElement("cq_entries")); 80 81 /** 82 * Getter for field: 83 * {@snippet lang=c : 84 * __u32 cq_entries 85 * } 86 */ 87 public static int cq_entries(MemorySegment struct) { 88 return struct.get(cq_entries$LAYOUT, cq_entries$OFFSET); 89 } 90 91 /** 92 * Setter for field: 93 * {@snippet lang=c : 94 * __u32 cq_entries 95 * } 96 */ 97 public static void cq_entries(MemorySegment struct, int fieldValue) { 98 struct.set(cq_entries$LAYOUT, cq_entries$OFFSET, fieldValue); 99 } 100 101 private static final long flags$OFFSET = 8; 102 private static final OfInt flags$LAYOUT = (OfInt)$LAYOUT.select(groupElement("flags")); 103 104 /** 105 * Getter for field: 106 * {@snippet lang=c : 107 * __u32 flags 108 * } 109 */ 110 public static int flags(MemorySegment struct) { 111 return struct.get(flags$LAYOUT, flags$OFFSET); 112 } 113 114 /** 115 * Setter for field: 116 * {@snippet lang=c : 117 * __u32 flags 118 * } 119 */ 120 public static void flags(MemorySegment struct, int fieldValue) { 121 struct.set(flags$LAYOUT, flags$OFFSET, fieldValue); 122 } 123 124 private static final long sq_thread_cpu$OFFSET = 12; 125 private static final OfInt sq_thread_cpu$LAYOUT = (OfInt)$LAYOUT.select(groupElement("sq_thread_cpu")); 126 127 /** 128 * Getter for field: 129 * {@snippet lang=c : 130 * __u32 sq_thread_cpu 131 * } 132 */ 133 public static int sq_thread_cpu(MemorySegment struct) { 134 return struct.get(sq_thread_cpu$LAYOUT, sq_thread_cpu$OFFSET); 135 } 136 137 /** 138 * Setter for field: 139 * {@snippet lang=c : 140 * __u32 sq_thread_cpu 141 * } 142 */ 143 public static void sq_thread_cpu(MemorySegment struct, int fieldValue) { 144 struct.set(sq_thread_cpu$LAYOUT, sq_thread_cpu$OFFSET, fieldValue); 145 } 146 147 private static final long sq_thread_idle$OFFSET = 16; 148 private static final OfInt sq_thread_idle$LAYOUT = (OfInt)$LAYOUT.select(groupElement("sq_thread_idle")); 149 150 /** 151 * Getter for field: 152 * {@snippet lang=c : 153 * __u32 sq_thread_idle 154 * } 155 */ 156 public static int sq_thread_idle(MemorySegment struct) { 157 return struct.get(sq_thread_idle$LAYOUT, sq_thread_idle$OFFSET); 158 } 159 160 /** 161 * Setter for field: 162 * {@snippet lang=c : 163 * __u32 sq_thread_idle 164 * } 165 */ 166 public static void sq_thread_idle(MemorySegment struct, int fieldValue) { 167 struct.set(sq_thread_idle$LAYOUT, sq_thread_idle$OFFSET, fieldValue); 168 } 169 170 private static final long features$OFFSET = 20; 171 private static final OfInt features$LAYOUT = (OfInt)$LAYOUT.select(groupElement("features")); 172 173 /** 174 * Getter for field: 175 * {@snippet lang=c : 176 * __u32 features 177 * } 178 */ 179 public static int features(MemorySegment struct) { 180 return struct.get(features$LAYOUT, features$OFFSET); 181 } 182 183 /** 184 * Setter for field: 185 * {@snippet lang=c : 186 * __u32 features 187 * } 188 */ 189 public static void features(MemorySegment struct, int fieldValue) { 190 struct.set(features$LAYOUT, features$OFFSET, fieldValue); 191 } 192 193 private static final long wq_fd$OFFSET = 24; 194 private static final OfInt wq_fd$LAYOUT = (OfInt)$LAYOUT.select(groupElement("wq_fd")); 195 196 /** 197 * Getter for field: 198 * {@snippet lang=c : 199 * __u32 wq_fd 200 * } 201 */ 202 public static int wq_fd(MemorySegment struct) { 203 return struct.get(wq_fd$LAYOUT, wq_fd$OFFSET); 204 } 205 206 /** 207 * Setter for field: 208 * {@snippet lang=c : 209 * __u32 wq_fd 210 * } 211 */ 212 public static void wq_fd(MemorySegment struct, int fieldValue) { 213 struct.set(wq_fd$LAYOUT, wq_fd$OFFSET, fieldValue); 214 } 215 216 private static final long resv$OFFSET = 28; 217 private static final long resv$SIZE = 12; 218 219 /** 220 * Getter for field: 221 * {@snippet lang=c : 222 * __u32 resv[3] 223 * } 224 */ 225 public static MemorySegment resv(MemorySegment struct) { 226 return struct.asSlice(resv$OFFSET, resv$SIZE); 227 } 228 229 /** 230 * Setter for field: 231 * {@snippet lang=c : 232 * __u32 resv[3] 233 * } 234 */ 235 public static void resv(MemorySegment struct, MemorySegment fieldValue) { 236 MemorySegment.copy(fieldValue, 0L, struct, resv$OFFSET, resv$SIZE); 237 } 238 239 private static final long sq_off$OFFSET = 40; 240 private static final long sq_off$SIZE = 40; 241 242 /** 243 * Getter for field: 244 * {@snippet lang=c : 245 * struct io_sqring_offsets sq_off 246 * } 247 */ 248 public static MemorySegment sq_off(MemorySegment struct) { 249 return struct.asSlice(sq_off$OFFSET, sq_off$SIZE); 250 } 251 252 /** 253 * Setter for field: 254 * {@snippet lang=c : 255 * struct io_sqring_offsets sq_off 256 * } 257 */ 258 public static void sq_off(MemorySegment struct, MemorySegment fieldValue) { 259 MemorySegment.copy(fieldValue, 0L, struct, sq_off$OFFSET, sq_off$SIZE); 260 } 261 262 private static final long cq_off$OFFSET = 80; 263 private static final long cq_off$SIZE = 40; 264 265 /** 266 * Getter for field: 267 * {@snippet lang=c : 268 * struct io_cqring_offsets cq_off 269 * } 270 */ 271 public static MemorySegment cq_off(MemorySegment struct) { 272 return struct.asSlice(cq_off$OFFSET, cq_off$SIZE); 273 } 274 275 /** 276 * Setter for field: 277 * {@snippet lang=c : 278 * struct io_cqring_offsets cq_off 279 * } 280 */ 281 public static void cq_off(MemorySegment struct, MemorySegment fieldValue) { 282 MemorySegment.copy(fieldValue, 0L, struct, cq_off$OFFSET, cq_off$SIZE); 283 } 284 285 public static MemorySegment asSlice(MemorySegment array, long index) { 286 return array.asSlice($LAYOUT().byteSize() * index); 287 } 288 289 public static long sizeof() { return $LAYOUT().byteSize(); } 290 291 public static MemorySegment allocate(SegmentAllocator allocator) { 292 return allocator.allocate($LAYOUT()); 293 } 294 295 public static MemorySegment allocateArray(long elementCount, SegmentAllocator allocator) { 296 return allocator.allocate(MemoryLayout.sequenceLayout(elementCount, $LAYOUT())); 297 } 298 299 public static MemorySegment reinterpret(MemorySegment addr, Arena scope, Consumer<MemorySegment> cleanup) { 300 return reinterpret(addr, 1, scope, cleanup); 301 } 302 303 public static MemorySegment reinterpret(MemorySegment addr, long elementCount, Arena scope, Consumer<MemorySegment> cleanup) { 304 return addr.reinterpret($LAYOUT().byteSize() * elementCount, scope, cleanup); 305 } 306 } 307