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