1 // Generated by jextract
2
3 package oracle.code.onnx.foreign;
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 OrtMIGraphXProviderOptions {
18 * int device_id;
19 * int migraphx_fp16_enable;
20 * int migraphx_fp8_enable;
21 * int migraphx_int8_enable;
22 * int migraphx_use_native_calibration_table;
23 * const char *migraphx_int8_calibration_table_name;
24 * int migraphx_save_compiled_model;
25 * const char *migraphx_save_model_path;
26 * int migraphx_load_compiled_model;
27 * const char *migraphx_load_model_path;
28 * bool migraphx_exhaustive_tune;
29 * size_t migraphx_mem_limit;
30 * int migraphx_arena_extend_strategy;
31 * }
32 * }
33 */
34 public class OrtMIGraphXProviderOptions {
35
36 OrtMIGraphXProviderOptions() {
37 // Should not be called directly
38 }
39
40 private static final GroupLayout $LAYOUT = MemoryLayout.structLayout(
41 onnxruntime_c_api_h.C_INT.withName("device_id"),
42 onnxruntime_c_api_h.C_INT.withName("migraphx_fp16_enable"),
43 onnxruntime_c_api_h.C_INT.withName("migraphx_fp8_enable"),
44 onnxruntime_c_api_h.C_INT.withName("migraphx_int8_enable"),
45 onnxruntime_c_api_h.C_INT.withName("migraphx_use_native_calibration_table"),
46 MemoryLayout.paddingLayout(4),
47 onnxruntime_c_api_h.C_POINTER.withName("migraphx_int8_calibration_table_name"),
48 onnxruntime_c_api_h.C_INT.withName("migraphx_save_compiled_model"),
49 MemoryLayout.paddingLayout(4),
50 onnxruntime_c_api_h.C_POINTER.withName("migraphx_save_model_path"),
51 onnxruntime_c_api_h.C_INT.withName("migraphx_load_compiled_model"),
52 MemoryLayout.paddingLayout(4),
53 onnxruntime_c_api_h.C_POINTER.withName("migraphx_load_model_path"),
54 onnxruntime_c_api_h.C_BOOL.withName("migraphx_exhaustive_tune"),
55 MemoryLayout.paddingLayout(7),
56 onnxruntime_c_api_h.C_LONG.withName("migraphx_mem_limit"),
57 onnxruntime_c_api_h.C_INT.withName("migraphx_arena_extend_strategy"),
58 MemoryLayout.paddingLayout(4)
59 ).withName("OrtMIGraphXProviderOptions");
60
61 /**
62 * The layout of this struct
63 */
64 public static final GroupLayout layout() {
65 return $LAYOUT;
66 }
67
68 private static final OfInt device_id$LAYOUT = (OfInt)$LAYOUT.select(groupElement("device_id"));
69
70 /**
71 * Layout for field:
72 * {@snippet lang=c :
73 * int device_id
74 * }
75 */
76 public static final OfInt device_id$layout() {
77 return device_id$LAYOUT;
78 }
79
80 private static final long device_id$OFFSET = 0;
81
82 /**
83 * Offset for field:
84 * {@snippet lang=c :
85 * int device_id
86 * }
87 */
88 public static final long device_id$offset() {
89 return device_id$OFFSET;
90 }
91
92 /**
93 * Getter for field:
94 * {@snippet lang=c :
95 * int device_id
96 * }
97 */
98 public static int device_id(MemorySegment struct) {
99 return struct.get(device_id$LAYOUT, device_id$OFFSET);
100 }
101
102 /**
103 * Setter for field:
104 * {@snippet lang=c :
105 * int device_id
106 * }
107 */
108 public static void device_id(MemorySegment struct, int fieldValue) {
109 struct.set(device_id$LAYOUT, device_id$OFFSET, fieldValue);
110 }
111
112 private static final OfInt migraphx_fp16_enable$LAYOUT = (OfInt)$LAYOUT.select(groupElement("migraphx_fp16_enable"));
113
114 /**
115 * Layout for field:
116 * {@snippet lang=c :
117 * int migraphx_fp16_enable
118 * }
119 */
120 public static final OfInt migraphx_fp16_enable$layout() {
121 return migraphx_fp16_enable$LAYOUT;
122 }
123
124 private static final long migraphx_fp16_enable$OFFSET = 4;
125
126 /**
127 * Offset for field:
128 * {@snippet lang=c :
129 * int migraphx_fp16_enable
130 * }
131 */
132 public static final long migraphx_fp16_enable$offset() {
133 return migraphx_fp16_enable$OFFSET;
134 }
135
136 /**
137 * Getter for field:
138 * {@snippet lang=c :
139 * int migraphx_fp16_enable
140 * }
141 */
142 public static int migraphx_fp16_enable(MemorySegment struct) {
143 return struct.get(migraphx_fp16_enable$LAYOUT, migraphx_fp16_enable$OFFSET);
144 }
145
146 /**
147 * Setter for field:
148 * {@snippet lang=c :
149 * int migraphx_fp16_enable
150 * }
151 */
152 public static void migraphx_fp16_enable(MemorySegment struct, int fieldValue) {
153 struct.set(migraphx_fp16_enable$LAYOUT, migraphx_fp16_enable$OFFSET, fieldValue);
154 }
155
156 private static final OfInt migraphx_fp8_enable$LAYOUT = (OfInt)$LAYOUT.select(groupElement("migraphx_fp8_enable"));
157
158 /**
159 * Layout for field:
160 * {@snippet lang=c :
161 * int migraphx_fp8_enable
162 * }
163 */
164 public static final OfInt migraphx_fp8_enable$layout() {
165 return migraphx_fp8_enable$LAYOUT;
166 }
167
168 private static final long migraphx_fp8_enable$OFFSET = 8;
169
170 /**
171 * Offset for field:
172 * {@snippet lang=c :
173 * int migraphx_fp8_enable
174 * }
175 */
176 public static final long migraphx_fp8_enable$offset() {
177 return migraphx_fp8_enable$OFFSET;
178 }
179
180 /**
181 * Getter for field:
182 * {@snippet lang=c :
183 * int migraphx_fp8_enable
184 * }
185 */
186 public static int migraphx_fp8_enable(MemorySegment struct) {
187 return struct.get(migraphx_fp8_enable$LAYOUT, migraphx_fp8_enable$OFFSET);
188 }
189
190 /**
191 * Setter for field:
192 * {@snippet lang=c :
193 * int migraphx_fp8_enable
194 * }
195 */
196 public static void migraphx_fp8_enable(MemorySegment struct, int fieldValue) {
197 struct.set(migraphx_fp8_enable$LAYOUT, migraphx_fp8_enable$OFFSET, fieldValue);
198 }
199
200 private static final OfInt migraphx_int8_enable$LAYOUT = (OfInt)$LAYOUT.select(groupElement("migraphx_int8_enable"));
201
202 /**
203 * Layout for field:
204 * {@snippet lang=c :
205 * int migraphx_int8_enable
206 * }
207 */
208 public static final OfInt migraphx_int8_enable$layout() {
209 return migraphx_int8_enable$LAYOUT;
210 }
211
212 private static final long migraphx_int8_enable$OFFSET = 12;
213
214 /**
215 * Offset for field:
216 * {@snippet lang=c :
217 * int migraphx_int8_enable
218 * }
219 */
220 public static final long migraphx_int8_enable$offset() {
221 return migraphx_int8_enable$OFFSET;
222 }
223
224 /**
225 * Getter for field:
226 * {@snippet lang=c :
227 * int migraphx_int8_enable
228 * }
229 */
230 public static int migraphx_int8_enable(MemorySegment struct) {
231 return struct.get(migraphx_int8_enable$LAYOUT, migraphx_int8_enable$OFFSET);
232 }
233
234 /**
235 * Setter for field:
236 * {@snippet lang=c :
237 * int migraphx_int8_enable
238 * }
239 */
240 public static void migraphx_int8_enable(MemorySegment struct, int fieldValue) {
241 struct.set(migraphx_int8_enable$LAYOUT, migraphx_int8_enable$OFFSET, fieldValue);
242 }
243
244 private static final OfInt migraphx_use_native_calibration_table$LAYOUT = (OfInt)$LAYOUT.select(groupElement("migraphx_use_native_calibration_table"));
245
246 /**
247 * Layout for field:
248 * {@snippet lang=c :
249 * int migraphx_use_native_calibration_table
250 * }
251 */
252 public static final OfInt migraphx_use_native_calibration_table$layout() {
253 return migraphx_use_native_calibration_table$LAYOUT;
254 }
255
256 private static final long migraphx_use_native_calibration_table$OFFSET = 16;
257
258 /**
259 * Offset for field:
260 * {@snippet lang=c :
261 * int migraphx_use_native_calibration_table
262 * }
263 */
264 public static final long migraphx_use_native_calibration_table$offset() {
265 return migraphx_use_native_calibration_table$OFFSET;
266 }
267
268 /**
269 * Getter for field:
270 * {@snippet lang=c :
271 * int migraphx_use_native_calibration_table
272 * }
273 */
274 public static int migraphx_use_native_calibration_table(MemorySegment struct) {
275 return struct.get(migraphx_use_native_calibration_table$LAYOUT, migraphx_use_native_calibration_table$OFFSET);
276 }
277
278 /**
279 * Setter for field:
280 * {@snippet lang=c :
281 * int migraphx_use_native_calibration_table
282 * }
283 */
284 public static void migraphx_use_native_calibration_table(MemorySegment struct, int fieldValue) {
285 struct.set(migraphx_use_native_calibration_table$LAYOUT, migraphx_use_native_calibration_table$OFFSET, fieldValue);
286 }
287
288 private static final AddressLayout migraphx_int8_calibration_table_name$LAYOUT = (AddressLayout)$LAYOUT.select(groupElement("migraphx_int8_calibration_table_name"));
289
290 /**
291 * Layout for field:
292 * {@snippet lang=c :
293 * const char *migraphx_int8_calibration_table_name
294 * }
295 */
296 public static final AddressLayout migraphx_int8_calibration_table_name$layout() {
297 return migraphx_int8_calibration_table_name$LAYOUT;
298 }
299
300 private static final long migraphx_int8_calibration_table_name$OFFSET = 24;
301
302 /**
303 * Offset for field:
304 * {@snippet lang=c :
305 * const char *migraphx_int8_calibration_table_name
306 * }
307 */
308 public static final long migraphx_int8_calibration_table_name$offset() {
309 return migraphx_int8_calibration_table_name$OFFSET;
310 }
311
312 /**
313 * Getter for field:
314 * {@snippet lang=c :
315 * const char *migraphx_int8_calibration_table_name
316 * }
317 */
318 public static MemorySegment migraphx_int8_calibration_table_name(MemorySegment struct) {
319 return struct.get(migraphx_int8_calibration_table_name$LAYOUT, migraphx_int8_calibration_table_name$OFFSET);
320 }
321
322 /**
323 * Setter for field:
324 * {@snippet lang=c :
325 * const char *migraphx_int8_calibration_table_name
326 * }
327 */
328 public static void migraphx_int8_calibration_table_name(MemorySegment struct, MemorySegment fieldValue) {
329 struct.set(migraphx_int8_calibration_table_name$LAYOUT, migraphx_int8_calibration_table_name$OFFSET, fieldValue);
330 }
331
332 private static final OfInt migraphx_save_compiled_model$LAYOUT = (OfInt)$LAYOUT.select(groupElement("migraphx_save_compiled_model"));
333
334 /**
335 * Layout for field:
336 * {@snippet lang=c :
337 * int migraphx_save_compiled_model
338 * }
339 */
340 public static final OfInt migraphx_save_compiled_model$layout() {
341 return migraphx_save_compiled_model$LAYOUT;
342 }
343
344 private static final long migraphx_save_compiled_model$OFFSET = 32;
345
346 /**
347 * Offset for field:
348 * {@snippet lang=c :
349 * int migraphx_save_compiled_model
350 * }
351 */
352 public static final long migraphx_save_compiled_model$offset() {
353 return migraphx_save_compiled_model$OFFSET;
354 }
355
356 /**
357 * Getter for field:
358 * {@snippet lang=c :
359 * int migraphx_save_compiled_model
360 * }
361 */
362 public static int migraphx_save_compiled_model(MemorySegment struct) {
363 return struct.get(migraphx_save_compiled_model$LAYOUT, migraphx_save_compiled_model$OFFSET);
364 }
365
366 /**
367 * Setter for field:
368 * {@snippet lang=c :
369 * int migraphx_save_compiled_model
370 * }
371 */
372 public static void migraphx_save_compiled_model(MemorySegment struct, int fieldValue) {
373 struct.set(migraphx_save_compiled_model$LAYOUT, migraphx_save_compiled_model$OFFSET, fieldValue);
374 }
375
376 private static final AddressLayout migraphx_save_model_path$LAYOUT = (AddressLayout)$LAYOUT.select(groupElement("migraphx_save_model_path"));
377
378 /**
379 * Layout for field:
380 * {@snippet lang=c :
381 * const char *migraphx_save_model_path
382 * }
383 */
384 public static final AddressLayout migraphx_save_model_path$layout() {
385 return migraphx_save_model_path$LAYOUT;
386 }
387
388 private static final long migraphx_save_model_path$OFFSET = 40;
389
390 /**
391 * Offset for field:
392 * {@snippet lang=c :
393 * const char *migraphx_save_model_path
394 * }
395 */
396 public static final long migraphx_save_model_path$offset() {
397 return migraphx_save_model_path$OFFSET;
398 }
399
400 /**
401 * Getter for field:
402 * {@snippet lang=c :
403 * const char *migraphx_save_model_path
404 * }
405 */
406 public static MemorySegment migraphx_save_model_path(MemorySegment struct) {
407 return struct.get(migraphx_save_model_path$LAYOUT, migraphx_save_model_path$OFFSET);
408 }
409
410 /**
411 * Setter for field:
412 * {@snippet lang=c :
413 * const char *migraphx_save_model_path
414 * }
415 */
416 public static void migraphx_save_model_path(MemorySegment struct, MemorySegment fieldValue) {
417 struct.set(migraphx_save_model_path$LAYOUT, migraphx_save_model_path$OFFSET, fieldValue);
418 }
419
420 private static final OfInt migraphx_load_compiled_model$LAYOUT = (OfInt)$LAYOUT.select(groupElement("migraphx_load_compiled_model"));
421
422 /**
423 * Layout for field:
424 * {@snippet lang=c :
425 * int migraphx_load_compiled_model
426 * }
427 */
428 public static final OfInt migraphx_load_compiled_model$layout() {
429 return migraphx_load_compiled_model$LAYOUT;
430 }
431
432 private static final long migraphx_load_compiled_model$OFFSET = 48;
433
434 /**
435 * Offset for field:
436 * {@snippet lang=c :
437 * int migraphx_load_compiled_model
438 * }
439 */
440 public static final long migraphx_load_compiled_model$offset() {
441 return migraphx_load_compiled_model$OFFSET;
442 }
443
444 /**
445 * Getter for field:
446 * {@snippet lang=c :
447 * int migraphx_load_compiled_model
448 * }
449 */
450 public static int migraphx_load_compiled_model(MemorySegment struct) {
451 return struct.get(migraphx_load_compiled_model$LAYOUT, migraphx_load_compiled_model$OFFSET);
452 }
453
454 /**
455 * Setter for field:
456 * {@snippet lang=c :
457 * int migraphx_load_compiled_model
458 * }
459 */
460 public static void migraphx_load_compiled_model(MemorySegment struct, int fieldValue) {
461 struct.set(migraphx_load_compiled_model$LAYOUT, migraphx_load_compiled_model$OFFSET, fieldValue);
462 }
463
464 private static final AddressLayout migraphx_load_model_path$LAYOUT = (AddressLayout)$LAYOUT.select(groupElement("migraphx_load_model_path"));
465
466 /**
467 * Layout for field:
468 * {@snippet lang=c :
469 * const char *migraphx_load_model_path
470 * }
471 */
472 public static final AddressLayout migraphx_load_model_path$layout() {
473 return migraphx_load_model_path$LAYOUT;
474 }
475
476 private static final long migraphx_load_model_path$OFFSET = 56;
477
478 /**
479 * Offset for field:
480 * {@snippet lang=c :
481 * const char *migraphx_load_model_path
482 * }
483 */
484 public static final long migraphx_load_model_path$offset() {
485 return migraphx_load_model_path$OFFSET;
486 }
487
488 /**
489 * Getter for field:
490 * {@snippet lang=c :
491 * const char *migraphx_load_model_path
492 * }
493 */
494 public static MemorySegment migraphx_load_model_path(MemorySegment struct) {
495 return struct.get(migraphx_load_model_path$LAYOUT, migraphx_load_model_path$OFFSET);
496 }
497
498 /**
499 * Setter for field:
500 * {@snippet lang=c :
501 * const char *migraphx_load_model_path
502 * }
503 */
504 public static void migraphx_load_model_path(MemorySegment struct, MemorySegment fieldValue) {
505 struct.set(migraphx_load_model_path$LAYOUT, migraphx_load_model_path$OFFSET, fieldValue);
506 }
507
508 private static final OfBoolean migraphx_exhaustive_tune$LAYOUT = (OfBoolean)$LAYOUT.select(groupElement("migraphx_exhaustive_tune"));
509
510 /**
511 * Layout for field:
512 * {@snippet lang=c :
513 * bool migraphx_exhaustive_tune
514 * }
515 */
516 public static final OfBoolean migraphx_exhaustive_tune$layout() {
517 return migraphx_exhaustive_tune$LAYOUT;
518 }
519
520 private static final long migraphx_exhaustive_tune$OFFSET = 64;
521
522 /**
523 * Offset for field:
524 * {@snippet lang=c :
525 * bool migraphx_exhaustive_tune
526 * }
527 */
528 public static final long migraphx_exhaustive_tune$offset() {
529 return migraphx_exhaustive_tune$OFFSET;
530 }
531
532 /**
533 * Getter for field:
534 * {@snippet lang=c :
535 * bool migraphx_exhaustive_tune
536 * }
537 */
538 public static boolean migraphx_exhaustive_tune(MemorySegment struct) {
539 return struct.get(migraphx_exhaustive_tune$LAYOUT, migraphx_exhaustive_tune$OFFSET);
540 }
541
542 /**
543 * Setter for field:
544 * {@snippet lang=c :
545 * bool migraphx_exhaustive_tune
546 * }
547 */
548 public static void migraphx_exhaustive_tune(MemorySegment struct, boolean fieldValue) {
549 struct.set(migraphx_exhaustive_tune$LAYOUT, migraphx_exhaustive_tune$OFFSET, fieldValue);
550 }
551
552 private static final OfLong migraphx_mem_limit$LAYOUT = (OfLong)$LAYOUT.select(groupElement("migraphx_mem_limit"));
553
554 /**
555 * Layout for field:
556 * {@snippet lang=c :
557 * size_t migraphx_mem_limit
558 * }
559 */
560 public static final OfLong migraphx_mem_limit$layout() {
561 return migraphx_mem_limit$LAYOUT;
562 }
563
564 private static final long migraphx_mem_limit$OFFSET = 72;
565
566 /**
567 * Offset for field:
568 * {@snippet lang=c :
569 * size_t migraphx_mem_limit
570 * }
571 */
572 public static final long migraphx_mem_limit$offset() {
573 return migraphx_mem_limit$OFFSET;
574 }
575
576 /**
577 * Getter for field:
578 * {@snippet lang=c :
579 * size_t migraphx_mem_limit
580 * }
581 */
582 public static long migraphx_mem_limit(MemorySegment struct) {
583 return struct.get(migraphx_mem_limit$LAYOUT, migraphx_mem_limit$OFFSET);
584 }
585
586 /**
587 * Setter for field:
588 * {@snippet lang=c :
589 * size_t migraphx_mem_limit
590 * }
591 */
592 public static void migraphx_mem_limit(MemorySegment struct, long fieldValue) {
593 struct.set(migraphx_mem_limit$LAYOUT, migraphx_mem_limit$OFFSET, fieldValue);
594 }
595
596 private static final OfInt migraphx_arena_extend_strategy$LAYOUT = (OfInt)$LAYOUT.select(groupElement("migraphx_arena_extend_strategy"));
597
598 /**
599 * Layout for field:
600 * {@snippet lang=c :
601 * int migraphx_arena_extend_strategy
602 * }
603 */
604 public static final OfInt migraphx_arena_extend_strategy$layout() {
605 return migraphx_arena_extend_strategy$LAYOUT;
606 }
607
608 private static final long migraphx_arena_extend_strategy$OFFSET = 80;
609
610 /**
611 * Offset for field:
612 * {@snippet lang=c :
613 * int migraphx_arena_extend_strategy
614 * }
615 */
616 public static final long migraphx_arena_extend_strategy$offset() {
617 return migraphx_arena_extend_strategy$OFFSET;
618 }
619
620 /**
621 * Getter for field:
622 * {@snippet lang=c :
623 * int migraphx_arena_extend_strategy
624 * }
625 */
626 public static int migraphx_arena_extend_strategy(MemorySegment struct) {
627 return struct.get(migraphx_arena_extend_strategy$LAYOUT, migraphx_arena_extend_strategy$OFFSET);
628 }
629
630 /**
631 * Setter for field:
632 * {@snippet lang=c :
633 * int migraphx_arena_extend_strategy
634 * }
635 */
636 public static void migraphx_arena_extend_strategy(MemorySegment struct, int fieldValue) {
637 struct.set(migraphx_arena_extend_strategy$LAYOUT, migraphx_arena_extend_strategy$OFFSET, fieldValue);
638 }
639
640 /**
641 * Obtains a slice of {@code arrayParam} which selects the array element at {@code index}.
642 * The returned segment has address {@code arrayParam.address() + index * layout().byteSize()}
643 */
644 public static MemorySegment asSlice(MemorySegment array, long index) {
645 return array.asSlice(layout().byteSize() * index);
646 }
647
648 /**
649 * The size (in bytes) of this struct
650 */
651 public static long sizeof() { return layout().byteSize(); }
652
653 /**
654 * Allocate a segment of size {@code layout().byteSize()} using {@code allocator}
655 */
656 public static MemorySegment allocate(SegmentAllocator allocator) {
657 return allocator.allocate(layout());
658 }
659
660 /**
661 * Allocate an array of size {@code elementCount} using {@code allocator}.
662 * The returned segment has size {@code elementCount * layout().byteSize()}.
663 */
664 public static MemorySegment allocateArray(long elementCount, SegmentAllocator allocator) {
665 return allocator.allocate(MemoryLayout.sequenceLayout(elementCount, layout()));
666 }
667
668 /**
669 * Reinterprets {@code addr} using target {@code arena} and {@code cleanupAction} (if any).
670 * The returned segment has size {@code layout().byteSize()}
671 */
672 public static MemorySegment reinterpret(MemorySegment addr, Arena arena, Consumer<MemorySegment> cleanup) {
673 return reinterpret(addr, 1, arena, cleanup);
674 }
675
676 /**
677 * Reinterprets {@code addr} using target {@code arena} and {@code cleanupAction} (if any).
678 * The returned segment has size {@code elementCount * layout().byteSize()}
679 */
680 public static MemorySegment reinterpret(MemorySegment addr, long elementCount, Arena arena, Consumer<MemorySegment> cleanup) {
681 return addr.reinterpret(layout().byteSize() * elementCount, arena, cleanup);
682 }
683 }
684