1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27#ifndef _DRM_MODE_H
28#define _DRM_MODE_H
29
30#include "drm.h"
31
32#if defined(__cplusplus)
33extern "C" {
34#endif
35
36
37
38
39
40
41
42
43
44
45#define DRM_CONNECTOR_NAME_LEN 32
46#define DRM_DISPLAY_MODE_LEN 32
47#define DRM_PROP_NAME_LEN 32
48
49#define DRM_MODE_TYPE_BUILTIN (1<<0)
50#define DRM_MODE_TYPE_CLOCK_C ((1<<1) | DRM_MODE_TYPE_BUILTIN)
51#define DRM_MODE_TYPE_CRTC_C ((1<<2) | DRM_MODE_TYPE_BUILTIN)
52#define DRM_MODE_TYPE_PREFERRED (1<<3)
53#define DRM_MODE_TYPE_DEFAULT (1<<4)
54#define DRM_MODE_TYPE_USERDEF (1<<5)
55#define DRM_MODE_TYPE_DRIVER (1<<6)
56
57#define DRM_MODE_TYPE_ALL (DRM_MODE_TYPE_PREFERRED | \
58 DRM_MODE_TYPE_USERDEF | \
59 DRM_MODE_TYPE_DRIVER)
60
61
62
63
64
65
66
67
68
69
70
71#define DRM_MODE_FLAG_PHSYNC (1<<0)
72#define DRM_MODE_FLAG_NHSYNC (1<<1)
73#define DRM_MODE_FLAG_PVSYNC (1<<2)
74#define DRM_MODE_FLAG_NVSYNC (1<<3)
75#define DRM_MODE_FLAG_INTERLACE (1<<4)
76#define DRM_MODE_FLAG_DBLSCAN (1<<5)
77#define DRM_MODE_FLAG_CSYNC (1<<6)
78#define DRM_MODE_FLAG_PCSYNC (1<<7)
79#define DRM_MODE_FLAG_NCSYNC (1<<8)
80#define DRM_MODE_FLAG_HSKEW (1<<9)
81#define DRM_MODE_FLAG_BCAST (1<<10)
82#define DRM_MODE_FLAG_PIXMUX (1<<11)
83#define DRM_MODE_FLAG_DBLCLK (1<<12)
84#define DRM_MODE_FLAG_CLKDIV2 (1<<13)
85
86
87
88
89#define DRM_MODE_FLAG_3D_MASK (0x1f<<14)
90#define DRM_MODE_FLAG_3D_NONE (0<<14)
91#define DRM_MODE_FLAG_3D_FRAME_PACKING (1<<14)
92#define DRM_MODE_FLAG_3D_FIELD_ALTERNATIVE (2<<14)
93#define DRM_MODE_FLAG_3D_LINE_ALTERNATIVE (3<<14)
94#define DRM_MODE_FLAG_3D_SIDE_BY_SIDE_FULL (4<<14)
95#define DRM_MODE_FLAG_3D_L_DEPTH (5<<14)
96#define DRM_MODE_FLAG_3D_L_DEPTH_GFX_GFX_DEPTH (6<<14)
97#define DRM_MODE_FLAG_3D_TOP_AND_BOTTOM (7<<14)
98#define DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF (8<<14)
99
100
101#define DRM_MODE_PICTURE_ASPECT_NONE 0
102#define DRM_MODE_PICTURE_ASPECT_4_3 1
103#define DRM_MODE_PICTURE_ASPECT_16_9 2
104#define DRM_MODE_PICTURE_ASPECT_64_27 3
105#define DRM_MODE_PICTURE_ASPECT_256_135 4
106
107
108#define DRM_MODE_CONTENT_TYPE_NO_DATA 0
109#define DRM_MODE_CONTENT_TYPE_GRAPHICS 1
110#define DRM_MODE_CONTENT_TYPE_PHOTO 2
111#define DRM_MODE_CONTENT_TYPE_CINEMA 3
112#define DRM_MODE_CONTENT_TYPE_GAME 4
113
114
115#define DRM_MODE_FLAG_PIC_AR_MASK (0x0F<<19)
116#define DRM_MODE_FLAG_PIC_AR_NONE \
117 (DRM_MODE_PICTURE_ASPECT_NONE<<19)
118#define DRM_MODE_FLAG_PIC_AR_4_3 \
119 (DRM_MODE_PICTURE_ASPECT_4_3<<19)
120#define DRM_MODE_FLAG_PIC_AR_16_9 \
121 (DRM_MODE_PICTURE_ASPECT_16_9<<19)
122#define DRM_MODE_FLAG_PIC_AR_64_27 \
123 (DRM_MODE_PICTURE_ASPECT_64_27<<19)
124#define DRM_MODE_FLAG_PIC_AR_256_135 \
125 (DRM_MODE_PICTURE_ASPECT_256_135<<19)
126
127#define DRM_MODE_FLAG_ALL (DRM_MODE_FLAG_PHSYNC | \
128 DRM_MODE_FLAG_NHSYNC | \
129 DRM_MODE_FLAG_PVSYNC | \
130 DRM_MODE_FLAG_NVSYNC | \
131 DRM_MODE_FLAG_INTERLACE | \
132 DRM_MODE_FLAG_DBLSCAN | \
133 DRM_MODE_FLAG_CSYNC | \
134 DRM_MODE_FLAG_PCSYNC | \
135 DRM_MODE_FLAG_NCSYNC | \
136 DRM_MODE_FLAG_HSKEW | \
137 DRM_MODE_FLAG_DBLCLK | \
138 DRM_MODE_FLAG_CLKDIV2 | \
139 DRM_MODE_FLAG_3D_MASK)
140
141
142
143#define DRM_MODE_DPMS_ON 0
144#define DRM_MODE_DPMS_STANDBY 1
145#define DRM_MODE_DPMS_SUSPEND 2
146#define DRM_MODE_DPMS_OFF 3
147
148
149#define DRM_MODE_SCALE_NONE 0
150
151#define DRM_MODE_SCALE_FULLSCREEN 1
152#define DRM_MODE_SCALE_CENTER 2
153#define DRM_MODE_SCALE_ASPECT 3
154
155
156#define DRM_MODE_DITHERING_OFF 0
157#define DRM_MODE_DITHERING_ON 1
158#define DRM_MODE_DITHERING_AUTO 2
159
160
161#define DRM_MODE_DIRTY_OFF 0
162#define DRM_MODE_DIRTY_ON 1
163#define DRM_MODE_DIRTY_ANNOTATE 2
164
165
166#define DRM_MODE_LINK_STATUS_GOOD 0
167#define DRM_MODE_LINK_STATUS_BAD 1
168
169
170
171
172
173
174
175
176
177
178#define DRM_MODE_ROTATE_0 (1<<0)
179#define DRM_MODE_ROTATE_90 (1<<1)
180#define DRM_MODE_ROTATE_180 (1<<2)
181#define DRM_MODE_ROTATE_270 (1<<3)
182
183
184
185
186
187
188#define DRM_MODE_ROTATE_MASK (\
189 DRM_MODE_ROTATE_0 | \
190 DRM_MODE_ROTATE_90 | \
191 DRM_MODE_ROTATE_180 | \
192 DRM_MODE_ROTATE_270)
193
194
195
196
197
198
199
200
201
202
203
204#define DRM_MODE_REFLECT_X (1<<4)
205#define DRM_MODE_REFLECT_Y (1<<5)
206
207
208
209
210
211
212#define DRM_MODE_REFLECT_MASK (\
213 DRM_MODE_REFLECT_X | \
214 DRM_MODE_REFLECT_Y)
215
216
217#define DRM_MODE_CONTENT_PROTECTION_UNDESIRED 0
218#define DRM_MODE_CONTENT_PROTECTION_DESIRED 1
219#define DRM_MODE_CONTENT_PROTECTION_ENABLED 2
220
221struct drm_mode_modeinfo {
222 __u32 clock;
223 __u16 hdisplay;
224 __u16 hsync_start;
225 __u16 hsync_end;
226 __u16 htotal;
227 __u16 hskew;
228 __u16 vdisplay;
229 __u16 vsync_start;
230 __u16 vsync_end;
231 __u16 vtotal;
232 __u16 vscan;
233
234 __u32 vrefresh;
235
236 __u32 flags;
237 __u32 type;
238 char name[DRM_DISPLAY_MODE_LEN];
239};
240
241struct drm_mode_card_res {
242 __u64 fb_id_ptr;
243 __u64 crtc_id_ptr;
244 __u64 connector_id_ptr;
245 __u64 encoder_id_ptr;
246 __u32 count_fbs;
247 __u32 count_crtcs;
248 __u32 count_connectors;
249 __u32 count_encoders;
250 __u32 min_width;
251 __u32 max_width;
252 __u32 min_height;
253 __u32 max_height;
254};
255
256struct drm_mode_crtc {
257 __u64 set_connectors_ptr;
258 __u32 count_connectors;
259
260 __u32 crtc_id;
261 __u32 fb_id;
262
263 __u32 x;
264 __u32 y;
265
266 __u32 gamma_size;
267 __u32 mode_valid;
268 struct drm_mode_modeinfo mode;
269};
270
271#define DRM_MODE_PRESENT_TOP_FIELD (1<<0)
272#define DRM_MODE_PRESENT_BOTTOM_FIELD (1<<1)
273
274
275struct drm_mode_set_plane {
276 __u32 plane_id;
277 __u32 crtc_id;
278 __u32 fb_id;
279 __u32 flags;
280
281
282 __s32 crtc_x;
283 __s32 crtc_y;
284 __u32 crtc_w;
285 __u32 crtc_h;
286
287
288 __u32 src_x;
289 __u32 src_y;
290 __u32 src_h;
291 __u32 src_w;
292};
293
294struct drm_mode_get_plane {
295 __u32 plane_id;
296
297 __u32 crtc_id;
298 __u32 fb_id;
299
300 __u32 possible_crtcs;
301 __u32 gamma_size;
302
303 __u32 count_format_types;
304 __u64 format_type_ptr;
305};
306
307struct drm_mode_get_plane_res {
308 __u64 plane_id_ptr;
309 __u32 count_planes;
310};
311
312#define DRM_MODE_ENCODER_NONE 0
313#define DRM_MODE_ENCODER_DAC 1
314#define DRM_MODE_ENCODER_TMDS 2
315#define DRM_MODE_ENCODER_LVDS 3
316#define DRM_MODE_ENCODER_TVDAC 4
317#define DRM_MODE_ENCODER_VIRTUAL 5
318#define DRM_MODE_ENCODER_DSI 6
319#define DRM_MODE_ENCODER_DPMST 7
320#define DRM_MODE_ENCODER_DPI 8
321
322struct drm_mode_get_encoder {
323 __u32 encoder_id;
324 __u32 encoder_type;
325
326 __u32 crtc_id;
327
328 __u32 possible_crtcs;
329 __u32 possible_clones;
330};
331
332
333
334enum drm_mode_subconnector {
335 DRM_MODE_SUBCONNECTOR_Automatic = 0,
336 DRM_MODE_SUBCONNECTOR_Unknown = 0,
337 DRM_MODE_SUBCONNECTOR_DVID = 3,
338 DRM_MODE_SUBCONNECTOR_DVIA = 4,
339 DRM_MODE_SUBCONNECTOR_Composite = 5,
340 DRM_MODE_SUBCONNECTOR_SVIDEO = 6,
341 DRM_MODE_SUBCONNECTOR_Component = 8,
342 DRM_MODE_SUBCONNECTOR_SCART = 9,
343};
344
345#define DRM_MODE_CONNECTOR_Unknown 0
346#define DRM_MODE_CONNECTOR_VGA 1
347#define DRM_MODE_CONNECTOR_DVII 2
348#define DRM_MODE_CONNECTOR_DVID 3
349#define DRM_MODE_CONNECTOR_DVIA 4
350#define DRM_MODE_CONNECTOR_Composite 5
351#define DRM_MODE_CONNECTOR_SVIDEO 6
352#define DRM_MODE_CONNECTOR_LVDS 7
353#define DRM_MODE_CONNECTOR_Component 8
354#define DRM_MODE_CONNECTOR_9PinDIN 9
355#define DRM_MODE_CONNECTOR_DisplayPort 10
356#define DRM_MODE_CONNECTOR_HDMIA 11
357#define DRM_MODE_CONNECTOR_HDMIB 12
358#define DRM_MODE_CONNECTOR_TV 13
359#define DRM_MODE_CONNECTOR_eDP 14
360#define DRM_MODE_CONNECTOR_VIRTUAL 15
361#define DRM_MODE_CONNECTOR_DSI 16
362#define DRM_MODE_CONNECTOR_DPI 17
363#define DRM_MODE_CONNECTOR_WRITEBACK 18
364#define DRM_MODE_CONNECTOR_SPI 19
365
366struct drm_mode_get_connector {
367
368 __u64 encoders_ptr;
369 __u64 modes_ptr;
370 __u64 props_ptr;
371 __u64 prop_values_ptr;
372
373 __u32 count_modes;
374 __u32 count_props;
375 __u32 count_encoders;
376
377 __u32 encoder_id;
378 __u32 connector_id;
379 __u32 connector_type;
380 __u32 connector_type_id;
381
382 __u32 connection;
383 __u32 mm_width;
384 __u32 mm_height;
385 __u32 subpixel;
386
387 __u32 pad;
388};
389
390#define DRM_MODE_PROP_PENDING (1<<0)
391#define DRM_MODE_PROP_RANGE (1<<1)
392#define DRM_MODE_PROP_IMMUTABLE (1<<2)
393#define DRM_MODE_PROP_ENUM (1<<3)
394#define DRM_MODE_PROP_BLOB (1<<4)
395#define DRM_MODE_PROP_BITMASK (1<<5)
396
397
398#define DRM_MODE_PROP_LEGACY_TYPE ( \
399 DRM_MODE_PROP_RANGE | \
400 DRM_MODE_PROP_ENUM | \
401 DRM_MODE_PROP_BLOB | \
402 DRM_MODE_PROP_BITMASK)
403
404
405
406
407#define DRM_MODE_PROP_EXTENDED_TYPE 0x0000ffc0
408#define DRM_MODE_PROP_TYPE(n) ((n) << 6)
409#define DRM_MODE_PROP_OBJECT DRM_MODE_PROP_TYPE(1)
410#define DRM_MODE_PROP_SIGNED_RANGE DRM_MODE_PROP_TYPE(2)
411
412
413
414
415
416
417#define DRM_MODE_PROP_ATOMIC 0x80000000
418
419struct drm_mode_property_enum {
420 __u64 value;
421 char name[DRM_PROP_NAME_LEN];
422};
423
424struct drm_mode_get_property {
425 __u64 values_ptr;
426 __u64 enum_blob_ptr;
427
428 __u32 prop_id;
429 __u32 flags;
430 char name[DRM_PROP_NAME_LEN];
431
432 __u32 count_values;
433
434
435 __u32 count_enum_blobs;
436};
437
438struct drm_mode_connector_set_property {
439 __u64 value;
440 __u32 prop_id;
441 __u32 connector_id;
442};
443
444#define DRM_MODE_OBJECT_CRTC 0xcccccccc
445#define DRM_MODE_OBJECT_CONNECTOR 0xc0c0c0c0
446#define DRM_MODE_OBJECT_ENCODER 0xe0e0e0e0
447#define DRM_MODE_OBJECT_MODE 0xdededede
448#define DRM_MODE_OBJECT_PROPERTY 0xb0b0b0b0
449#define DRM_MODE_OBJECT_FB 0xfbfbfbfb
450#define DRM_MODE_OBJECT_BLOB 0xbbbbbbbb
451#define DRM_MODE_OBJECT_PLANE 0xeeeeeeee
452#define DRM_MODE_OBJECT_ANY 0
453
454struct drm_mode_obj_get_properties {
455 __u64 props_ptr;
456 __u64 prop_values_ptr;
457 __u32 count_props;
458 __u32 obj_id;
459 __u32 obj_type;
460};
461
462struct drm_mode_obj_set_property {
463 __u64 value;
464 __u32 prop_id;
465 __u32 obj_id;
466 __u32 obj_type;
467};
468
469struct drm_mode_get_blob {
470 __u32 blob_id;
471 __u32 length;
472 __u64 data;
473};
474
475struct drm_mode_fb_cmd {
476 __u32 fb_id;
477 __u32 width;
478 __u32 height;
479 __u32 pitch;
480 __u32 bpp;
481 __u32 depth;
482
483 __u32 handle;
484};
485
486#define DRM_MODE_FB_INTERLACED (1<<0)
487#define DRM_MODE_FB_MODIFIERS (1<<1)
488#define DRM_MODE_FB_ALTERNATE_TOP (1<<2)
489#define DRM_MODE_FB_ALTERNATE_BOTTOM (1<<3)
490
491struct drm_mode_fb_cmd2 {
492 __u32 fb_id;
493 __u32 width;
494 __u32 height;
495 __u32 pixel_format;
496 __u32 flags;
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522 __u32 handles[4];
523 __u32 pitches[4];
524 __u32 offsets[4];
525 __u64 modifier[4];
526};
527
528#define DRM_MODE_FB_DIRTY_ANNOTATE_COPY 0x01
529#define DRM_MODE_FB_DIRTY_ANNOTATE_FILL 0x02
530#define DRM_MODE_FB_DIRTY_FLAGS 0x03
531
532#define DRM_MODE_FB_DIRTY_MAX_CLIPS 256
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561struct drm_mode_fb_dirty_cmd {
562 __u32 fb_id;
563 __u32 flags;
564 __u32 color;
565 __u32 num_clips;
566 __u64 clips_ptr;
567};
568
569struct drm_mode_mode_cmd {
570 __u32 connector_id;
571 struct drm_mode_modeinfo mode;
572};
573
574#define DRM_MODE_CURSOR_BO 0x01
575#define DRM_MODE_CURSOR_MOVE 0x02
576#define DRM_MODE_CURSOR_FLAGS 0x03
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592struct drm_mode_cursor {
593 __u32 flags;
594 __u32 crtc_id;
595 __s32 x;
596 __s32 y;
597 __u32 width;
598 __u32 height;
599
600 __u32 handle;
601};
602
603struct drm_mode_cursor2 {
604 __u32 flags;
605 __u32 crtc_id;
606 __s32 x;
607 __s32 y;
608 __u32 width;
609 __u32 height;
610
611 __u32 handle;
612 __s32 hot_x;
613 __s32 hot_y;
614};
615
616struct drm_mode_crtc_lut {
617 __u32 crtc_id;
618 __u32 gamma_size;
619
620
621 __u64 red;
622 __u64 green;
623 __u64 blue;
624};
625
626struct drm_color_ctm {
627
628
629
630
631 __u64 matrix[9];
632};
633
634struct drm_color_lut {
635
636
637
638
639 __u16 red;
640 __u16 green;
641 __u16 blue;
642 __u16 reserved;
643};
644
645
646
647
648
649
650
651
652
653
654struct hdr_metadata_infoframe {
655
656
657
658
659 __u8 eotf;
660
661
662
663 __u8 metadata_type;
664
665
666
667
668
669
670
671
672 struct {
673 __u16 x, y;
674 } display_primaries[3];
675
676
677
678
679
680
681
682
683 struct {
684 __u16 x, y;
685 } white_point;
686
687
688
689
690
691 __u16 max_display_mastering_luminance;
692
693
694
695
696
697
698 __u16 min_display_mastering_luminance;
699
700
701
702
703
704 __u16 max_cll;
705
706
707
708
709
710 __u16 max_fall;
711};
712
713
714
715
716
717
718struct hdr_output_metadata {
719
720
721
722 __u32 metadata_type;
723
724
725
726 union {
727 struct hdr_metadata_infoframe hdmi_metadata_type1;
728 };
729};
730
731#define DRM_MODE_PAGE_FLIP_EVENT 0x01
732#define DRM_MODE_PAGE_FLIP_ASYNC 0x02
733#define DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE 0x4
734#define DRM_MODE_PAGE_FLIP_TARGET_RELATIVE 0x8
735#define DRM_MODE_PAGE_FLIP_TARGET (DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE | \
736 DRM_MODE_PAGE_FLIP_TARGET_RELATIVE)
737#define DRM_MODE_PAGE_FLIP_FLAGS (DRM_MODE_PAGE_FLIP_EVENT | \
738 DRM_MODE_PAGE_FLIP_ASYNC | \
739 DRM_MODE_PAGE_FLIP_TARGET)
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765struct drm_mode_crtc_page_flip {
766 __u32 crtc_id;
767 __u32 fb_id;
768 __u32 flags;
769 __u32 reserved;
770 __u64 user_data;
771};
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793struct drm_mode_crtc_page_flip_target {
794 __u32 crtc_id;
795 __u32 fb_id;
796 __u32 flags;
797 __u32 sequence;
798 __u64 user_data;
799};
800
801
802struct drm_mode_create_dumb {
803 __u32 height;
804 __u32 width;
805 __u32 bpp;
806 __u32 flags;
807
808 __u32 handle;
809 __u32 pitch;
810 __u64 size;
811};
812
813
814struct drm_mode_map_dumb {
815
816 __u32 handle;
817 __u32 pad;
818
819
820
821
822
823 __u64 offset;
824};
825
826struct drm_mode_destroy_dumb {
827 __u32 handle;
828};
829
830
831#define DRM_MODE_ATOMIC_TEST_ONLY 0x0100
832#define DRM_MODE_ATOMIC_NONBLOCK 0x0200
833#define DRM_MODE_ATOMIC_ALLOW_MODESET 0x0400
834
835#define DRM_MODE_ATOMIC_FLAGS (\
836 DRM_MODE_PAGE_FLIP_EVENT |\
837 DRM_MODE_PAGE_FLIP_ASYNC |\
838 DRM_MODE_ATOMIC_TEST_ONLY |\
839 DRM_MODE_ATOMIC_NONBLOCK |\
840 DRM_MODE_ATOMIC_ALLOW_MODESET)
841
842struct drm_mode_atomic {
843 __u32 flags;
844 __u32 count_objs;
845 __u64 objs_ptr;
846 __u64 count_props_ptr;
847 __u64 props_ptr;
848 __u64 prop_values_ptr;
849 __u64 reserved;
850 __u64 user_data;
851};
852
853struct drm_format_modifier_blob {
854#define FORMAT_BLOB_CURRENT 1
855
856 __u32 version;
857
858
859 __u32 flags;
860
861
862 __u32 count_formats;
863
864
865 __u32 formats_offset;
866
867
868 __u32 count_modifiers;
869
870
871 __u32 modifiers_offset;
872
873
874
875};
876
877struct drm_format_modifier {
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895 __u64 formats;
896 __u32 offset;
897 __u32 pad;
898
899
900 __u64 modifier;
901};
902
903
904
905
906
907
908
909
910
911struct drm_mode_create_blob {
912
913 __u64 data;
914
915 __u32 length;
916
917 __u32 blob_id;
918};
919
920
921
922
923
924
925struct drm_mode_destroy_blob {
926 __u32 blob_id;
927};
928
929
930
931
932
933
934
935
936
937
938struct drm_mode_create_lease {
939
940 __u64 object_ids;
941
942 __u32 object_count;
943
944 __u32 flags;
945
946
947 __u32 lessee_id;
948
949 __u32 fd;
950};
951
952
953
954
955
956
957
958
959struct drm_mode_list_lessees {
960
961
962
963
964
965
966
967 __u32 count_lessees;
968 __u32 pad;
969
970
971
972
973 __u64 lessees_ptr;
974};
975
976
977
978
979
980
981
982
983struct drm_mode_get_lease {
984
985
986
987
988
989
990
991 __u32 count_objects;
992 __u32 pad;
993
994
995
996
997 __u64 objects_ptr;
998};
999
1000
1001
1002
1003
1004
1005struct drm_mode_revoke_lease {
1006
1007
1008 __u32 lessee_id;
1009};
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023struct drm_mode_rect {
1024 __s32 x1;
1025 __s32 y1;
1026 __s32 x2;
1027 __s32 y2;
1028};
1029
1030#if defined(__cplusplus)
1031}
1032#endif
1033
1034#endif
1035