XenevaOS
Loading...
Searching...
No Matches
autogenerated_propget.h
Go to the documentation of this file.
1/*
2 * This file is part of LibCSS
3 * Licensed under the MIT License,
4 * http://www.opensource.org/licenses/mit-license.php
5 * Copyright 2017 The NetSurf Project
6 */
7
8
9#define ALIGN_CONTENT_INDEX 10
10#define ALIGN_CONTENT_SHIFT 20
11#define ALIGN_CONTENT_MASK 0x700000
12static inline uint8_t get_align_content_bits(const css_computed_style *style)
13{
14 uint32_t bits = style->i.bits[ALIGN_CONTENT_INDEX];
15 bits &= ALIGN_CONTENT_MASK;
16 bits >>= ALIGN_CONTENT_SHIFT;
17
18 /* 3bits: ttt : type */
19 return (bits & 0x7);
20}
21static inline uint8_t get_align_content(const css_computed_style *style)
22{
23 uint32_t bits = style->i.bits[ALIGN_CONTENT_INDEX];
24 bits &= ALIGN_CONTENT_MASK;
25 bits >>= ALIGN_CONTENT_SHIFT;
26
27 /* 3bits: ttt : type */
28
29 return (bits & 0x7);
30}
31#undef ALIGN_CONTENT_INDEX
32#undef ALIGN_CONTENT_SHIFT
33#undef ALIGN_CONTENT_MASK
34
35#define ALIGN_ITEMS_INDEX 10
36#define ALIGN_ITEMS_SHIFT 23
37#define ALIGN_ITEMS_MASK 0x3800000
38static inline uint8_t get_align_items_bits(const css_computed_style *style)
39{
40 uint32_t bits = style->i.bits[ALIGN_ITEMS_INDEX];
41 bits &= ALIGN_ITEMS_MASK;
42 bits >>= ALIGN_ITEMS_SHIFT;
43
44 /* 3bits: ttt : type */
45 return (bits & 0x7);
46}
47static inline uint8_t get_align_items(const css_computed_style *style)
48{
49 uint32_t bits = style->i.bits[ALIGN_ITEMS_INDEX];
50 bits &= ALIGN_ITEMS_MASK;
51 bits >>= ALIGN_ITEMS_SHIFT;
52
53 /* 3bits: ttt : type */
54
55 return (bits & 0x7);
56}
57#undef ALIGN_ITEMS_INDEX
58#undef ALIGN_ITEMS_SHIFT
59#undef ALIGN_ITEMS_MASK
60
61#define ALIGN_SELF_INDEX 10
62#define ALIGN_SELF_SHIFT 26
63#define ALIGN_SELF_MASK 0x1c000000
64static inline uint8_t get_align_self_bits(const css_computed_style *style)
65{
66 uint32_t bits = style->i.bits[ALIGN_SELF_INDEX];
67 bits &= ALIGN_SELF_MASK;
68 bits >>= ALIGN_SELF_SHIFT;
69
70 /* 3bits: ttt : type */
71 return (bits & 0x7);
72}
73static inline uint8_t get_align_self(const css_computed_style *style)
74{
75 uint32_t bits = style->i.bits[ALIGN_SELF_INDEX];
76 bits &= ALIGN_SELF_MASK;
77 bits >>= ALIGN_SELF_SHIFT;
78
79 /* 3bits: ttt : type */
80
81 return (bits & 0x7);
82}
83#undef ALIGN_SELF_INDEX
84#undef ALIGN_SELF_SHIFT
85#undef ALIGN_SELF_MASK
86
87#define BACKGROUND_ATTACHMENT_INDEX 14
88#define BACKGROUND_ATTACHMENT_SHIFT 28
89#define BACKGROUND_ATTACHMENT_MASK 0x30000000
90static inline uint8_t get_background_attachment_bits(const css_computed_style
91 *style)
92{
96
97 /* 2bits: tt : type */
98 return (bits & 0x3);
99}
100static inline uint8_t get_background_attachment(const css_computed_style *style)
101{
105
106 /* 2bits: tt : type */
107
108 return (bits & 0x3);
109}
110#undef BACKGROUND_ATTACHMENT_INDEX
111#undef BACKGROUND_ATTACHMENT_SHIFT
112#undef BACKGROUND_ATTACHMENT_MASK
113
114#define BACKGROUND_COLOR_INDEX 14
115#define BACKGROUND_COLOR_SHIFT 30
116#define BACKGROUND_COLOR_MASK 0xc0000000
117static inline uint8_t get_background_color_bits(const css_computed_style *style)
118{
119 uint32_t bits = style->i.bits[BACKGROUND_COLOR_INDEX];
120 bits &= BACKGROUND_COLOR_MASK;
121 bits >>= BACKGROUND_COLOR_SHIFT;
122
123 /* 2bits: tt : type */
124 return (bits & 0x3);
125}
126static inline uint8_t get_background_color(const css_computed_style *style,
128{
129 uint32_t bits = style->i.bits[BACKGROUND_COLOR_INDEX];
130 bits &= BACKGROUND_COLOR_MASK;
131 bits >>= BACKGROUND_COLOR_SHIFT;
132
133 /* 2bits: tt : type */
134 *color = style->i.background_color;
135
136 return (bits & 0x3);
137}
138#undef BACKGROUND_COLOR_INDEX
139#undef BACKGROUND_COLOR_SHIFT
140#undef BACKGROUND_COLOR_MASK
141
142#define BACKGROUND_IMAGE_INDEX 14
143#define BACKGROUND_IMAGE_SHIFT 16
144#define BACKGROUND_IMAGE_MASK 0x10000
145static inline uint8_t get_background_image_bits(const css_computed_style *style)
146{
147 uint32_t bits = style->i.bits[BACKGROUND_IMAGE_INDEX];
148 bits &= BACKGROUND_IMAGE_MASK;
149 bits >>= BACKGROUND_IMAGE_SHIFT;
150
151 /* 1bit: t : type */
152 return (bits & 0x1);
153}
154static inline uint8_t get_background_image(const css_computed_style *style,
155 lwc_string **string)
156{
157 uint32_t bits = style->i.bits[BACKGROUND_IMAGE_INDEX];
158 bits &= BACKGROUND_IMAGE_MASK;
159 bits >>= BACKGROUND_IMAGE_SHIFT;
160
161 /* 1bit: t : type */
162 *string = style->i.background_image;
163
164 return (bits & 0x1);
165}
166#undef BACKGROUND_IMAGE_INDEX
167#undef BACKGROUND_IMAGE_SHIFT
168#undef BACKGROUND_IMAGE_MASK
169
170#define BACKGROUND_POSITION_INDEX 12
171#define BACKGROUND_POSITION_SHIFT 10
172#define BACKGROUND_POSITION_MASK 0x1ffc00
173static inline uint8_t get_background_position_bits(const css_computed_style
174 *style)
175{
179
180 /* 11bits: aaaaabbbbbt : unit_a | unit_b | type */
181 return (bits & 0x1);
182}
183static inline uint8_t get_background_position(const css_computed_style *style,
184 css_fixed *length_a, css_unit *unit_a, css_fixed *length_b,
185 css_unit *unit_b)
186{
190
191 /* 11bits: aaaaabbbbbt : unit_a | unit_b | type */
192 if ((bits & 0x1) == CSS_BACKGROUND_POSITION_SET) {
193 *length_a = style->i.background_position_a;
194 *length_b = style->i.background_position_b;
195 *unit_a = bits >> 6;
196 *unit_b = (bits & 0x3e) >> 1;
197 }
198
199 return (bits & 0x1);
200}
201#undef BACKGROUND_POSITION_INDEX
202#undef BACKGROUND_POSITION_SHIFT
203#undef BACKGROUND_POSITION_MASK
204
205#define BACKGROUND_REPEAT_INDEX 10
206#define BACKGROUND_REPEAT_SHIFT 29
207#define BACKGROUND_REPEAT_MASK 0xe0000000
208static inline uint8_t get_background_repeat_bits(const css_computed_style
209 *style)
210{
211 uint32_t bits = style->i.bits[BACKGROUND_REPEAT_INDEX];
214
215 /* 3bits: ttt : type */
216 return (bits & 0x7);
217}
218static inline uint8_t get_background_repeat(const css_computed_style *style)
219{
220 uint32_t bits = style->i.bits[BACKGROUND_REPEAT_INDEX];
223
224 /* 3bits: ttt : type */
225
226 return (bits & 0x7);
227}
228#undef BACKGROUND_REPEAT_INDEX
229#undef BACKGROUND_REPEAT_SHIFT
230#undef BACKGROUND_REPEAT_MASK
231
232#define BORDER_BOTTOM_COLOR_INDEX 11
233#define BORDER_BOTTOM_COLOR_SHIFT 0
234#define BORDER_BOTTOM_COLOR_MASK 0x3
235static inline uint8_t get_border_bottom_color_bits(const css_computed_style
236 *style)
237{
241
242 /* 2bits: tt : type */
243 return (bits & 0x3);
244}
245static inline uint8_t get_border_bottom_color(const css_computed_style *style,
247{
251
252 /* 2bits: tt : type */
253 *color = style->i.border_bottom_color;
254
255 return (bits & 0x3);
256}
257#undef BORDER_BOTTOM_COLOR_INDEX
258#undef BORDER_BOTTOM_COLOR_SHIFT
259#undef BORDER_BOTTOM_COLOR_MASK
260
261#define BORDER_BOTTOM_STYLE_INDEX 13
262#define BORDER_BOTTOM_STYLE_SHIFT 28
263#define BORDER_BOTTOM_STYLE_MASK 0xf0000000
264static inline uint8_t get_border_bottom_style_bits(const css_computed_style
265 *style)
266{
270
271 /* 4bits: tttt : type */
272 return (bits & 0xf);
273}
274static inline uint8_t get_border_bottom_style(const css_computed_style *style)
275{
279
280 /* 4bits: tttt : type */
281
282 return (bits & 0xf);
283}
284#undef BORDER_BOTTOM_STYLE_INDEX
285#undef BORDER_BOTTOM_STYLE_SHIFT
286#undef BORDER_BOTTOM_STYLE_MASK
287
288#define BORDER_BOTTOM_WIDTH_INDEX 0
289#define BORDER_BOTTOM_WIDTH_SHIFT 0
290#define BORDER_BOTTOM_WIDTH_MASK 0xff
291static inline uint8_t get_border_bottom_width_bits(const css_computed_style
292 *style)
293{
297
298 /* 8bits: uuuuuttt : unit | type */
299 return (bits & 0x7);
300}
301static inline uint8_t get_border_bottom_width(const css_computed_style *style,
302 css_fixed *length, css_unit *unit)
303{
307
308 /* 8bits: uuuuuttt : unit | type */
309 if ((bits & 0x7) == CSS_BORDER_WIDTH_WIDTH) {
310 *length = style->i.border_bottom_width;
311 *unit = bits >> 3;
312 }
313
314 return (bits & 0x7);
315}
316#undef BORDER_BOTTOM_WIDTH_INDEX
317#undef BORDER_BOTTOM_WIDTH_SHIFT
318#undef BORDER_BOTTOM_WIDTH_MASK
319
320#define BORDER_COLLAPSE_INDEX 11
321#define BORDER_COLLAPSE_SHIFT 2
322#define BORDER_COLLAPSE_MASK 0xc
323static inline uint8_t get_border_collapse_bits(const css_computed_style *style)
324{
325 uint32_t bits = style->i.bits[BORDER_COLLAPSE_INDEX];
326 bits &= BORDER_COLLAPSE_MASK;
327 bits >>= BORDER_COLLAPSE_SHIFT;
328
329 /* 2bits: tt : type */
330 return (bits & 0x3);
331}
332static inline uint8_t get_border_collapse(const css_computed_style *style)
333{
334 uint32_t bits = style->i.bits[BORDER_COLLAPSE_INDEX];
335 bits &= BORDER_COLLAPSE_MASK;
336 bits >>= BORDER_COLLAPSE_SHIFT;
337
338 /* 2bits: tt : type */
339
340 return (bits & 0x3);
341}
342#undef BORDER_COLLAPSE_INDEX
343#undef BORDER_COLLAPSE_SHIFT
344#undef BORDER_COLLAPSE_MASK
345
346#define BORDER_LEFT_COLOR_INDEX 11
347#define BORDER_LEFT_COLOR_SHIFT 4
348#define BORDER_LEFT_COLOR_MASK 0x30
349static inline uint8_t get_border_left_color_bits(const css_computed_style
350 *style)
351{
352 uint32_t bits = style->i.bits[BORDER_LEFT_COLOR_INDEX];
355
356 /* 2bits: tt : type */
357 return (bits & 0x3);
358}
359static inline uint8_t get_border_left_color(const css_computed_style *style,
361{
362 uint32_t bits = style->i.bits[BORDER_LEFT_COLOR_INDEX];
365
366 /* 2bits: tt : type */
367 *color = style->i.border_left_color;
368
369 return (bits & 0x3);
370}
371#undef BORDER_LEFT_COLOR_INDEX
372#undef BORDER_LEFT_COLOR_SHIFT
373#undef BORDER_LEFT_COLOR_MASK
374
375#define BORDER_LEFT_STYLE_INDEX 9
376#define BORDER_LEFT_STYLE_SHIFT 3
377#define BORDER_LEFT_STYLE_MASK 0x78
378static inline uint8_t get_border_left_style_bits(const css_computed_style
379 *style)
380{
381 uint32_t bits = style->i.bits[BORDER_LEFT_STYLE_INDEX];
384
385 /* 4bits: tttt : type */
386 return (bits & 0xf);
387}
388static inline uint8_t get_border_left_style(const css_computed_style *style)
389{
390 uint32_t bits = style->i.bits[BORDER_LEFT_STYLE_INDEX];
393
394 /* 4bits: tttt : type */
395
396 return (bits & 0xf);
397}
398#undef BORDER_LEFT_STYLE_INDEX
399#undef BORDER_LEFT_STYLE_SHIFT
400#undef BORDER_LEFT_STYLE_MASK
401
402#define BORDER_LEFT_WIDTH_INDEX 0
403#define BORDER_LEFT_WIDTH_SHIFT 8
404#define BORDER_LEFT_WIDTH_MASK 0xff00
405static inline uint8_t get_border_left_width_bits(const css_computed_style
406 *style)
407{
408 uint32_t bits = style->i.bits[BORDER_LEFT_WIDTH_INDEX];
411
412 /* 8bits: uuuuuttt : unit | type */
413 return (bits & 0x7);
414}
415static inline uint8_t get_border_left_width(const css_computed_style *style,
416 css_fixed *length, css_unit *unit)
417{
418 uint32_t bits = style->i.bits[BORDER_LEFT_WIDTH_INDEX];
421
422 /* 8bits: uuuuuttt : unit | type */
423 if ((bits & 0x7) == CSS_BORDER_WIDTH_WIDTH) {
424 *length = style->i.border_left_width;
425 *unit = bits >> 3;
426 }
427
428 return (bits & 0x7);
429}
430#undef BORDER_LEFT_WIDTH_INDEX
431#undef BORDER_LEFT_WIDTH_SHIFT
432#undef BORDER_LEFT_WIDTH_MASK
433
434#define BORDER_RIGHT_COLOR_INDEX 11
435#define BORDER_RIGHT_COLOR_SHIFT 6
436#define BORDER_RIGHT_COLOR_MASK 0xc0
437static inline uint8_t get_border_right_color_bits(const css_computed_style
438 *style)
439{
443
444 /* 2bits: tt : type */
445 return (bits & 0x3);
446}
447static inline uint8_t get_border_right_color(const css_computed_style *style,
449{
453
454 /* 2bits: tt : type */
455 *color = style->i.border_right_color;
456
457 return (bits & 0x3);
458}
459#undef BORDER_RIGHT_COLOR_INDEX
460#undef BORDER_RIGHT_COLOR_SHIFT
461#undef BORDER_RIGHT_COLOR_MASK
462
463#define BORDER_RIGHT_STYLE_INDEX 9
464#define BORDER_RIGHT_STYLE_SHIFT 7
465#define BORDER_RIGHT_STYLE_MASK 0x780
466static inline uint8_t get_border_right_style_bits(const css_computed_style
467 *style)
468{
472
473 /* 4bits: tttt : type */
474 return (bits & 0xf);
475}
476static inline uint8_t get_border_right_style(const css_computed_style *style)
477{
481
482 /* 4bits: tttt : type */
483
484 return (bits & 0xf);
485}
486#undef BORDER_RIGHT_STYLE_INDEX
487#undef BORDER_RIGHT_STYLE_SHIFT
488#undef BORDER_RIGHT_STYLE_MASK
489
490#define BORDER_RIGHT_WIDTH_INDEX 0
491#define BORDER_RIGHT_WIDTH_SHIFT 16
492#define BORDER_RIGHT_WIDTH_MASK 0xff0000
493static inline uint8_t get_border_right_width_bits(const css_computed_style
494 *style)
495{
499
500 /* 8bits: uuuuuttt : unit | type */
501 return (bits & 0x7);
502}
503static inline uint8_t get_border_right_width(const css_computed_style *style,
504 css_fixed *length, css_unit *unit)
505{
509
510 /* 8bits: uuuuuttt : unit | type */
511 if ((bits & 0x7) == CSS_BORDER_WIDTH_WIDTH) {
512 *length = style->i.border_right_width;
513 *unit = bits >> 3;
514 }
515
516 return (bits & 0x7);
517}
518#undef BORDER_RIGHT_WIDTH_INDEX
519#undef BORDER_RIGHT_WIDTH_SHIFT
520#undef BORDER_RIGHT_WIDTH_MASK
521
522#define BORDER_SPACING_INDEX 12
523#define BORDER_SPACING_SHIFT 21
524#define BORDER_SPACING_MASK 0xffe00000
525static inline uint8_t get_border_spacing_bits(const css_computed_style *style)
526{
527 uint32_t bits = style->i.bits[BORDER_SPACING_INDEX];
528 bits &= BORDER_SPACING_MASK;
529 bits >>= BORDER_SPACING_SHIFT;
530
531 /* 11bits: aaaaabbbbbt : unit_a | unit_b | type */
532 return (bits & 0x1);
533}
534static inline uint8_t get_border_spacing(const css_computed_style *style,
535 css_fixed *length_a, css_unit *unit_a, css_fixed *length_b,
536 css_unit *unit_b)
537{
538 uint32_t bits = style->i.bits[BORDER_SPACING_INDEX];
539 bits &= BORDER_SPACING_MASK;
540 bits >>= BORDER_SPACING_SHIFT;
541
542 /* 11bits: aaaaabbbbbt : unit_a | unit_b | type */
543 if ((bits & 0x1) == CSS_BORDER_SPACING_SET) {
544 *length_a = style->i.border_spacing_a;
545 *length_b = style->i.border_spacing_b;
546 *unit_a = bits >> 6;
547 *unit_b = (bits & 0x3e) >> 1;
548 }
549
550 return (bits & 0x1);
551}
552#undef BORDER_SPACING_INDEX
553#undef BORDER_SPACING_SHIFT
554#undef BORDER_SPACING_MASK
555
556#define BORDER_TOP_COLOR_INDEX 11
557#define BORDER_TOP_COLOR_SHIFT 8
558#define BORDER_TOP_COLOR_MASK 0x300
559static inline uint8_t get_border_top_color_bits(const css_computed_style *style)
560{
561 uint32_t bits = style->i.bits[BORDER_TOP_COLOR_INDEX];
562 bits &= BORDER_TOP_COLOR_MASK;
563 bits >>= BORDER_TOP_COLOR_SHIFT;
564
565 /* 2bits: tt : type */
566 return (bits & 0x3);
567}
568static inline uint8_t get_border_top_color(const css_computed_style *style,
570{
571 uint32_t bits = style->i.bits[BORDER_TOP_COLOR_INDEX];
572 bits &= BORDER_TOP_COLOR_MASK;
573 bits >>= BORDER_TOP_COLOR_SHIFT;
574
575 /* 2bits: tt : type */
576 *color = style->i.border_top_color;
577
578 return (bits & 0x3);
579}
580#undef BORDER_TOP_COLOR_INDEX
581#undef BORDER_TOP_COLOR_SHIFT
582#undef BORDER_TOP_COLOR_MASK
583
584#define BORDER_TOP_STYLE_INDEX 9
585#define BORDER_TOP_STYLE_SHIFT 11
586#define BORDER_TOP_STYLE_MASK 0x7800
587static inline uint8_t get_border_top_style_bits(const css_computed_style *style)
588{
589 uint32_t bits = style->i.bits[BORDER_TOP_STYLE_INDEX];
590 bits &= BORDER_TOP_STYLE_MASK;
591 bits >>= BORDER_TOP_STYLE_SHIFT;
592
593 /* 4bits: tttt : type */
594 return (bits & 0xf);
595}
596static inline uint8_t get_border_top_style(const css_computed_style *style)
597{
598 uint32_t bits = style->i.bits[BORDER_TOP_STYLE_INDEX];
599 bits &= BORDER_TOP_STYLE_MASK;
600 bits >>= BORDER_TOP_STYLE_SHIFT;
601
602 /* 4bits: tttt : type */
603
604 return (bits & 0xf);
605}
606#undef BORDER_TOP_STYLE_INDEX
607#undef BORDER_TOP_STYLE_SHIFT
608#undef BORDER_TOP_STYLE_MASK
609
610#define BORDER_TOP_WIDTH_INDEX 0
611#define BORDER_TOP_WIDTH_SHIFT 24
612#define BORDER_TOP_WIDTH_MASK 0xff000000
613static inline uint8_t get_border_top_width_bits(const css_computed_style *style)
614{
615 uint32_t bits = style->i.bits[BORDER_TOP_WIDTH_INDEX];
616 bits &= BORDER_TOP_WIDTH_MASK;
617 bits >>= BORDER_TOP_WIDTH_SHIFT;
618
619 /* 8bits: uuuuuttt : unit | type */
620 return (bits & 0x7);
621}
622static inline uint8_t get_border_top_width(const css_computed_style *style,
623 css_fixed *length, css_unit *unit)
624{
625 uint32_t bits = style->i.bits[BORDER_TOP_WIDTH_INDEX];
626 bits &= BORDER_TOP_WIDTH_MASK;
627 bits >>= BORDER_TOP_WIDTH_SHIFT;
628
629 /* 8bits: uuuuuttt : unit | type */
630 if ((bits & 0x7) == CSS_BORDER_WIDTH_WIDTH) {
631 *length = style->i.border_top_width;
632 *unit = bits >> 3;
633 }
634
635 return (bits & 0x7);
636}
637#undef BORDER_TOP_WIDTH_INDEX
638#undef BORDER_TOP_WIDTH_SHIFT
639#undef BORDER_TOP_WIDTH_MASK
640
641#define BOTTOM_INDEX 3
642#define BOTTOM_SHIFT 11
643#define BOTTOM_MASK 0x3f800
644static inline uint8_t get_bottom_bits(const css_computed_style *style)
645{
646 uint32_t bits = style->i.bits[BOTTOM_INDEX];
647 bits &= BOTTOM_MASK;
648 bits >>= BOTTOM_SHIFT;
649
650 /* 7bits: uuuuutt : unit | type */
651 return (bits & 0x3);
652}
653static inline uint8_t get_bottom(const css_computed_style *style, css_fixed
654 *length, css_unit *unit)
655{
656 uint32_t bits = style->i.bits[BOTTOM_INDEX];
657 bits &= BOTTOM_MASK;
658 bits >>= BOTTOM_SHIFT;
659
660 /* 7bits: uuuuutt : unit | type */
661 if ((bits & 0x3) == CSS_BOTTOM_SET) {
662 *length = style->i.bottom;
663 *unit = bits >> 2;
664 }
665
666 return (bits & 0x3);
667}
668#undef BOTTOM_INDEX
669#undef BOTTOM_SHIFT
670#undef BOTTOM_MASK
671
672#define BOX_SIZING_INDEX 11
673#define BOX_SIZING_SHIFT 10
674#define BOX_SIZING_MASK 0xc00
675static inline uint8_t get_box_sizing_bits(const css_computed_style *style)
676{
677 uint32_t bits = style->i.bits[BOX_SIZING_INDEX];
678 bits &= BOX_SIZING_MASK;
679 bits >>= BOX_SIZING_SHIFT;
680
681 /* 2bits: tt : type */
682 return (bits & 0x3);
683}
684static inline uint8_t get_box_sizing(const css_computed_style *style)
685{
686 uint32_t bits = style->i.bits[BOX_SIZING_INDEX];
687 bits &= BOX_SIZING_MASK;
688 bits >>= BOX_SIZING_SHIFT;
689
690 /* 2bits: tt : type */
691
692 return (bits & 0x3);
693}
694#undef BOX_SIZING_INDEX
695#undef BOX_SIZING_SHIFT
696#undef BOX_SIZING_MASK
697
698#define BREAK_AFTER_INDEX 9
699#define BREAK_AFTER_SHIFT 15
700#define BREAK_AFTER_MASK 0x78000
701static inline uint8_t get_break_after_bits(const css_computed_style *style)
702{
703 uint32_t bits = style->i.bits[BREAK_AFTER_INDEX];
704 bits &= BREAK_AFTER_MASK;
705 bits >>= BREAK_AFTER_SHIFT;
706
707 /* 4bits: tttt : type */
708 return (bits & 0xf);
709}
710static inline uint8_t get_break_after(const css_computed_style *style)
711{
712 uint32_t bits = style->i.bits[BREAK_AFTER_INDEX];
713 bits &= BREAK_AFTER_MASK;
714 bits >>= BREAK_AFTER_SHIFT;
715
716 /* 4bits: tttt : type */
717
718 return (bits & 0xf);
719}
720#undef BREAK_AFTER_INDEX
721#undef BREAK_AFTER_SHIFT
722#undef BREAK_AFTER_MASK
723
724#define BREAK_BEFORE_INDEX 9
725#define BREAK_BEFORE_SHIFT 19
726#define BREAK_BEFORE_MASK 0x780000
727static inline uint8_t get_break_before_bits(const css_computed_style *style)
728{
729 uint32_t bits = style->i.bits[BREAK_BEFORE_INDEX];
730 bits &= BREAK_BEFORE_MASK;
731 bits >>= BREAK_BEFORE_SHIFT;
732
733 /* 4bits: tttt : type */
734 return (bits & 0xf);
735}
736static inline uint8_t get_break_before(const css_computed_style *style)
737{
738 uint32_t bits = style->i.bits[BREAK_BEFORE_INDEX];
739 bits &= BREAK_BEFORE_MASK;
740 bits >>= BREAK_BEFORE_SHIFT;
741
742 /* 4bits: tttt : type */
743
744 return (bits & 0xf);
745}
746#undef BREAK_BEFORE_INDEX
747#undef BREAK_BEFORE_SHIFT
748#undef BREAK_BEFORE_MASK
749
750#define BREAK_INSIDE_INDEX 9
751#define BREAK_INSIDE_SHIFT 23
752#define BREAK_INSIDE_MASK 0x7800000
753static inline uint8_t get_break_inside_bits(const css_computed_style *style)
754{
755 uint32_t bits = style->i.bits[BREAK_INSIDE_INDEX];
756 bits &= BREAK_INSIDE_MASK;
757 bits >>= BREAK_INSIDE_SHIFT;
758
759 /* 4bits: tttt : type */
760 return (bits & 0xf);
761}
762static inline uint8_t get_break_inside(const css_computed_style *style)
763{
764 uint32_t bits = style->i.bits[BREAK_INSIDE_INDEX];
765 bits &= BREAK_INSIDE_MASK;
766 bits >>= BREAK_INSIDE_SHIFT;
767
768 /* 4bits: tttt : type */
769
770 return (bits & 0xf);
771}
772#undef BREAK_INSIDE_INDEX
773#undef BREAK_INSIDE_SHIFT
774#undef BREAK_INSIDE_MASK
775
776#define CAPTION_SIDE_INDEX 11
777#define CAPTION_SIDE_SHIFT 12
778#define CAPTION_SIDE_MASK 0x3000
779static inline uint8_t get_caption_side_bits(const css_computed_style *style)
780{
781 uint32_t bits = style->i.bits[CAPTION_SIDE_INDEX];
782 bits &= CAPTION_SIDE_MASK;
783 bits >>= CAPTION_SIDE_SHIFT;
784
785 /* 2bits: tt : type */
786 return (bits & 0x3);
787}
788static inline uint8_t get_caption_side(const css_computed_style *style)
789{
790 uint32_t bits = style->i.bits[CAPTION_SIDE_INDEX];
791 bits &= CAPTION_SIDE_MASK;
792 bits >>= CAPTION_SIDE_SHIFT;
793
794 /* 2bits: tt : type */
795
796 return (bits & 0x3);
797}
798#undef CAPTION_SIDE_INDEX
799#undef CAPTION_SIDE_SHIFT
800#undef CAPTION_SIDE_MASK
801
802#define CLEAR_INDEX 13
803#define CLEAR_SHIFT 1
804#define CLEAR_MASK 0xe
805static inline uint8_t get_clear_bits(const css_computed_style *style)
806{
807 uint32_t bits = style->i.bits[CLEAR_INDEX];
808 bits &= CLEAR_MASK;
809 bits >>= CLEAR_SHIFT;
810
811 /* 3bits: ttt : type */
812 return (bits & 0x7);
813}
814static inline uint8_t get_clear(const css_computed_style *style)
815{
816 uint32_t bits = style->i.bits[CLEAR_INDEX];
817 bits &= CLEAR_MASK;
818 bits >>= CLEAR_SHIFT;
819
820 /* 3bits: ttt : type */
821
822 return (bits & 0x7);
823}
824#undef CLEAR_INDEX
825#undef CLEAR_SHIFT
826#undef CLEAR_MASK
827
828#define CLIP_INDEX 2
829#define CLIP_SHIFT 6
830#define CLIP_MASK 0xffffffc0
831static inline uint8_t get_clip_bits(const css_computed_style *style)
832{
833 uint32_t bits = style->i.bits[CLIP_INDEX];
834 bits &= CLIP_MASK;
835 bits >>= CLIP_SHIFT;
836
837 /* 26bits: aaaaabbbbbcccccdddddtttttt : unit_a | unit_b | unit_c |
838 unit_d | type */
839 return (bits & 0x3f);
840}
841static inline uint8_t get_clip(
842 const css_computed_style *style,
844{
845 uint32_t bits = style->i.bits[CLIP_INDEX];
846 bits &= CLIP_MASK;
847 bits >>= CLIP_SHIFT;
848
849 /*
850 26bits: tt tttr rrrr bbbb blll llTR BLyy:
851 units: top | right | bottom | left
852 opcodes: top | right | bottom | left | type
853 */
854
855 if ((bits & 0x3) == CSS_CLIP_RECT) {
856 rect->left_auto = (bits & 0x4);
857 rect->bottom_auto = (bits & 0x8);
858 rect->right_auto = (bits & 0x10);
859 rect->top_auto = (bits & 0x20);
860
861 rect->top = style->i.clip_a;
862 rect->tunit = bits & 0x3e00000 >> 21;
863
864 rect->right = style->i.clip_b;
865 rect->runit = bits & 0x1f0000 >> 16;
866
867 rect->bottom = style->i.clip_c;
868 rect->bunit = (bits & 0xf800) >> 11;
869
870 rect->left = style->i.clip_d;
871 rect->lunit = (bits & 0x7c0) >> 6;
872 }
873
874 return (bits & 0x3);
875}
876#undef CLIP_INDEX
877#undef CLIP_SHIFT
878#undef CLIP_MASK
879
880#define COLOR_INDEX 14
881#define COLOR_SHIFT 17
882#define COLOR_MASK 0x20000
883static inline uint8_t get_color_bits(const css_computed_style *style)
884{
885 uint32_t bits = style->i.bits[COLOR_INDEX];
886 bits &= COLOR_MASK;
887 bits >>= COLOR_SHIFT;
888
889 /* 1bit: t : type */
890 return (bits & 0x1);
891}
892static inline uint8_t get_color(const css_computed_style *style, css_color
893 *color)
894{
895 uint32_t bits = style->i.bits[COLOR_INDEX];
896 bits &= COLOR_MASK;
897 bits >>= COLOR_SHIFT;
898
899 /* 1bit: t : type */
900 *color = style->i.color;
901
902 return (bits & 0x1);
903}
904#undef COLOR_INDEX
905#undef COLOR_SHIFT
906#undef COLOR_MASK
907
908#define COLUMN_COUNT_INDEX 11
909#define COLUMN_COUNT_SHIFT 14
910#define COLUMN_COUNT_MASK 0xc000
911static inline uint8_t get_column_count_bits(const css_computed_style *style)
912{
913 uint32_t bits = style->i.bits[COLUMN_COUNT_INDEX];
914 bits &= COLUMN_COUNT_MASK;
915 bits >>= COLUMN_COUNT_SHIFT;
916
917 /* 2bits: tt : type */
918 return (bits & 0x3);
919}
920static inline uint8_t get_column_count(const css_computed_style *style, int32_t
921 *integer)
922{
923 uint32_t bits = style->i.bits[COLUMN_COUNT_INDEX];
924 bits &= COLUMN_COUNT_MASK;
925 bits >>= COLUMN_COUNT_SHIFT;
926
927 /* 2bits: tt : type */
928 *integer = style->i.column_count;
929
930 return (bits & 0x3);
931}
932#undef COLUMN_COUNT_INDEX
933#undef COLUMN_COUNT_SHIFT
934#undef COLUMN_COUNT_MASK
935
936#define COLUMN_FILL_INDEX 11
937#define COLUMN_FILL_SHIFT 16
938#define COLUMN_FILL_MASK 0x30000
939static inline uint8_t get_column_fill_bits(const css_computed_style *style)
940{
941 uint32_t bits = style->i.bits[COLUMN_FILL_INDEX];
942 bits &= COLUMN_FILL_MASK;
943 bits >>= COLUMN_FILL_SHIFT;
944
945 /* 2bits: tt : type */
946 return (bits & 0x3);
947}
948static inline uint8_t get_column_fill(const css_computed_style *style)
949{
950 uint32_t bits = style->i.bits[COLUMN_FILL_INDEX];
951 bits &= COLUMN_FILL_MASK;
952 bits >>= COLUMN_FILL_SHIFT;
953
954 /* 2bits: tt : type */
955
956 return (bits & 0x3);
957}
958#undef COLUMN_FILL_INDEX
959#undef COLUMN_FILL_SHIFT
960#undef COLUMN_FILL_MASK
961
962#define COLUMN_GAP_INDEX 3
963#define COLUMN_GAP_SHIFT 18
964#define COLUMN_GAP_MASK 0x1fc0000
965static inline uint8_t get_column_gap_bits(const css_computed_style *style)
966{
967 uint32_t bits = style->i.bits[COLUMN_GAP_INDEX];
968 bits &= COLUMN_GAP_MASK;
969 bits >>= COLUMN_GAP_SHIFT;
970
971 /* 7bits: uuuuutt : unit | type */
972 return (bits & 0x3);
973}
974static inline uint8_t get_column_gap(const css_computed_style *style, css_fixed
975 *length, css_unit *unit)
976{
977 uint32_t bits = style->i.bits[COLUMN_GAP_INDEX];
978 bits &= COLUMN_GAP_MASK;
979 bits >>= COLUMN_GAP_SHIFT;
980
981 /* 7bits: uuuuutt : unit | type */
982 if ((bits & 0x3) == CSS_COLUMN_GAP_SET) {
983 *length = style->i.column_gap;
984 *unit = bits >> 2;
985 }
986
987 return (bits & 0x3);
988}
989#undef COLUMN_GAP_INDEX
990#undef COLUMN_GAP_SHIFT
991#undef COLUMN_GAP_MASK
992
993#define COLUMN_RULE_COLOR_INDEX 11
994#define COLUMN_RULE_COLOR_SHIFT 18
995#define COLUMN_RULE_COLOR_MASK 0xc0000
996static inline uint8_t get_column_rule_color_bits(const css_computed_style
997 *style)
998{
999 uint32_t bits = style->i.bits[COLUMN_RULE_COLOR_INDEX];
1000 bits &= COLUMN_RULE_COLOR_MASK;
1001 bits >>= COLUMN_RULE_COLOR_SHIFT;
1002
1003 /* 2bits: tt : type */
1004 return (bits & 0x3);
1005}
1006static inline uint8_t get_column_rule_color(const css_computed_style *style,
1008{
1009 uint32_t bits = style->i.bits[COLUMN_RULE_COLOR_INDEX];
1010 bits &= COLUMN_RULE_COLOR_MASK;
1011 bits >>= COLUMN_RULE_COLOR_SHIFT;
1012
1013 /* 2bits: tt : type */
1014 *color = style->i.column_rule_color;
1015
1016 return (bits & 0x3);
1017}
1018#undef COLUMN_RULE_COLOR_INDEX
1019#undef COLUMN_RULE_COLOR_SHIFT
1020#undef COLUMN_RULE_COLOR_MASK
1021
1022#define COLUMN_RULE_STYLE_INDEX 7
1023#define COLUMN_RULE_STYLE_SHIFT 0
1024#define COLUMN_RULE_STYLE_MASK 0xf
1025static inline uint8_t get_column_rule_style_bits(const css_computed_style
1026 *style)
1027{
1028 uint32_t bits = style->i.bits[COLUMN_RULE_STYLE_INDEX];
1029 bits &= COLUMN_RULE_STYLE_MASK;
1030 bits >>= COLUMN_RULE_STYLE_SHIFT;
1031
1032 /* 4bits: tttt : type */
1033 return (bits & 0xf);
1034}
1035static inline uint8_t get_column_rule_style(const css_computed_style *style)
1036{
1037 uint32_t bits = style->i.bits[COLUMN_RULE_STYLE_INDEX];
1038 bits &= COLUMN_RULE_STYLE_MASK;
1039 bits >>= COLUMN_RULE_STYLE_SHIFT;
1040
1041 /* 4bits: tttt : type */
1042
1043 return (bits & 0xf);
1044}
1045#undef COLUMN_RULE_STYLE_INDEX
1046#undef COLUMN_RULE_STYLE_SHIFT
1047#undef COLUMN_RULE_STYLE_MASK
1048
1049#define COLUMN_RULE_WIDTH_INDEX 1
1050#define COLUMN_RULE_WIDTH_SHIFT 7
1051#define COLUMN_RULE_WIDTH_MASK 0x7f80
1052static inline uint8_t get_column_rule_width_bits(const css_computed_style
1053 *style)
1054{
1055 uint32_t bits = style->i.bits[COLUMN_RULE_WIDTH_INDEX];
1056 bits &= COLUMN_RULE_WIDTH_MASK;
1057 bits >>= COLUMN_RULE_WIDTH_SHIFT;
1058
1059 /* 8bits: uuuuuttt : unit | type */
1060 return (bits & 0x7);
1061}
1062static inline uint8_t get_column_rule_width(const css_computed_style *style,
1063 css_fixed *length, css_unit *unit)
1064{
1065 uint32_t bits = style->i.bits[COLUMN_RULE_WIDTH_INDEX];
1066 bits &= COLUMN_RULE_WIDTH_MASK;
1067 bits >>= COLUMN_RULE_WIDTH_SHIFT;
1068
1069 /* 8bits: uuuuuttt : unit | type */
1070 if ((bits & 0x7) == CSS_COLUMN_RULE_WIDTH_WIDTH) {
1071 *length = style->i.column_rule_width;
1072 *unit = bits >> 3;
1073 }
1074
1075 return (bits & 0x7);
1076}
1077#undef COLUMN_RULE_WIDTH_INDEX
1078#undef COLUMN_RULE_WIDTH_SHIFT
1079#undef COLUMN_RULE_WIDTH_MASK
1080
1081#define COLUMN_SPAN_INDEX 11
1082#define COLUMN_SPAN_SHIFT 20
1083#define COLUMN_SPAN_MASK 0x300000
1084static inline uint8_t get_column_span_bits(const css_computed_style *style)
1085{
1086 uint32_t bits = style->i.bits[COLUMN_SPAN_INDEX];
1087 bits &= COLUMN_SPAN_MASK;
1088 bits >>= COLUMN_SPAN_SHIFT;
1089
1090 /* 2bits: tt : type */
1091 return (bits & 0x3);
1092}
1093static inline uint8_t get_column_span(const css_computed_style *style)
1094{
1095 uint32_t bits = style->i.bits[COLUMN_SPAN_INDEX];
1096 bits &= COLUMN_SPAN_MASK;
1097 bits >>= COLUMN_SPAN_SHIFT;
1098
1099 /* 2bits: tt : type */
1100
1101 return (bits & 0x3);
1102}
1103#undef COLUMN_SPAN_INDEX
1104#undef COLUMN_SPAN_SHIFT
1105#undef COLUMN_SPAN_MASK
1106
1107#define COLUMN_WIDTH_INDEX 3
1108#define COLUMN_WIDTH_SHIFT 25
1109#define COLUMN_WIDTH_MASK 0xfe000000
1110static inline uint8_t get_column_width_bits(const css_computed_style *style)
1111{
1112 uint32_t bits = style->i.bits[COLUMN_WIDTH_INDEX];
1113 bits &= COLUMN_WIDTH_MASK;
1114 bits >>= COLUMN_WIDTH_SHIFT;
1115
1116 /* 7bits: uuuuutt : unit | type */
1117 return (bits & 0x3);
1118}
1119static inline uint8_t get_column_width(const css_computed_style *style,
1120 css_fixed *length, css_unit *unit)
1121{
1122 uint32_t bits = style->i.bits[COLUMN_WIDTH_INDEX];
1123 bits &= COLUMN_WIDTH_MASK;
1124 bits >>= COLUMN_WIDTH_SHIFT;
1125
1126 /* 7bits: uuuuutt : unit | type */
1127 if ((bits & 0x3) == CSS_COLUMN_WIDTH_SET) {
1128 *length = style->i.column_width;
1129 *unit = bits >> 2;
1130 }
1131
1132 return (bits & 0x3);
1133}
1134#undef COLUMN_WIDTH_INDEX
1135#undef COLUMN_WIDTH_SHIFT
1136#undef COLUMN_WIDTH_MASK
1137
1138#define CONTENT_INDEX 11
1139#define CONTENT_SHIFT 22
1140#define CONTENT_MASK 0xc00000
1141static inline uint8_t get_content_bits(const css_computed_style *style)
1142{
1143 uint32_t bits = style->i.bits[CONTENT_INDEX];
1144 bits &= CONTENT_MASK;
1145 bits >>= CONTENT_SHIFT;
1146
1147 /* 2bits: tt : type */
1148 return (bits & 0x3);
1149}
1150static inline uint8_t get_content(const css_computed_style *style, const
1151 css_computed_content_item **content_item)
1152{
1153 uint32_t bits = style->i.bits[CONTENT_INDEX];
1154 bits &= CONTENT_MASK;
1155 bits >>= CONTENT_SHIFT;
1156
1157 /* 2bits: tt : type */
1158 if ((bits & 0x3) == CSS_CONTENT_SET) {
1159 *content_item = style->content;
1160 }
1161
1162 return (bits & 0x3);
1163}
1164#undef CONTENT_INDEX
1165#undef CONTENT_SHIFT
1166#undef CONTENT_MASK
1167
1168#define COUNTER_INCREMENT_INDEX 14
1169#define COUNTER_INCREMENT_SHIFT 18
1170#define COUNTER_INCREMENT_MASK 0x40000
1171static inline uint8_t get_counter_increment_bits(const css_computed_style
1172 *style)
1173{
1174 uint32_t bits = style->i.bits[COUNTER_INCREMENT_INDEX];
1175 bits &= COUNTER_INCREMENT_MASK;
1176 bits >>= COUNTER_INCREMENT_SHIFT;
1177
1178 /* 1bit: t : type */
1179 return (bits & 0x1);
1180}
1181static inline uint8_t get_counter_increment(const css_computed_style *style,
1182 const css_computed_counter **counter_arr)
1183{
1184 uint32_t bits = style->i.bits[COUNTER_INCREMENT_INDEX];
1185 bits &= COUNTER_INCREMENT_MASK;
1186 bits >>= COUNTER_INCREMENT_SHIFT;
1187
1188 /* 1bit: t : type */
1189 *counter_arr = style->counter_increment;
1190
1191 return (bits & 0x1);
1192}
1193#undef COUNTER_INCREMENT_INDEX
1194#undef COUNTER_INCREMENT_SHIFT
1195#undef COUNTER_INCREMENT_MASK
1196
1197#define COUNTER_RESET_INDEX 14
1198#define COUNTER_RESET_SHIFT 19
1199#define COUNTER_RESET_MASK 0x80000
1200static inline uint8_t get_counter_reset_bits(const css_computed_style *style)
1201{
1202 uint32_t bits = style->i.bits[COUNTER_RESET_INDEX];
1203 bits &= COUNTER_RESET_MASK;
1204 bits >>= COUNTER_RESET_SHIFT;
1205
1206 /* 1bit: t : type */
1207 return (bits & 0x1);
1208}
1209static inline uint8_t get_counter_reset(const css_computed_style *style, const
1210 css_computed_counter **counter_arr)
1211{
1212 uint32_t bits = style->i.bits[COUNTER_RESET_INDEX];
1213 bits &= COUNTER_RESET_MASK;
1214 bits >>= COUNTER_RESET_SHIFT;
1215
1216 /* 1bit: t : type */
1217 *counter_arr = style->counter_reset;
1218
1219 return (bits & 0x1);
1220}
1221#undef COUNTER_RESET_INDEX
1222#undef COUNTER_RESET_SHIFT
1223#undef COUNTER_RESET_MASK
1224
1225#define CURSOR_INDEX 9
1226#define CURSOR_SHIFT 27
1227#define CURSOR_MASK 0xf8000000
1228static inline uint8_t get_cursor_bits(const css_computed_style *style)
1229{
1230 uint32_t bits = style->i.bits[CURSOR_INDEX];
1231 bits &= CURSOR_MASK;
1232 bits >>= CURSOR_SHIFT;
1233
1234 /* 5bits: ttttt : type */
1235 return (bits & 0x1f);
1236}
1237static inline uint8_t get_cursor(const css_computed_style *style, lwc_string
1238 ***string_arr)
1239{
1240 uint32_t bits = style->i.bits[CURSOR_INDEX];
1241 bits &= CURSOR_MASK;
1242 bits >>= CURSOR_SHIFT;
1243
1244 /* 5bits: ttttt : type */
1245 *string_arr = style->cursor;
1246
1247 return (bits & 0x1f);
1248}
1249#undef CURSOR_INDEX
1250#undef CURSOR_SHIFT
1251#undef CURSOR_MASK
1252
1253#define DIRECTION_INDEX 11
1254#define DIRECTION_SHIFT 24
1255#define DIRECTION_MASK 0x3000000
1256static inline uint8_t get_direction_bits(const css_computed_style *style)
1257{
1258 uint32_t bits = style->i.bits[DIRECTION_INDEX];
1259 bits &= DIRECTION_MASK;
1260 bits >>= DIRECTION_SHIFT;
1261
1262 /* 2bits: tt : type */
1263 return (bits & 0x3);
1264}
1265static inline uint8_t get_direction(const css_computed_style *style)
1266{
1267 uint32_t bits = style->i.bits[DIRECTION_INDEX];
1268 bits &= DIRECTION_MASK;
1269 bits >>= DIRECTION_SHIFT;
1270
1271 /* 2bits: tt : type */
1272
1273 return (bits & 0x3);
1274}
1275#undef DIRECTION_INDEX
1276#undef DIRECTION_SHIFT
1277#undef DIRECTION_MASK
1278
1279#define DISPLAY_INDEX 8
1280#define DISPLAY_SHIFT 3
1281#define DISPLAY_MASK 0xf8
1282static inline uint8_t get_display_bits(const css_computed_style *style)
1283{
1284 uint32_t bits = style->i.bits[DISPLAY_INDEX];
1285 bits &= DISPLAY_MASK;
1286 bits >>= DISPLAY_SHIFT;
1287
1288 /* 5bits: ttttt : type */
1289 return (bits & 0x1f);
1290}
1291static inline uint8_t get_display(const css_computed_style *style)
1292{
1293 uint32_t bits = style->i.bits[DISPLAY_INDEX];
1294 bits &= DISPLAY_MASK;
1295 bits >>= DISPLAY_SHIFT;
1296
1297 /* 5bits: ttttt : type */
1298
1299 return (bits & 0x1f);
1300}
1301#undef DISPLAY_INDEX
1302#undef DISPLAY_SHIFT
1303#undef DISPLAY_MASK
1304
1305#define EMPTY_CELLS_INDEX 11
1306#define EMPTY_CELLS_SHIFT 26
1307#define EMPTY_CELLS_MASK 0xc000000
1308static inline uint8_t get_empty_cells_bits(const css_computed_style *style)
1309{
1310 uint32_t bits = style->i.bits[EMPTY_CELLS_INDEX];
1311 bits &= EMPTY_CELLS_MASK;
1312 bits >>= EMPTY_CELLS_SHIFT;
1313
1314 /* 2bits: tt : type */
1315 return (bits & 0x3);
1316}
1317static inline uint8_t get_empty_cells(const css_computed_style *style)
1318{
1319 uint32_t bits = style->i.bits[EMPTY_CELLS_INDEX];
1320 bits &= EMPTY_CELLS_MASK;
1321 bits >>= EMPTY_CELLS_SHIFT;
1322
1323 /* 2bits: tt : type */
1324
1325 return (bits & 0x3);
1326}
1327#undef EMPTY_CELLS_INDEX
1328#undef EMPTY_CELLS_SHIFT
1329#undef EMPTY_CELLS_MASK
1330
1331#define FILL_OPACITY_INDEX 14
1332#define FILL_OPACITY_SHIFT 20
1333#define FILL_OPACITY_MASK 0x100000
1334static inline uint8_t get_fill_opacity_bits(const css_computed_style *style)
1335{
1336 uint32_t bits = style->i.bits[FILL_OPACITY_INDEX];
1337 bits &= FILL_OPACITY_MASK;
1338 bits >>= FILL_OPACITY_SHIFT;
1339
1340 /* 1bit: t : type */
1341 return (bits & 0x1);
1342}
1343static inline uint8_t get_fill_opacity(const css_computed_style *style,
1344 css_fixed *fixed)
1345{
1346 uint32_t bits = style->i.bits[FILL_OPACITY_INDEX];
1347 bits &= FILL_OPACITY_MASK;
1348 bits >>= FILL_OPACITY_SHIFT;
1349
1350 /* 1bit: t : type */
1351 if ((bits & 0x1) == CSS_FILL_OPACITY_SET) {
1352 *fixed = style->i.fill_opacity;
1353 }
1354
1355 return (bits & 0x1);
1356}
1357#undef FILL_OPACITY_INDEX
1358#undef FILL_OPACITY_SHIFT
1359#undef FILL_OPACITY_MASK
1360
1361#define FLEX_BASIS_INDEX 7
1362#define FLEX_BASIS_SHIFT 4
1363#define FLEX_BASIS_MASK 0x7f0
1364static inline uint8_t get_flex_basis_bits(const css_computed_style *style)
1365{
1366 uint32_t bits = style->i.bits[FLEX_BASIS_INDEX];
1367 bits &= FLEX_BASIS_MASK;
1368 bits >>= FLEX_BASIS_SHIFT;
1369
1370 /* 7bits: uuuuutt : unit | type */
1371 return (bits & 0x3);
1372}
1373static inline uint8_t get_flex_basis(const css_computed_style *style, css_fixed
1374 *length, css_unit *unit)
1375{
1376 uint32_t bits = style->i.bits[FLEX_BASIS_INDEX];
1377 bits &= FLEX_BASIS_MASK;
1378 bits >>= FLEX_BASIS_SHIFT;
1379
1380 /* 7bits: uuuuutt : unit | type */
1381 if ((bits & 0x3) == CSS_FLEX_BASIS_SET) {
1382 *length = style->i.flex_basis;
1383 *unit = bits >> 2;
1384 }
1385
1386 return (bits & 0x3);
1387}
1388#undef FLEX_BASIS_INDEX
1389#undef FLEX_BASIS_SHIFT
1390#undef FLEX_BASIS_MASK
1391
1392#define FLEX_DIRECTION_INDEX 13
1393#define FLEX_DIRECTION_SHIFT 4
1394#define FLEX_DIRECTION_MASK 0x70
1395static inline uint8_t get_flex_direction_bits(const css_computed_style *style)
1396{
1397 uint32_t bits = style->i.bits[FLEX_DIRECTION_INDEX];
1398 bits &= FLEX_DIRECTION_MASK;
1399 bits >>= FLEX_DIRECTION_SHIFT;
1400
1401 /* 3bits: ttt : type */
1402 return (bits & 0x7);
1403}
1404static inline uint8_t get_flex_direction(const css_computed_style *style)
1405{
1406 uint32_t bits = style->i.bits[FLEX_DIRECTION_INDEX];
1407 bits &= FLEX_DIRECTION_MASK;
1408 bits >>= FLEX_DIRECTION_SHIFT;
1409
1410 /* 3bits: ttt : type */
1411
1412 return (bits & 0x7);
1413}
1414#undef FLEX_DIRECTION_INDEX
1415#undef FLEX_DIRECTION_SHIFT
1416#undef FLEX_DIRECTION_MASK
1417
1418#define FLEX_GROW_INDEX 14
1419#define FLEX_GROW_SHIFT 21
1420#define FLEX_GROW_MASK 0x200000
1421static inline uint8_t get_flex_grow_bits(const css_computed_style *style)
1422{
1423 uint32_t bits = style->i.bits[FLEX_GROW_INDEX];
1424 bits &= FLEX_GROW_MASK;
1425 bits >>= FLEX_GROW_SHIFT;
1426
1427 /* 1bit: t : type */
1428 return (bits & 0x1);
1429}
1430static inline uint8_t get_flex_grow(const css_computed_style *style, css_fixed
1431 *fixed)
1432{
1433 uint32_t bits = style->i.bits[FLEX_GROW_INDEX];
1434 bits &= FLEX_GROW_MASK;
1435 bits >>= FLEX_GROW_SHIFT;
1436
1437 /* 1bit: t : type */
1438 if ((bits & 0x1) == CSS_FLEX_GROW_SET) {
1439 *fixed = style->i.flex_grow;
1440 }
1441
1442 return (bits & 0x1);
1443}
1444#undef FLEX_GROW_INDEX
1445#undef FLEX_GROW_SHIFT
1446#undef FLEX_GROW_MASK
1447
1448#define FLEX_SHRINK_INDEX 14
1449#define FLEX_SHRINK_SHIFT 22
1450#define FLEX_SHRINK_MASK 0x400000
1451static inline uint8_t get_flex_shrink_bits(const css_computed_style *style)
1452{
1453 uint32_t bits = style->i.bits[FLEX_SHRINK_INDEX];
1454 bits &= FLEX_SHRINK_MASK;
1455 bits >>= FLEX_SHRINK_SHIFT;
1456
1457 /* 1bit: t : type */
1458 return (bits & 0x1);
1459}
1460static inline uint8_t get_flex_shrink(const css_computed_style *style,
1461 css_fixed *fixed)
1462{
1463 uint32_t bits = style->i.bits[FLEX_SHRINK_INDEX];
1464 bits &= FLEX_SHRINK_MASK;
1465 bits >>= FLEX_SHRINK_SHIFT;
1466
1467 /* 1bit: t : type */
1468 if ((bits & 0x1) == CSS_FLEX_SHRINK_SET) {
1469 *fixed = style->i.flex_shrink;
1470 }
1471
1472 return (bits & 0x1);
1473}
1474#undef FLEX_SHRINK_INDEX
1475#undef FLEX_SHRINK_SHIFT
1476#undef FLEX_SHRINK_MASK
1477
1478#define FLEX_WRAP_INDEX 11
1479#define FLEX_WRAP_SHIFT 28
1480#define FLEX_WRAP_MASK 0x30000000
1481static inline uint8_t get_flex_wrap_bits(const css_computed_style *style)
1482{
1483 uint32_t bits = style->i.bits[FLEX_WRAP_INDEX];
1484 bits &= FLEX_WRAP_MASK;
1485 bits >>= FLEX_WRAP_SHIFT;
1486
1487 /* 2bits: tt : type */
1488 return (bits & 0x3);
1489}
1490static inline uint8_t get_flex_wrap(const css_computed_style *style)
1491{
1492 uint32_t bits = style->i.bits[FLEX_WRAP_INDEX];
1493 bits &= FLEX_WRAP_MASK;
1494 bits >>= FLEX_WRAP_SHIFT;
1495
1496 /* 2bits: tt : type */
1497
1498 return (bits & 0x3);
1499}
1500#undef FLEX_WRAP_INDEX
1501#undef FLEX_WRAP_SHIFT
1502#undef FLEX_WRAP_MASK
1503
1504#define FLOAT_INDEX 11
1505#define FLOAT_SHIFT 30
1506#define FLOAT_MASK 0xc0000000
1507static inline uint8_t get_float_bits(const css_computed_style *style)
1508{
1509 uint32_t bits = style->i.bits[FLOAT_INDEX];
1510 bits &= FLOAT_MASK;
1511 bits >>= FLOAT_SHIFT;
1512
1513 /* 2bits: tt : type */
1514 return (bits & 0x3);
1515}
1516static inline uint8_t get_float(const css_computed_style *style)
1517{
1518 uint32_t bits = style->i.bits[FLOAT_INDEX];
1519 bits &= FLOAT_MASK;
1520 bits >>= FLOAT_SHIFT;
1521
1522 /* 2bits: tt : type */
1523
1524 return (bits & 0x3);
1525}
1526#undef FLOAT_INDEX
1527#undef FLOAT_SHIFT
1528#undef FLOAT_MASK
1529
1530#define FONT_FAMILY_INDEX 13
1531#define FONT_FAMILY_SHIFT 7
1532#define FONT_FAMILY_MASK 0x380
1533static inline uint8_t get_font_family_bits(const css_computed_style *style)
1534{
1535 uint32_t bits = style->i.bits[FONT_FAMILY_INDEX];
1536 bits &= FONT_FAMILY_MASK;
1537 bits >>= FONT_FAMILY_SHIFT;
1538
1539 /* 3bits: ttt : type */
1540 return (bits & 0x7);
1541}
1542static inline uint8_t get_font_family(const css_computed_style *style,
1543 lwc_string ***string_arr)
1544{
1545 uint32_t bits = style->i.bits[FONT_FAMILY_INDEX];
1546 bits &= FONT_FAMILY_MASK;
1547 bits >>= FONT_FAMILY_SHIFT;
1548
1549 /* 3bits: ttt : type */
1550 *string_arr = style->font_family;
1551
1552 return (bits & 0x7);
1553}
1554#undef FONT_FAMILY_INDEX
1555#undef FONT_FAMILY_SHIFT
1556#undef FONT_FAMILY_MASK
1557
1558#define FONT_SIZE_INDEX 1
1559#define FONT_SIZE_SHIFT 23
1560#define FONT_SIZE_MASK 0xff800000
1561static inline uint8_t get_font_size_bits(const css_computed_style *style)
1562{
1563 uint32_t bits = style->i.bits[FONT_SIZE_INDEX];
1564 bits &= FONT_SIZE_MASK;
1565 bits >>= FONT_SIZE_SHIFT;
1566
1567 /* 9bits: uuuuutttt : unit | type */
1568 return (bits & 0xf);
1569}
1570static inline uint8_t get_font_size(const css_computed_style *style, css_fixed
1571 *length, css_unit *unit)
1572{
1573 uint32_t bits = style->i.bits[FONT_SIZE_INDEX];
1574 bits &= FONT_SIZE_MASK;
1575 bits >>= FONT_SIZE_SHIFT;
1576
1577 /* 9bits: uuuuutttt : unit | type */
1578 if ((bits & 0xf) == CSS_FONT_SIZE_DIMENSION) {
1579 *length = style->i.font_size;
1580 *unit = bits >> 4;
1581 }
1582
1583 return (bits & 0xf);
1584}
1585#undef FONT_SIZE_INDEX
1586#undef FONT_SIZE_SHIFT
1587#undef FONT_SIZE_MASK
1588
1589#define FONT_STYLE_INDEX 10
1590#define FONT_STYLE_SHIFT 0
1591#define FONT_STYLE_MASK 0x3
1592static inline uint8_t get_font_style_bits(const css_computed_style *style)
1593{
1594 uint32_t bits = style->i.bits[FONT_STYLE_INDEX];
1595 bits &= FONT_STYLE_MASK;
1596 bits >>= FONT_STYLE_SHIFT;
1597
1598 /* 2bits: tt : type */
1599 return (bits & 0x3);
1600}
1601static inline uint8_t get_font_style(const css_computed_style *style)
1602{
1603 uint32_t bits = style->i.bits[FONT_STYLE_INDEX];
1604 bits &= FONT_STYLE_MASK;
1605 bits >>= FONT_STYLE_SHIFT;
1606
1607 /* 2bits: tt : type */
1608
1609 return (bits & 0x3);
1610}
1611#undef FONT_STYLE_INDEX
1612#undef FONT_STYLE_SHIFT
1613#undef FONT_STYLE_MASK
1614
1615#define FONT_VARIANT_INDEX 10
1616#define FONT_VARIANT_SHIFT 2
1617#define FONT_VARIANT_MASK 0xc
1618static inline uint8_t get_font_variant_bits(const css_computed_style *style)
1619{
1620 uint32_t bits = style->i.bits[FONT_VARIANT_INDEX];
1621 bits &= FONT_VARIANT_MASK;
1622 bits >>= FONT_VARIANT_SHIFT;
1623
1624 /* 2bits: tt : type */
1625 return (bits & 0x3);
1626}
1627static inline uint8_t get_font_variant(const css_computed_style *style)
1628{
1629 uint32_t bits = style->i.bits[FONT_VARIANT_INDEX];
1630 bits &= FONT_VARIANT_MASK;
1631 bits >>= FONT_VARIANT_SHIFT;
1632
1633 /* 2bits: tt : type */
1634
1635 return (bits & 0x3);
1636}
1637#undef FONT_VARIANT_INDEX
1638#undef FONT_VARIANT_SHIFT
1639#undef FONT_VARIANT_MASK
1640
1641#define FONT_WEIGHT_INDEX 6
1642#define FONT_WEIGHT_SHIFT 0
1643#define FONT_WEIGHT_MASK 0xf
1644static inline uint8_t get_font_weight_bits(const css_computed_style *style)
1645{
1646 uint32_t bits = style->i.bits[FONT_WEIGHT_INDEX];
1647 bits &= FONT_WEIGHT_MASK;
1648 bits >>= FONT_WEIGHT_SHIFT;
1649
1650 /* 4bits: tttt : type */
1651 return (bits & 0xf);
1652}
1653static inline uint8_t get_font_weight(const css_computed_style *style)
1654{
1655 uint32_t bits = style->i.bits[FONT_WEIGHT_INDEX];
1656 bits &= FONT_WEIGHT_MASK;
1657 bits >>= FONT_WEIGHT_SHIFT;
1658
1659 /* 4bits: tttt : type */
1660
1661 return (bits & 0xf);
1662}
1663#undef FONT_WEIGHT_INDEX
1664#undef FONT_WEIGHT_SHIFT
1665#undef FONT_WEIGHT_MASK
1666
1667#define HEIGHT_INDEX 7
1668#define HEIGHT_SHIFT 11
1669#define HEIGHT_MASK 0x3f800
1670static inline uint8_t get_height_bits(const css_computed_style *style)
1671{
1672 uint32_t bits = style->i.bits[HEIGHT_INDEX];
1673 bits &= HEIGHT_MASK;
1674 bits >>= HEIGHT_SHIFT;
1675
1676 /* 7bits: uuuuutt : unit | type */
1677 return (bits & 0x3);
1678}
1679static inline uint8_t get_height(const css_computed_style *style, css_fixed
1680 *length, css_unit *unit)
1681{
1682 uint32_t bits = style->i.bits[HEIGHT_INDEX];
1683 bits &= HEIGHT_MASK;
1684 bits >>= HEIGHT_SHIFT;
1685
1686 /* 7bits: uuuuutt : unit | type */
1687 if ((bits & 0x3) == CSS_HEIGHT_SET) {
1688 *length = style->i.height;
1689 *unit = bits >> 2;
1690 }
1691
1692 return (bits & 0x3);
1693}
1694#undef HEIGHT_INDEX
1695#undef HEIGHT_SHIFT
1696#undef HEIGHT_MASK
1697
1698#define JUSTIFY_CONTENT_INDEX 13
1699#define JUSTIFY_CONTENT_SHIFT 10
1700#define JUSTIFY_CONTENT_MASK 0x1c00
1701static inline uint8_t get_justify_content_bits(const css_computed_style *style)
1702{
1703 uint32_t bits = style->i.bits[JUSTIFY_CONTENT_INDEX];
1704 bits &= JUSTIFY_CONTENT_MASK;
1705 bits >>= JUSTIFY_CONTENT_SHIFT;
1706
1707 /* 3bits: ttt : type */
1708 return (bits & 0x7);
1709}
1710static inline uint8_t get_justify_content(const css_computed_style *style)
1711{
1712 uint32_t bits = style->i.bits[JUSTIFY_CONTENT_INDEX];
1713 bits &= JUSTIFY_CONTENT_MASK;
1714 bits >>= JUSTIFY_CONTENT_SHIFT;
1715
1716 /* 3bits: ttt : type */
1717
1718 return (bits & 0x7);
1719}
1720#undef JUSTIFY_CONTENT_INDEX
1721#undef JUSTIFY_CONTENT_SHIFT
1722#undef JUSTIFY_CONTENT_MASK
1723
1724#define LEFT_INDEX 7
1725#define LEFT_SHIFT 18
1726#define LEFT_MASK 0x1fc0000
1727static inline uint8_t get_left_bits(const css_computed_style *style)
1728{
1729 uint32_t bits = style->i.bits[LEFT_INDEX];
1730 bits &= LEFT_MASK;
1731 bits >>= LEFT_SHIFT;
1732
1733 /* 7bits: uuuuutt : unit | type */
1734 return (bits & 0x3);
1735}
1736static inline uint8_t get_left(const css_computed_style *style, css_fixed
1737 *length, css_unit *unit)
1738{
1739 uint32_t bits = style->i.bits[LEFT_INDEX];
1740 bits &= LEFT_MASK;
1741 bits >>= LEFT_SHIFT;
1742
1743 /* 7bits: uuuuutt : unit | type */
1744 if ((bits & 0x3) == CSS_LEFT_SET) {
1745 *length = style->i.left;
1746 *unit = bits >> 2;
1747 }
1748
1749 return (bits & 0x3);
1750}
1751#undef LEFT_INDEX
1752#undef LEFT_SHIFT
1753#undef LEFT_MASK
1754
1755#define LETTER_SPACING_INDEX 7
1756#define LETTER_SPACING_SHIFT 25
1757#define LETTER_SPACING_MASK 0xfe000000
1758static inline uint8_t get_letter_spacing_bits(const css_computed_style *style)
1759{
1760 uint32_t bits = style->i.bits[LETTER_SPACING_INDEX];
1761 bits &= LETTER_SPACING_MASK;
1762 bits >>= LETTER_SPACING_SHIFT;
1763
1764 /* 7bits: uuuuutt : unit | type */
1765 return (bits & 0x3);
1766}
1767static inline uint8_t get_letter_spacing(const css_computed_style *style,
1768 css_fixed *length, css_unit *unit)
1769{
1770 uint32_t bits = style->i.bits[LETTER_SPACING_INDEX];
1771 bits &= LETTER_SPACING_MASK;
1772 bits >>= LETTER_SPACING_SHIFT;
1773
1774 /* 7bits: uuuuutt : unit | type */
1775 if ((bits & 0x3) == CSS_LETTER_SPACING_SET) {
1776 *length = style->i.letter_spacing;
1777 *unit = bits >> 2;
1778 }
1779
1780 return (bits & 0x3);
1781}
1782#undef LETTER_SPACING_INDEX
1783#undef LETTER_SPACING_SHIFT
1784#undef LETTER_SPACING_MASK
1785
1786#define LINE_HEIGHT_INDEX 6
1787#define LINE_HEIGHT_SHIFT 4
1788#define LINE_HEIGHT_MASK 0x7f0
1789static inline uint8_t get_line_height_bits(const css_computed_style *style)
1790{
1791 uint32_t bits = style->i.bits[LINE_HEIGHT_INDEX];
1792 bits &= LINE_HEIGHT_MASK;
1793 bits >>= LINE_HEIGHT_SHIFT;
1794
1795 /* 7bits: uuuuutt : unit | type */
1796 return (bits & 0x3);
1797}
1798static inline uint8_t get_line_height(
1799 const css_computed_style *style,
1800 css_fixed *length, css_unit *unit)
1801{
1802 uint32_t bits = style->i.bits[LINE_HEIGHT_INDEX];
1803 bits &= LINE_HEIGHT_MASK;
1804 bits >>= LINE_HEIGHT_SHIFT;
1805
1806 /* 7bits: uuuuutt : units | type */
1807 if ((bits & 0x3) == CSS_LINE_HEIGHT_NUMBER ||
1808 (bits & 0x3) == CSS_LINE_HEIGHT_DIMENSION) {
1809 *length = style->i.line_height;
1810 }
1811
1812 if ((bits & 0x3) == CSS_LINE_HEIGHT_DIMENSION) {
1813 *unit = bits >> 2;
1814 }
1815
1816 return (bits & 0x3);
1817}
1818#undef LINE_HEIGHT_INDEX
1819#undef LINE_HEIGHT_SHIFT
1820#undef LINE_HEIGHT_MASK
1821
1822#define LIST_STYLE_IMAGE_INDEX 14
1823#define LIST_STYLE_IMAGE_SHIFT 23
1824#define LIST_STYLE_IMAGE_MASK 0x800000
1825static inline uint8_t get_list_style_image_bits(const css_computed_style *style)
1826{
1827 uint32_t bits = style->i.bits[LIST_STYLE_IMAGE_INDEX];
1828 bits &= LIST_STYLE_IMAGE_MASK;
1829 bits >>= LIST_STYLE_IMAGE_SHIFT;
1830
1831 /* 1bit: t : type */
1832 return (bits & 0x1);
1833}
1834static inline uint8_t get_list_style_image(const css_computed_style *style,
1835 lwc_string **string)
1836{
1837 uint32_t bits = style->i.bits[LIST_STYLE_IMAGE_INDEX];
1838 bits &= LIST_STYLE_IMAGE_MASK;
1839 bits >>= LIST_STYLE_IMAGE_SHIFT;
1840
1841 /* 1bit: t : type */
1842 *string = style->i.list_style_image;
1843
1844 return (bits & 0x1);
1845}
1846#undef LIST_STYLE_IMAGE_INDEX
1847#undef LIST_STYLE_IMAGE_SHIFT
1848#undef LIST_STYLE_IMAGE_MASK
1849
1850#define LIST_STYLE_POSITION_INDEX 10
1851#define LIST_STYLE_POSITION_SHIFT 4
1852#define LIST_STYLE_POSITION_MASK 0x30
1853static inline uint8_t get_list_style_position_bits(const css_computed_style
1854 *style)
1855{
1859
1860 /* 2bits: tt : type */
1861 return (bits & 0x3);
1862}
1863static inline uint8_t get_list_style_position(const css_computed_style *style)
1864{
1868
1869 /* 2bits: tt : type */
1870
1871 return (bits & 0x3);
1872}
1873#undef LIST_STYLE_POSITION_INDEX
1874#undef LIST_STYLE_POSITION_SHIFT
1875#undef LIST_STYLE_POSITION_MASK
1876
1877#define LIST_STYLE_TYPE_INDEX 8
1878#define LIST_STYLE_TYPE_SHIFT 8
1879#define LIST_STYLE_TYPE_MASK 0x3f00
1880static inline uint8_t get_list_style_type_bits(const css_computed_style *style)
1881{
1882 uint32_t bits = style->i.bits[LIST_STYLE_TYPE_INDEX];
1883 bits &= LIST_STYLE_TYPE_MASK;
1884 bits >>= LIST_STYLE_TYPE_SHIFT;
1885
1886 /* 6bits: tttttt : type */
1887 return (bits & 0x3f);
1888}
1889static inline uint8_t get_list_style_type(const css_computed_style *style)
1890{
1891 uint32_t bits = style->i.bits[LIST_STYLE_TYPE_INDEX];
1892 bits &= LIST_STYLE_TYPE_MASK;
1893 bits >>= LIST_STYLE_TYPE_SHIFT;
1894
1895 /* 6bits: tttttt : type */
1896
1897 return (bits & 0x3f);
1898}
1899#undef LIST_STYLE_TYPE_INDEX
1900#undef LIST_STYLE_TYPE_SHIFT
1901#undef LIST_STYLE_TYPE_MASK
1902
1903#define MARGIN_BOTTOM_INDEX 6
1904#define MARGIN_BOTTOM_SHIFT 11
1905#define MARGIN_BOTTOM_MASK 0x3f800
1906static inline uint8_t get_margin_bottom_bits(const css_computed_style *style)
1907{
1908 uint32_t bits = style->i.bits[MARGIN_BOTTOM_INDEX];
1909 bits &= MARGIN_BOTTOM_MASK;
1910 bits >>= MARGIN_BOTTOM_SHIFT;
1911
1912 /* 7bits: uuuuutt : unit | type */
1913 return (bits & 0x3);
1914}
1915static inline uint8_t get_margin_bottom(const css_computed_style *style,
1916 css_fixed *length, css_unit *unit)
1917{
1918 uint32_t bits = style->i.bits[MARGIN_BOTTOM_INDEX];
1919 bits &= MARGIN_BOTTOM_MASK;
1920 bits >>= MARGIN_BOTTOM_SHIFT;
1921
1922 /* 7bits: uuuuutt : unit | type */
1923 if ((bits & 0x3) == CSS_MARGIN_SET) {
1924 *length = style->i.margin_bottom;
1925 *unit = bits >> 2;
1926 }
1927
1928 return (bits & 0x3);
1929}
1930#undef MARGIN_BOTTOM_INDEX
1931#undef MARGIN_BOTTOM_SHIFT
1932#undef MARGIN_BOTTOM_MASK
1933
1934#define MARGIN_LEFT_INDEX 6
1935#define MARGIN_LEFT_SHIFT 18
1936#define MARGIN_LEFT_MASK 0x1fc0000
1937static inline uint8_t get_margin_left_bits(const css_computed_style *style)
1938{
1939 uint32_t bits = style->i.bits[MARGIN_LEFT_INDEX];
1940 bits &= MARGIN_LEFT_MASK;
1941 bits >>= MARGIN_LEFT_SHIFT;
1942
1943 /* 7bits: uuuuutt : unit | type */
1944 return (bits & 0x3);
1945}
1946static inline uint8_t get_margin_left(const css_computed_style *style,
1947 css_fixed *length, css_unit *unit)
1948{
1949 uint32_t bits = style->i.bits[MARGIN_LEFT_INDEX];
1950 bits &= MARGIN_LEFT_MASK;
1951 bits >>= MARGIN_LEFT_SHIFT;
1952
1953 /* 7bits: uuuuutt : unit | type */
1954 if ((bits & 0x3) == CSS_MARGIN_SET) {
1955 *length = style->i.margin_left;
1956 *unit = bits >> 2;
1957 }
1958
1959 return (bits & 0x3);
1960}
1961#undef MARGIN_LEFT_INDEX
1962#undef MARGIN_LEFT_SHIFT
1963#undef MARGIN_LEFT_MASK
1964
1965#define MARGIN_RIGHT_INDEX 6
1966#define MARGIN_RIGHT_SHIFT 25
1967#define MARGIN_RIGHT_MASK 0xfe000000
1968static inline uint8_t get_margin_right_bits(const css_computed_style *style)
1969{
1970 uint32_t bits = style->i.bits[MARGIN_RIGHT_INDEX];
1971 bits &= MARGIN_RIGHT_MASK;
1972 bits >>= MARGIN_RIGHT_SHIFT;
1973
1974 /* 7bits: uuuuutt : unit | type */
1975 return (bits & 0x3);
1976}
1977static inline uint8_t get_margin_right(const css_computed_style *style,
1978 css_fixed *length, css_unit *unit)
1979{
1980 uint32_t bits = style->i.bits[MARGIN_RIGHT_INDEX];
1981 bits &= MARGIN_RIGHT_MASK;
1982 bits >>= MARGIN_RIGHT_SHIFT;
1983
1984 /* 7bits: uuuuutt : unit | type */
1985 if ((bits & 0x3) == CSS_MARGIN_SET) {
1986 *length = style->i.margin_right;
1987 *unit = bits >> 2;
1988 }
1989
1990 return (bits & 0x3);
1991}
1992#undef MARGIN_RIGHT_INDEX
1993#undef MARGIN_RIGHT_SHIFT
1994#undef MARGIN_RIGHT_MASK
1995
1996#define MARGIN_TOP_INDEX 5
1997#define MARGIN_TOP_SHIFT 4
1998#define MARGIN_TOP_MASK 0x7f0
1999static inline uint8_t get_margin_top_bits(const css_computed_style *style)
2000{
2001 uint32_t bits = style->i.bits[MARGIN_TOP_INDEX];
2002 bits &= MARGIN_TOP_MASK;
2003 bits >>= MARGIN_TOP_SHIFT;
2004
2005 /* 7bits: uuuuutt : unit | type */
2006 return (bits & 0x3);
2007}
2008static inline uint8_t get_margin_top(const css_computed_style *style, css_fixed
2009 *length, css_unit *unit)
2010{
2011 uint32_t bits = style->i.bits[MARGIN_TOP_INDEX];
2012 bits &= MARGIN_TOP_MASK;
2013 bits >>= MARGIN_TOP_SHIFT;
2014
2015 /* 7bits: uuuuutt : unit | type */
2016 if ((bits & 0x3) == CSS_MARGIN_SET) {
2017 *length = style->i.margin_top;
2018 *unit = bits >> 2;
2019 }
2020
2021 return (bits & 0x3);
2022}
2023#undef MARGIN_TOP_INDEX
2024#undef MARGIN_TOP_SHIFT
2025#undef MARGIN_TOP_MASK
2026
2027#define MAX_HEIGHT_INDEX 5
2028#define MAX_HEIGHT_SHIFT 11
2029#define MAX_HEIGHT_MASK 0x3f800
2030static inline uint8_t get_max_height_bits(const css_computed_style *style)
2031{
2032 uint32_t bits = style->i.bits[MAX_HEIGHT_INDEX];
2033 bits &= MAX_HEIGHT_MASK;
2034 bits >>= MAX_HEIGHT_SHIFT;
2035
2036 /* 7bits: uuuuutt : unit | type */
2037 return (bits & 0x3);
2038}
2039static inline uint8_t get_max_height(const css_computed_style *style, css_fixed
2040 *length, css_unit *unit)
2041{
2042 uint32_t bits = style->i.bits[MAX_HEIGHT_INDEX];
2043 bits &= MAX_HEIGHT_MASK;
2044 bits >>= MAX_HEIGHT_SHIFT;
2045
2046 /* 7bits: uuuuutt : unit | type */
2047 if ((bits & 0x3) == CSS_MAX_HEIGHT_SET) {
2048 *length = style->i.max_height;
2049 *unit = bits >> 2;
2050 }
2051
2052 return (bits & 0x3);
2053}
2054#undef MAX_HEIGHT_INDEX
2055#undef MAX_HEIGHT_SHIFT
2056#undef MAX_HEIGHT_MASK
2057
2058#define MAX_WIDTH_INDEX 5
2059#define MAX_WIDTH_SHIFT 18
2060#define MAX_WIDTH_MASK 0x1fc0000
2061static inline uint8_t get_max_width_bits(const css_computed_style *style)
2062{
2063 uint32_t bits = style->i.bits[MAX_WIDTH_INDEX];
2064 bits &= MAX_WIDTH_MASK;
2065 bits >>= MAX_WIDTH_SHIFT;
2066
2067 /* 7bits: uuuuutt : unit | type */
2068 return (bits & 0x3);
2069}
2070static inline uint8_t get_max_width(const css_computed_style *style, css_fixed
2071 *length, css_unit *unit)
2072{
2073 uint32_t bits = style->i.bits[MAX_WIDTH_INDEX];
2074 bits &= MAX_WIDTH_MASK;
2075 bits >>= MAX_WIDTH_SHIFT;
2076
2077 /* 7bits: uuuuutt : unit | type */
2078 if ((bits & 0x3) == CSS_MAX_WIDTH_SET) {
2079 *length = style->i.max_width;
2080 *unit = bits >> 2;
2081 }
2082
2083 return (bits & 0x3);
2084}
2085#undef MAX_WIDTH_INDEX
2086#undef MAX_WIDTH_SHIFT
2087#undef MAX_WIDTH_MASK
2088
2089#define MIN_HEIGHT_INDEX 5
2090#define MIN_HEIGHT_SHIFT 25
2091#define MIN_HEIGHT_MASK 0xfe000000
2092static inline uint8_t get_min_height_bits(const css_computed_style *style)
2093{
2094 uint32_t bits = style->i.bits[MIN_HEIGHT_INDEX];
2095 bits &= MIN_HEIGHT_MASK;
2096 bits >>= MIN_HEIGHT_SHIFT;
2097
2098 /* 7bits: uuuuutt : unit | type */
2099 return (bits & 0x3);
2100}
2101static inline uint8_t get_min_height(const css_computed_style *style, css_fixed
2102 *length, css_unit *unit)
2103{
2104 uint32_t bits = style->i.bits[MIN_HEIGHT_INDEX];
2105 bits &= MIN_HEIGHT_MASK;
2106 bits >>= MIN_HEIGHT_SHIFT;
2107
2108 /* 7bits: uuuuutt : unit | type */
2109 if ((bits & 0x3) == CSS_MIN_HEIGHT_SET) {
2110 *length = style->i.min_height;
2111 *unit = bits >> 2;
2112 }
2113
2114 return (bits & 0x3);
2115}
2116#undef MIN_HEIGHT_INDEX
2117#undef MIN_HEIGHT_SHIFT
2118#undef MIN_HEIGHT_MASK
2119
2120#define MIN_WIDTH_INDEX 4
2121#define MIN_WIDTH_SHIFT 4
2122#define MIN_WIDTH_MASK 0x7f0
2123static inline uint8_t get_min_width_bits(const css_computed_style *style)
2124{
2125 uint32_t bits = style->i.bits[MIN_WIDTH_INDEX];
2126 bits &= MIN_WIDTH_MASK;
2127 bits >>= MIN_WIDTH_SHIFT;
2128
2129 /* 7bits: uuuuutt : unit | type */
2130 return (bits & 0x3);
2131}
2132static inline uint8_t get_min_width(const css_computed_style *style, css_fixed
2133 *length, css_unit *unit)
2134{
2135 uint32_t bits = style->i.bits[MIN_WIDTH_INDEX];
2136 bits &= MIN_WIDTH_MASK;
2137 bits >>= MIN_WIDTH_SHIFT;
2138
2139 /* 7bits: uuuuutt : unit | type */
2140 if ((bits & 0x3) == CSS_MIN_WIDTH_SET) {
2141 *length = style->i.min_width;
2142 *unit = bits >> 2;
2143 }
2144
2145 return (bits & 0x3);
2146}
2147#undef MIN_WIDTH_INDEX
2148#undef MIN_WIDTH_SHIFT
2149#undef MIN_WIDTH_MASK
2150
2151#define OPACITY_INDEX 14
2152#define OPACITY_SHIFT 24
2153#define OPACITY_MASK 0x1000000
2154static inline uint8_t get_opacity_bits(const css_computed_style *style)
2155{
2156 uint32_t bits = style->i.bits[OPACITY_INDEX];
2157 bits &= OPACITY_MASK;
2158 bits >>= OPACITY_SHIFT;
2159
2160 /* 1bit: t : type */
2161 return (bits & 0x1);
2162}
2163static inline uint8_t get_opacity(const css_computed_style *style, css_fixed
2164 *fixed)
2165{
2166 uint32_t bits = style->i.bits[OPACITY_INDEX];
2167 bits &= OPACITY_MASK;
2168 bits >>= OPACITY_SHIFT;
2169
2170 /* 1bit: t : type */
2171 if ((bits & 0x1) == CSS_OPACITY_SET) {
2172 *fixed = style->i.opacity;
2173 }
2174
2175 return (bits & 0x1);
2176}
2177#undef OPACITY_INDEX
2178#undef OPACITY_SHIFT
2179#undef OPACITY_MASK
2180
2181#define ORDER_INDEX 14
2182#define ORDER_SHIFT 25
2183#define ORDER_MASK 0x2000000
2184static inline uint8_t get_order_bits(const css_computed_style *style)
2185{
2186 uint32_t bits = style->i.bits[ORDER_INDEX];
2187 bits &= ORDER_MASK;
2188 bits >>= ORDER_SHIFT;
2189
2190 /* 1bit: t : type */
2191 return (bits & 0x1);
2192}
2193static inline uint8_t get_order(const css_computed_style *style, int32_t
2194 *integer)
2195{
2196 uint32_t bits = style->i.bits[ORDER_INDEX];
2197 bits &= ORDER_MASK;
2198 bits >>= ORDER_SHIFT;
2199
2200 /* 1bit: t : type */
2201 if ((bits & 0x1) == CSS_ORDER_SET) {
2202 *integer = style->i.order;
2203 }
2204
2205 return (bits & 0x1);
2206}
2207#undef ORDER_INDEX
2208#undef ORDER_SHIFT
2209#undef ORDER_MASK
2210
2211#define ORPHANS_INDEX 14
2212#define ORPHANS_SHIFT 26
2213#define ORPHANS_MASK 0x4000000
2214static inline uint8_t get_orphans_bits(const css_computed_style *style)
2215{
2216 uint32_t bits = style->i.bits[ORPHANS_INDEX];
2217 bits &= ORPHANS_MASK;
2218 bits >>= ORPHANS_SHIFT;
2219
2220 /* 1bit: t : type */
2221 return (bits & 0x1);
2222}
2223static inline uint8_t get_orphans(const css_computed_style *style, int32_t
2224 *integer)
2225{
2226 uint32_t bits = style->i.bits[ORPHANS_INDEX];
2227 bits &= ORPHANS_MASK;
2228 bits >>= ORPHANS_SHIFT;
2229
2230 /* 1bit: t : type */
2231 *integer = style->i.orphans;
2232
2233 return (bits & 0x1);
2234}
2235#undef ORPHANS_INDEX
2236#undef ORPHANS_SHIFT
2237#undef ORPHANS_MASK
2238
2239#define OUTLINE_COLOR_INDEX 10
2240#define OUTLINE_COLOR_SHIFT 6
2241#define OUTLINE_COLOR_MASK 0xc0
2242static inline uint8_t get_outline_color_bits(const css_computed_style *style)
2243{
2244 uint32_t bits = style->i.bits[OUTLINE_COLOR_INDEX];
2245 bits &= OUTLINE_COLOR_MASK;
2246 bits >>= OUTLINE_COLOR_SHIFT;
2247
2248 /* 2bits: tt : type */
2249 return (bits & 0x3);
2250}
2251static inline uint8_t get_outline_color(const css_computed_style *style,
2253{
2254 uint32_t bits = style->i.bits[OUTLINE_COLOR_INDEX];
2255 bits &= OUTLINE_COLOR_MASK;
2256 bits >>= OUTLINE_COLOR_SHIFT;
2257
2258 /* 2bits: tt : type */
2259 if ((bits & 0x3) == CSS_OUTLINE_COLOR_COLOR) {
2260 *color = style->i.outline_color;
2261 }
2262
2263 return (bits & 0x3);
2264}
2265#undef OUTLINE_COLOR_INDEX
2266#undef OUTLINE_COLOR_SHIFT
2267#undef OUTLINE_COLOR_MASK
2268
2269#define OUTLINE_STYLE_INDEX 5
2270#define OUTLINE_STYLE_SHIFT 0
2271#define OUTLINE_STYLE_MASK 0xf
2272static inline uint8_t get_outline_style_bits(const css_computed_style *style)
2273{
2274 uint32_t bits = style->i.bits[OUTLINE_STYLE_INDEX];
2275 bits &= OUTLINE_STYLE_MASK;
2276 bits >>= OUTLINE_STYLE_SHIFT;
2277
2278 /* 4bits: tttt : type */
2279 return (bits & 0xf);
2280}
2281static inline uint8_t get_outline_style(const css_computed_style *style)
2282{
2283 uint32_t bits = style->i.bits[OUTLINE_STYLE_INDEX];
2284 bits &= OUTLINE_STYLE_MASK;
2285 bits >>= OUTLINE_STYLE_SHIFT;
2286
2287 /* 4bits: tttt : type */
2288
2289 return (bits & 0xf);
2290}
2291#undef OUTLINE_STYLE_INDEX
2292#undef OUTLINE_STYLE_SHIFT
2293#undef OUTLINE_STYLE_MASK
2294
2295#define OUTLINE_WIDTH_INDEX 1
2296#define OUTLINE_WIDTH_SHIFT 15
2297#define OUTLINE_WIDTH_MASK 0x7f8000
2298static inline uint8_t get_outline_width_bits(const css_computed_style *style)
2299{
2300 uint32_t bits = style->i.bits[OUTLINE_WIDTH_INDEX];
2301 bits &= OUTLINE_WIDTH_MASK;
2302 bits >>= OUTLINE_WIDTH_SHIFT;
2303
2304 /* 8bits: uuuuuttt : unit | type */
2305 return (bits & 0x7);
2306}
2307static inline uint8_t get_outline_width(const css_computed_style *style,
2308 css_fixed *length, css_unit *unit)
2309{
2310 uint32_t bits = style->i.bits[OUTLINE_WIDTH_INDEX];
2311 bits &= OUTLINE_WIDTH_MASK;
2312 bits >>= OUTLINE_WIDTH_SHIFT;
2313
2314 /* 8bits: uuuuuttt : unit | type */
2315 if ((bits & 0x7) == CSS_OUTLINE_WIDTH_WIDTH) {
2316 *length = style->i.outline_width;
2317 *unit = bits >> 3;
2318 }
2319
2320 return (bits & 0x7);
2321}
2322#undef OUTLINE_WIDTH_INDEX
2323#undef OUTLINE_WIDTH_SHIFT
2324#undef OUTLINE_WIDTH_MASK
2325
2326#define OVERFLOW_X_INDEX 13
2327#define OVERFLOW_X_SHIFT 13
2328#define OVERFLOW_X_MASK 0xe000
2329static inline uint8_t get_overflow_x_bits(const css_computed_style *style)
2330{
2331 uint32_t bits = style->i.bits[OVERFLOW_X_INDEX];
2332 bits &= OVERFLOW_X_MASK;
2333 bits >>= OVERFLOW_X_SHIFT;
2334
2335 /* 3bits: ttt : type */
2336 return (bits & 0x7);
2337}
2338static inline uint8_t get_overflow_x(const css_computed_style *style)
2339{
2340 uint32_t bits = style->i.bits[OVERFLOW_X_INDEX];
2341 bits &= OVERFLOW_X_MASK;
2342 bits >>= OVERFLOW_X_SHIFT;
2343
2344 /* 3bits: ttt : type */
2345
2346 return (bits & 0x7);
2347}
2348#undef OVERFLOW_X_INDEX
2349#undef OVERFLOW_X_SHIFT
2350#undef OVERFLOW_X_MASK
2351
2352#define OVERFLOW_Y_INDEX 13
2353#define OVERFLOW_Y_SHIFT 16
2354#define OVERFLOW_Y_MASK 0x70000
2355static inline uint8_t get_overflow_y_bits(const css_computed_style *style)
2356{
2357 uint32_t bits = style->i.bits[OVERFLOW_Y_INDEX];
2358 bits &= OVERFLOW_Y_MASK;
2359 bits >>= OVERFLOW_Y_SHIFT;
2360
2361 /* 3bits: ttt : type */
2362 return (bits & 0x7);
2363}
2364static inline uint8_t get_overflow_y(const css_computed_style *style)
2365{
2366 uint32_t bits = style->i.bits[OVERFLOW_Y_INDEX];
2367 bits &= OVERFLOW_Y_MASK;
2368 bits >>= OVERFLOW_Y_SHIFT;
2369
2370 /* 3bits: ttt : type */
2371
2372 return (bits & 0x7);
2373}
2374#undef OVERFLOW_Y_INDEX
2375#undef OVERFLOW_Y_SHIFT
2376#undef OVERFLOW_Y_MASK
2377
2378#define PADDING_BOTTOM_INDEX 8
2379#define PADDING_BOTTOM_SHIFT 14
2380#define PADDING_BOTTOM_MASK 0xfc000
2381static inline uint8_t get_padding_bottom_bits(const css_computed_style *style)
2382{
2383 uint32_t bits = style->i.bits[PADDING_BOTTOM_INDEX];
2384 bits &= PADDING_BOTTOM_MASK;
2385 bits >>= PADDING_BOTTOM_SHIFT;
2386
2387 /* 6bits: uuuuut : unit | type */
2388 return (bits & 0x1);
2389}
2390static inline uint8_t get_padding_bottom(const css_computed_style *style,
2391 css_fixed *length, css_unit *unit)
2392{
2393 uint32_t bits = style->i.bits[PADDING_BOTTOM_INDEX];
2394 bits &= PADDING_BOTTOM_MASK;
2395 bits >>= PADDING_BOTTOM_SHIFT;
2396
2397 /* 6bits: uuuuut : unit | type */
2398 if ((bits & 0x1) == CSS_PADDING_SET) {
2399 *length = style->i.padding_bottom;
2400 *unit = bits >> 1;
2401 }
2402
2403 return (bits & 0x1);
2404}
2405#undef PADDING_BOTTOM_INDEX
2406#undef PADDING_BOTTOM_SHIFT
2407#undef PADDING_BOTTOM_MASK
2408
2409#define PADDING_LEFT_INDEX 8
2410#define PADDING_LEFT_SHIFT 20
2411#define PADDING_LEFT_MASK 0x3f00000
2412static inline uint8_t get_padding_left_bits(const css_computed_style *style)
2413{
2414 uint32_t bits = style->i.bits[PADDING_LEFT_INDEX];
2415 bits &= PADDING_LEFT_MASK;
2416 bits >>= PADDING_LEFT_SHIFT;
2417
2418 /* 6bits: uuuuut : unit | type */
2419 return (bits & 0x1);
2420}
2421static inline uint8_t get_padding_left(const css_computed_style *style,
2422 css_fixed *length, css_unit *unit)
2423{
2424 uint32_t bits = style->i.bits[PADDING_LEFT_INDEX];
2425 bits &= PADDING_LEFT_MASK;
2426 bits >>= PADDING_LEFT_SHIFT;
2427
2428 /* 6bits: uuuuut : unit | type */
2429 if ((bits & 0x1) == CSS_PADDING_SET) {
2430 *length = style->i.padding_left;
2431 *unit = bits >> 1;
2432 }
2433
2434 return (bits & 0x1);
2435}
2436#undef PADDING_LEFT_INDEX
2437#undef PADDING_LEFT_SHIFT
2438#undef PADDING_LEFT_MASK
2439
2440#define PADDING_RIGHT_INDEX 8
2441#define PADDING_RIGHT_SHIFT 26
2442#define PADDING_RIGHT_MASK 0xfc000000
2443static inline uint8_t get_padding_right_bits(const css_computed_style *style)
2444{
2445 uint32_t bits = style->i.bits[PADDING_RIGHT_INDEX];
2446 bits &= PADDING_RIGHT_MASK;
2447 bits >>= PADDING_RIGHT_SHIFT;
2448
2449 /* 6bits: uuuuut : unit | type */
2450 return (bits & 0x1);
2451}
2452static inline uint8_t get_padding_right(const css_computed_style *style,
2453 css_fixed *length, css_unit *unit)
2454{
2455 uint32_t bits = style->i.bits[PADDING_RIGHT_INDEX];
2456 bits &= PADDING_RIGHT_MASK;
2457 bits >>= PADDING_RIGHT_SHIFT;
2458
2459 /* 6bits: uuuuut : unit | type */
2460 if ((bits & 0x1) == CSS_PADDING_SET) {
2461 *length = style->i.padding_right;
2462 *unit = bits >> 1;
2463 }
2464
2465 return (bits & 0x1);
2466}
2467#undef PADDING_RIGHT_INDEX
2468#undef PADDING_RIGHT_SHIFT
2469#undef PADDING_RIGHT_MASK
2470
2471#define PADDING_TOP_INDEX 3
2472#define PADDING_TOP_SHIFT 5
2473#define PADDING_TOP_MASK 0x7e0
2474static inline uint8_t get_padding_top_bits(const css_computed_style *style)
2475{
2476 uint32_t bits = style->i.bits[PADDING_TOP_INDEX];
2477 bits &= PADDING_TOP_MASK;
2478 bits >>= PADDING_TOP_SHIFT;
2479
2480 /* 6bits: uuuuut : unit | type */
2481 return (bits & 0x1);
2482}
2483static inline uint8_t get_padding_top(const css_computed_style *style,
2484 css_fixed *length, css_unit *unit)
2485{
2486 uint32_t bits = style->i.bits[PADDING_TOP_INDEX];
2487 bits &= PADDING_TOP_MASK;
2488 bits >>= PADDING_TOP_SHIFT;
2489
2490 /* 6bits: uuuuut : unit | type */
2491 if ((bits & 0x1) == CSS_PADDING_SET) {
2492 *length = style->i.padding_top;
2493 *unit = bits >> 1;
2494 }
2495
2496 return (bits & 0x1);
2497}
2498#undef PADDING_TOP_INDEX
2499#undef PADDING_TOP_SHIFT
2500#undef PADDING_TOP_MASK
2501
2502#define PAGE_BREAK_AFTER_INDEX 13
2503#define PAGE_BREAK_AFTER_SHIFT 19
2504#define PAGE_BREAK_AFTER_MASK 0x380000
2505static inline uint8_t get_page_break_after_bits(const css_computed_style *style)
2506{
2507 uint32_t bits = style->i.bits[PAGE_BREAK_AFTER_INDEX];
2508 bits &= PAGE_BREAK_AFTER_MASK;
2509 bits >>= PAGE_BREAK_AFTER_SHIFT;
2510
2511 /* 3bits: ttt : type */
2512 return (bits & 0x7);
2513}
2514static inline uint8_t get_page_break_after(const css_computed_style *style)
2515{
2516 uint32_t bits = style->i.bits[PAGE_BREAK_AFTER_INDEX];
2517 bits &= PAGE_BREAK_AFTER_MASK;
2518 bits >>= PAGE_BREAK_AFTER_SHIFT;
2519
2520 /* 3bits: ttt : type */
2521
2522 return (bits & 0x7);
2523}
2524#undef PAGE_BREAK_AFTER_INDEX
2525#undef PAGE_BREAK_AFTER_SHIFT
2526#undef PAGE_BREAK_AFTER_MASK
2527
2528#define PAGE_BREAK_BEFORE_INDEX 13
2529#define PAGE_BREAK_BEFORE_SHIFT 22
2530#define PAGE_BREAK_BEFORE_MASK 0x1c00000
2531static inline uint8_t get_page_break_before_bits(const css_computed_style
2532 *style)
2533{
2534 uint32_t bits = style->i.bits[PAGE_BREAK_BEFORE_INDEX];
2535 bits &= PAGE_BREAK_BEFORE_MASK;
2536 bits >>= PAGE_BREAK_BEFORE_SHIFT;
2537
2538 /* 3bits: ttt : type */
2539 return (bits & 0x7);
2540}
2541static inline uint8_t get_page_break_before(const css_computed_style *style)
2542{
2543 uint32_t bits = style->i.bits[PAGE_BREAK_BEFORE_INDEX];
2544 bits &= PAGE_BREAK_BEFORE_MASK;
2545 bits >>= PAGE_BREAK_BEFORE_SHIFT;
2546
2547 /* 3bits: ttt : type */
2548
2549 return (bits & 0x7);
2550}
2551#undef PAGE_BREAK_BEFORE_INDEX
2552#undef PAGE_BREAK_BEFORE_SHIFT
2553#undef PAGE_BREAK_BEFORE_MASK
2554
2555#define PAGE_BREAK_INSIDE_INDEX 10
2556#define PAGE_BREAK_INSIDE_SHIFT 8
2557#define PAGE_BREAK_INSIDE_MASK 0x300
2558static inline uint8_t get_page_break_inside_bits(const css_computed_style
2559 *style)
2560{
2561 uint32_t bits = style->i.bits[PAGE_BREAK_INSIDE_INDEX];
2562 bits &= PAGE_BREAK_INSIDE_MASK;
2563 bits >>= PAGE_BREAK_INSIDE_SHIFT;
2564
2565 /* 2bits: tt : type */
2566 return (bits & 0x3);
2567}
2568static inline uint8_t get_page_break_inside(const css_computed_style *style)
2569{
2570 uint32_t bits = style->i.bits[PAGE_BREAK_INSIDE_INDEX];
2571 bits &= PAGE_BREAK_INSIDE_MASK;
2572 bits >>= PAGE_BREAK_INSIDE_SHIFT;
2573
2574 /* 2bits: tt : type */
2575
2576 return (bits & 0x3);
2577}
2578#undef PAGE_BREAK_INSIDE_INDEX
2579#undef PAGE_BREAK_INSIDE_SHIFT
2580#undef PAGE_BREAK_INSIDE_MASK
2581
2582#define POSITION_INDEX 13
2583#define POSITION_SHIFT 25
2584#define POSITION_MASK 0xe000000
2585static inline uint8_t get_position_bits(const css_computed_style *style)
2586{
2587 uint32_t bits = style->i.bits[POSITION_INDEX];
2588 bits &= POSITION_MASK;
2589 bits >>= POSITION_SHIFT;
2590
2591 /* 3bits: ttt : type */
2592 return (bits & 0x7);
2593}
2594static inline uint8_t get_position(const css_computed_style *style)
2595{
2596 uint32_t bits = style->i.bits[POSITION_INDEX];
2597 bits &= POSITION_MASK;
2598 bits >>= POSITION_SHIFT;
2599
2600 /* 3bits: ttt : type */
2601
2602 return (bits & 0x7);
2603}
2604#undef POSITION_INDEX
2605#undef POSITION_SHIFT
2606#undef POSITION_MASK
2607
2608#define QUOTES_INDEX 14
2609#define QUOTES_SHIFT 27
2610#define QUOTES_MASK 0x8000000
2611static inline uint8_t get_quotes_bits(const css_computed_style *style)
2612{
2613 uint32_t bits = style->i.bits[QUOTES_INDEX];
2614 bits &= QUOTES_MASK;
2615 bits >>= QUOTES_SHIFT;
2616
2617 /* 1bit: t : type */
2618 return (bits & 0x1);
2619}
2620static inline uint8_t get_quotes(const css_computed_style *style, lwc_string
2621 ***string_arr)
2622{
2623 uint32_t bits = style->i.bits[QUOTES_INDEX];
2624 bits &= QUOTES_MASK;
2625 bits >>= QUOTES_SHIFT;
2626
2627 /* 1bit: t : type */
2628 *string_arr = style->quotes;
2629
2630 return (bits & 0x1);
2631}
2632#undef QUOTES_INDEX
2633#undef QUOTES_SHIFT
2634#undef QUOTES_MASK
2635
2636#define RIGHT_INDEX 4
2637#define RIGHT_SHIFT 11
2638#define RIGHT_MASK 0x3f800
2639static inline uint8_t get_right_bits(const css_computed_style *style)
2640{
2641 uint32_t bits = style->i.bits[RIGHT_INDEX];
2642 bits &= RIGHT_MASK;
2643 bits >>= RIGHT_SHIFT;
2644
2645 /* 7bits: uuuuutt : unit | type */
2646 return (bits & 0x3);
2647}
2648static inline uint8_t get_right(const css_computed_style *style, css_fixed
2649 *length, css_unit *unit)
2650{
2651 uint32_t bits = style->i.bits[RIGHT_INDEX];
2652 bits &= RIGHT_MASK;
2653 bits >>= RIGHT_SHIFT;
2654
2655 /* 7bits: uuuuutt : unit | type */
2656 if ((bits & 0x3) == CSS_RIGHT_SET) {
2657 *length = style->i.right;
2658 *unit = bits >> 2;
2659 }
2660
2661 return (bits & 0x3);
2662}
2663#undef RIGHT_INDEX
2664#undef RIGHT_SHIFT
2665#undef RIGHT_MASK
2666
2667#define STROKE_OPACITY_INDEX 13
2668#define STROKE_OPACITY_SHIFT 0
2669#define STROKE_OPACITY_MASK 0x1
2670static inline uint8_t get_stroke_opacity_bits(const css_computed_style *style)
2671{
2672 uint32_t bits = style->i.bits[STROKE_OPACITY_INDEX];
2673 bits &= STROKE_OPACITY_MASK;
2674 bits >>= STROKE_OPACITY_SHIFT;
2675
2676 /* 1bit: t : type */
2677 return (bits & 0x1);
2678}
2679static inline uint8_t get_stroke_opacity(const css_computed_style *style,
2680 css_fixed *fixed)
2681{
2682 uint32_t bits = style->i.bits[STROKE_OPACITY_INDEX];
2683 bits &= STROKE_OPACITY_MASK;
2684 bits >>= STROKE_OPACITY_SHIFT;
2685
2686 /* 1bit: t : type */
2687 if ((bits & 0x1) == CSS_STROKE_OPACITY_SET) {
2688 *fixed = style->i.stroke_opacity;
2689 }
2690
2691 return (bits & 0x1);
2692}
2693#undef STROKE_OPACITY_INDEX
2694#undef STROKE_OPACITY_SHIFT
2695#undef STROKE_OPACITY_MASK
2696
2697#define TABLE_LAYOUT_INDEX 10
2698#define TABLE_LAYOUT_SHIFT 10
2699#define TABLE_LAYOUT_MASK 0xc00
2700static inline uint8_t get_table_layout_bits(const css_computed_style *style)
2701{
2702 uint32_t bits = style->i.bits[TABLE_LAYOUT_INDEX];
2703 bits &= TABLE_LAYOUT_MASK;
2704 bits >>= TABLE_LAYOUT_SHIFT;
2705
2706 /* 2bits: tt : type */
2707 return (bits & 0x3);
2708}
2709static inline uint8_t get_table_layout(const css_computed_style *style)
2710{
2711 uint32_t bits = style->i.bits[TABLE_LAYOUT_INDEX];
2712 bits &= TABLE_LAYOUT_MASK;
2713 bits >>= TABLE_LAYOUT_SHIFT;
2714
2715 /* 2bits: tt : type */
2716
2717 return (bits & 0x3);
2718}
2719#undef TABLE_LAYOUT_INDEX
2720#undef TABLE_LAYOUT_SHIFT
2721#undef TABLE_LAYOUT_MASK
2722
2723#define TEXT_ALIGN_INDEX 4
2724#define TEXT_ALIGN_SHIFT 0
2725#define TEXT_ALIGN_MASK 0xf
2726static inline uint8_t get_text_align_bits(const css_computed_style *style)
2727{
2728 uint32_t bits = style->i.bits[TEXT_ALIGN_INDEX];
2729 bits &= TEXT_ALIGN_MASK;
2730 bits >>= TEXT_ALIGN_SHIFT;
2731
2732 /* 4bits: tttt : type */
2733 return (bits & 0xf);
2734}
2735static inline uint8_t get_text_align(const css_computed_style *style)
2736{
2737 uint32_t bits = style->i.bits[TEXT_ALIGN_INDEX];
2738 bits &= TEXT_ALIGN_MASK;
2739 bits >>= TEXT_ALIGN_SHIFT;
2740
2741 /* 4bits: tttt : type */
2742
2743 return (bits & 0xf);
2744}
2745#undef TEXT_ALIGN_INDEX
2746#undef TEXT_ALIGN_SHIFT
2747#undef TEXT_ALIGN_MASK
2748
2749#define TEXT_DECORATION_INDEX 3
2750#define TEXT_DECORATION_SHIFT 0
2751#define TEXT_DECORATION_MASK 0x1f
2752static inline uint8_t get_text_decoration_bits(const css_computed_style *style)
2753{
2754 uint32_t bits = style->i.bits[TEXT_DECORATION_INDEX];
2755 bits &= TEXT_DECORATION_MASK;
2756 bits >>= TEXT_DECORATION_SHIFT;
2757
2758 /* 5bits: ttttt : type */
2759 return (bits & 0x1f);
2760}
2761static inline uint8_t get_text_decoration(const css_computed_style *style)
2762{
2763 uint32_t bits = style->i.bits[TEXT_DECORATION_INDEX];
2764 bits &= TEXT_DECORATION_MASK;
2765 bits >>= TEXT_DECORATION_SHIFT;
2766
2767 /* 5bits: ttttt : type */
2768
2769 return (bits & 0x1f);
2770}
2771#undef TEXT_DECORATION_INDEX
2772#undef TEXT_DECORATION_SHIFT
2773#undef TEXT_DECORATION_MASK
2774
2775#define TEXT_INDENT_INDEX 2
2776#define TEXT_INDENT_SHIFT 0
2777#define TEXT_INDENT_MASK 0x3f
2778static inline uint8_t get_text_indent_bits(const css_computed_style *style)
2779{
2780 uint32_t bits = style->i.bits[TEXT_INDENT_INDEX];
2781 bits &= TEXT_INDENT_MASK;
2782 bits >>= TEXT_INDENT_SHIFT;
2783
2784 /* 6bits: uuuuut : unit | type */
2785 return (bits & 0x1);
2786}
2787static inline uint8_t get_text_indent(const css_computed_style *style,
2788 css_fixed *length, css_unit *unit)
2789{
2790 uint32_t bits = style->i.bits[TEXT_INDENT_INDEX];
2791 bits &= TEXT_INDENT_MASK;
2792 bits >>= TEXT_INDENT_SHIFT;
2793
2794 /* 6bits: uuuuut : unit | type */
2795 if ((bits & 0x1) == CSS_TEXT_INDENT_SET) {
2796 *length = style->i.text_indent;
2797 *unit = bits >> 1;
2798 }
2799
2800 return (bits & 0x1);
2801}
2802#undef TEXT_INDENT_INDEX
2803#undef TEXT_INDENT_SHIFT
2804#undef TEXT_INDENT_MASK
2805
2806#define TEXT_TRANSFORM_INDEX 9
2807#define TEXT_TRANSFORM_SHIFT 0
2808#define TEXT_TRANSFORM_MASK 0x7
2809static inline uint8_t get_text_transform_bits(const css_computed_style *style)
2810{
2811 uint32_t bits = style->i.bits[TEXT_TRANSFORM_INDEX];
2812 bits &= TEXT_TRANSFORM_MASK;
2813 bits >>= TEXT_TRANSFORM_SHIFT;
2814
2815 /* 3bits: ttt : type */
2816 return (bits & 0x7);
2817}
2818static inline uint8_t get_text_transform(const css_computed_style *style)
2819{
2820 uint32_t bits = style->i.bits[TEXT_TRANSFORM_INDEX];
2821 bits &= TEXT_TRANSFORM_MASK;
2822 bits >>= TEXT_TRANSFORM_SHIFT;
2823
2824 /* 3bits: ttt : type */
2825
2826 return (bits & 0x7);
2827}
2828#undef TEXT_TRANSFORM_INDEX
2829#undef TEXT_TRANSFORM_SHIFT
2830#undef TEXT_TRANSFORM_MASK
2831
2832#define TOP_INDEX 4
2833#define TOP_SHIFT 18
2834#define TOP_MASK 0x1fc0000
2835static inline uint8_t get_top_bits(const css_computed_style *style)
2836{
2837 uint32_t bits = style->i.bits[TOP_INDEX];
2838 bits &= TOP_MASK;
2839 bits >>= TOP_SHIFT;
2840
2841 /* 7bits: uuuuutt : unit | type */
2842 return (bits & 0x3);
2843}
2844static inline uint8_t get_top(const css_computed_style *style, css_fixed
2845 *length, css_unit *unit)
2846{
2847 uint32_t bits = style->i.bits[TOP_INDEX];
2848 bits &= TOP_MASK;
2849 bits >>= TOP_SHIFT;
2850
2851 /* 7bits: uuuuutt : unit | type */
2852 if ((bits & 0x3) == CSS_TOP_SET) {
2853 *length = style->i.top;
2854 *unit = bits >> 2;
2855 }
2856
2857 return (bits & 0x3);
2858}
2859#undef TOP_INDEX
2860#undef TOP_SHIFT
2861#undef TOP_MASK
2862
2863#define UNICODE_BIDI_INDEX 10
2864#define UNICODE_BIDI_SHIFT 12
2865#define UNICODE_BIDI_MASK 0x3000
2866static inline uint8_t get_unicode_bidi_bits(const css_computed_style *style)
2867{
2868 uint32_t bits = style->i.bits[UNICODE_BIDI_INDEX];
2869 bits &= UNICODE_BIDI_MASK;
2870 bits >>= UNICODE_BIDI_SHIFT;
2871
2872 /* 2bits: tt : type */
2873 return (bits & 0x3);
2874}
2875static inline uint8_t get_unicode_bidi(const css_computed_style *style)
2876{
2877 uint32_t bits = style->i.bits[UNICODE_BIDI_INDEX];
2878 bits &= UNICODE_BIDI_MASK;
2879 bits >>= UNICODE_BIDI_SHIFT;
2880
2881 /* 2bits: tt : type */
2882
2883 return (bits & 0x3);
2884}
2885#undef UNICODE_BIDI_INDEX
2886#undef UNICODE_BIDI_SHIFT
2887#undef UNICODE_BIDI_MASK
2888
2889#define VERTICAL_ALIGN_INDEX 12
2890#define VERTICAL_ALIGN_SHIFT 1
2891#define VERTICAL_ALIGN_MASK 0x3fe
2892static inline uint8_t get_vertical_align_bits(const css_computed_style *style)
2893{
2894 uint32_t bits = style->i.bits[VERTICAL_ALIGN_INDEX];
2895 bits &= VERTICAL_ALIGN_MASK;
2896 bits >>= VERTICAL_ALIGN_SHIFT;
2897
2898 /* 9bits: uuuuutttt : unit | type */
2899 return (bits & 0xf);
2900}
2901static inline uint8_t get_vertical_align(const css_computed_style *style,
2902 css_fixed *length, css_unit *unit)
2903{
2904 uint32_t bits = style->i.bits[VERTICAL_ALIGN_INDEX];
2905 bits &= VERTICAL_ALIGN_MASK;
2906 bits >>= VERTICAL_ALIGN_SHIFT;
2907
2908 /* 9bits: uuuuutttt : unit | type */
2909 if ((bits & 0xf) == CSS_VERTICAL_ALIGN_SET) {
2910 *length = style->i.vertical_align;
2911 *unit = bits >> 4;
2912 }
2913
2914 return (bits & 0xf);
2915}
2916#undef VERTICAL_ALIGN_INDEX
2917#undef VERTICAL_ALIGN_SHIFT
2918#undef VERTICAL_ALIGN_MASK
2919
2920#define VISIBILITY_INDEX 10
2921#define VISIBILITY_SHIFT 14
2922#define VISIBILITY_MASK 0xc000
2923static inline uint8_t get_visibility_bits(const css_computed_style *style)
2924{
2925 uint32_t bits = style->i.bits[VISIBILITY_INDEX];
2926 bits &= VISIBILITY_MASK;
2927 bits >>= VISIBILITY_SHIFT;
2928
2929 /* 2bits: tt : type */
2930 return (bits & 0x3);
2931}
2932static inline uint8_t get_visibility(const css_computed_style *style)
2933{
2934 uint32_t bits = style->i.bits[VISIBILITY_INDEX];
2935 bits &= VISIBILITY_MASK;
2936 bits >>= VISIBILITY_SHIFT;
2937
2938 /* 2bits: tt : type */
2939
2940 return (bits & 0x3);
2941}
2942#undef VISIBILITY_INDEX
2943#undef VISIBILITY_SHIFT
2944#undef VISIBILITY_MASK
2945
2946#define WHITE_SPACE_INDEX 8
2947#define WHITE_SPACE_SHIFT 0
2948#define WHITE_SPACE_MASK 0x7
2949static inline uint8_t get_white_space_bits(const css_computed_style *style)
2950{
2951 uint32_t bits = style->i.bits[WHITE_SPACE_INDEX];
2952 bits &= WHITE_SPACE_MASK;
2953 bits >>= WHITE_SPACE_SHIFT;
2954
2955 /* 3bits: ttt : type */
2956 return (bits & 0x7);
2957}
2958static inline uint8_t get_white_space(const css_computed_style *style)
2959{
2960 uint32_t bits = style->i.bits[WHITE_SPACE_INDEX];
2961 bits &= WHITE_SPACE_MASK;
2962 bits >>= WHITE_SPACE_SHIFT;
2963
2964 /* 3bits: ttt : type */
2965
2966 return (bits & 0x7);
2967}
2968#undef WHITE_SPACE_INDEX
2969#undef WHITE_SPACE_SHIFT
2970#undef WHITE_SPACE_MASK
2971
2972#define WIDOWS_INDEX 12
2973#define WIDOWS_SHIFT 0
2974#define WIDOWS_MASK 0x1
2975static inline uint8_t get_widows_bits(const css_computed_style *style)
2976{
2977 uint32_t bits = style->i.bits[WIDOWS_INDEX];
2978 bits &= WIDOWS_MASK;
2979 bits >>= WIDOWS_SHIFT;
2980
2981 /* 1bit: t : type */
2982 return (bits & 0x1);
2983}
2984static inline uint8_t get_widows(const css_computed_style *style, int32_t
2985 *integer)
2986{
2987 uint32_t bits = style->i.bits[WIDOWS_INDEX];
2988 bits &= WIDOWS_MASK;
2989 bits >>= WIDOWS_SHIFT;
2990
2991 /* 1bit: t : type */
2992 *integer = style->i.widows;
2993
2994 return (bits & 0x1);
2995}
2996#undef WIDOWS_INDEX
2997#undef WIDOWS_SHIFT
2998#undef WIDOWS_MASK
2999
3000#define WIDTH_INDEX 4
3001#define WIDTH_SHIFT 25
3002#define WIDTH_MASK 0xfe000000
3003static inline uint8_t get_width_bits(const css_computed_style *style)
3004{
3005 uint32_t bits = style->i.bits[WIDTH_INDEX];
3006 bits &= WIDTH_MASK;
3007 bits >>= WIDTH_SHIFT;
3008
3009 /* 7bits: uuuuutt : unit | type */
3010 return (bits & 0x3);
3011}
3012static inline uint8_t get_width(const css_computed_style *style, css_fixed
3013 *length, css_unit *unit)
3014{
3015 uint32_t bits = style->i.bits[WIDTH_INDEX];
3016 bits &= WIDTH_MASK;
3017 bits >>= WIDTH_SHIFT;
3018
3019 /* 7bits: uuuuutt : unit | type */
3020 if ((bits & 0x3) == CSS_WIDTH_SET) {
3021 *length = style->i.width;
3022 *unit = bits >> 2;
3023 }
3024
3025 return (bits & 0x3);
3026}
3027#undef WIDTH_INDEX
3028#undef WIDTH_SHIFT
3029#undef WIDTH_MASK
3030
3031#define WORD_SPACING_INDEX 1
3032#define WORD_SPACING_SHIFT 0
3033#define WORD_SPACING_MASK 0x7f
3034static inline uint8_t get_word_spacing_bits(const css_computed_style *style)
3035{
3036 uint32_t bits = style->i.bits[WORD_SPACING_INDEX];
3037 bits &= WORD_SPACING_MASK;
3038 bits >>= WORD_SPACING_SHIFT;
3039
3040 /* 7bits: uuuuutt : unit | type */
3041 return (bits & 0x3);
3042}
3043static inline uint8_t get_word_spacing(const css_computed_style *style,
3044 css_fixed *length, css_unit *unit)
3045{
3046 uint32_t bits = style->i.bits[WORD_SPACING_INDEX];
3047 bits &= WORD_SPACING_MASK;
3048 bits >>= WORD_SPACING_SHIFT;
3049
3050 /* 7bits: uuuuutt : unit | type */
3051 if ((bits & 0x3) == CSS_WORD_SPACING_SET) {
3052 *length = style->i.word_spacing;
3053 *unit = bits >> 2;
3054 }
3055
3056 return (bits & 0x3);
3057}
3058#undef WORD_SPACING_INDEX
3059#undef WORD_SPACING_SHIFT
3060#undef WORD_SPACING_MASK
3061
3062#define WRITING_MODE_INDEX 10
3063#define WRITING_MODE_SHIFT 16
3064#define WRITING_MODE_MASK 0x30000
3065static inline uint8_t get_writing_mode_bits(const css_computed_style *style)
3066{
3067 uint32_t bits = style->i.bits[WRITING_MODE_INDEX];
3068 bits &= WRITING_MODE_MASK;
3069 bits >>= WRITING_MODE_SHIFT;
3070
3071 /* 2bits: tt : type */
3072 return (bits & 0x3);
3073}
3074static inline uint8_t get_writing_mode(const css_computed_style *style)
3075{
3076 uint32_t bits = style->i.bits[WRITING_MODE_INDEX];
3077 bits &= WRITING_MODE_MASK;
3078 bits >>= WRITING_MODE_SHIFT;
3079
3080 /* 2bits: tt : type */
3081
3082 return (bits & 0x3);
3083}
3084#undef WRITING_MODE_INDEX
3085#undef WRITING_MODE_SHIFT
3086#undef WRITING_MODE_MASK
3087
3088#define Z_INDEX_INDEX 10
3089#define Z_INDEX_SHIFT 18
3090#define Z_INDEX_MASK 0xc0000
3091static inline uint8_t get_z_index_bits(const css_computed_style *style)
3092{
3093 uint32_t bits = style->i.bits[Z_INDEX_INDEX];
3094 bits &= Z_INDEX_MASK;
3095 bits >>= Z_INDEX_SHIFT;
3096
3097 /* 2bits: tt : type */
3098 return (bits & 0x3);
3099}
3100static inline uint8_t get_z_index(const css_computed_style *style, int32_t
3101 *integer)
3102{
3103 uint32_t bits = style->i.bits[Z_INDEX_INDEX];
3104 bits &= Z_INDEX_MASK;
3105 bits >>= Z_INDEX_SHIFT;
3106
3107 /* 2bits: tt : type */
3108 *integer = style->i.z_index;
3109
3110 return (bits & 0x3);
3111}
3112#undef Z_INDEX_INDEX
3113#undef Z_INDEX_SHIFT
3114#undef Z_INDEX_MASK
css_unit
Definition types.h:82
uint32_t css_color
Definition types.h:79
int int32_t
Definition acefiex.h:160
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
#define BORDER_LEFT_STYLE_MASK
Definition autogenerated_propget.h:377
#define TOP_INDEX
Definition autogenerated_propget.h:2832
#define COUNTER_RESET_INDEX
Definition autogenerated_propget.h:1197
#define VISIBILITY_SHIFT
Definition autogenerated_propget.h:2921
#define OUTLINE_WIDTH_MASK
Definition autogenerated_propget.h:2297
#define STROKE_OPACITY_SHIFT
Definition autogenerated_propget.h:2668
#define BORDER_BOTTOM_WIDTH_MASK
Definition autogenerated_propget.h:290
#define PADDING_TOP_MASK
Definition autogenerated_propget.h:2473
#define PADDING_TOP_SHIFT
Definition autogenerated_propget.h:2472
#define LIST_STYLE_POSITION_SHIFT
Definition autogenerated_propget.h:1851
#define TABLE_LAYOUT_SHIFT
Definition autogenerated_propget.h:2698
#define FLEX_GROW_MASK
Definition autogenerated_propget.h:1420
#define BORDER_TOP_STYLE_MASK
Definition autogenerated_propget.h:586
#define FLEX_WRAP_MASK
Definition autogenerated_propget.h:1480
#define BORDER_RIGHT_COLOR_MASK
Definition autogenerated_propget.h:436
#define BORDER_LEFT_COLOR_SHIFT
Definition autogenerated_propget.h:347
#define BORDER_BOTTOM_STYLE_INDEX
Definition autogenerated_propget.h:261
#define MARGIN_BOTTOM_SHIFT
Definition autogenerated_propget.h:1904
#define COLUMN_RULE_COLOR_MASK
Definition autogenerated_propget.h:995
#define COUNTER_INCREMENT_SHIFT
Definition autogenerated_propget.h:1169
#define ALIGN_SELF_MASK
Definition autogenerated_propget.h:63
#define LEFT_INDEX
Definition autogenerated_propget.h:1724
#define COLOR_INDEX
Definition autogenerated_propget.h:880
#define OUTLINE_WIDTH_INDEX
Definition autogenerated_propget.h:2295
#define WHITE_SPACE_MASK
Definition autogenerated_propget.h:2948
#define FLEX_SHRINK_INDEX
Definition autogenerated_propget.h:1448
#define PADDING_TOP_INDEX
Definition autogenerated_propget.h:2471
#define WORD_SPACING_SHIFT
Definition autogenerated_propget.h:3032
#define BOX_SIZING_INDEX
Definition autogenerated_propget.h:672
#define WIDOWS_MASK
Definition autogenerated_propget.h:2974
#define DISPLAY_MASK
Definition autogenerated_propget.h:1281
#define FONT_SIZE_MASK
Definition autogenerated_propget.h:1560
#define TOP_SHIFT
Definition autogenerated_propget.h:2833
#define DISPLAY_INDEX
Definition autogenerated_propget.h:1279
#define BREAK_BEFORE_INDEX
Definition autogenerated_propget.h:724
#define OVERFLOW_X_SHIFT
Definition autogenerated_propget.h:2327
#define BORDER_COLLAPSE_SHIFT
Definition autogenerated_propget.h:321
#define WORD_SPACING_INDEX
Definition autogenerated_propget.h:3031
#define COLUMN_FILL_MASK
Definition autogenerated_propget.h:938
#define TEXT_TRANSFORM_MASK
Definition autogenerated_propget.h:2808
#define MIN_HEIGHT_INDEX
Definition autogenerated_propget.h:2089
#define COLUMN_WIDTH_INDEX
Definition autogenerated_propget.h:1107
#define CONTENT_SHIFT
Definition autogenerated_propget.h:1139
#define CONTENT_MASK
Definition autogenerated_propget.h:1140
#define LIST_STYLE_IMAGE_INDEX
Definition autogenerated_propget.h:1822
#define BORDER_LEFT_WIDTH_INDEX
Definition autogenerated_propget.h:402
#define PADDING_BOTTOM_INDEX
Definition autogenerated_propget.h:2378
#define PADDING_LEFT_SHIFT
Definition autogenerated_propget.h:2410
#define PAGE_BREAK_BEFORE_MASK
Definition autogenerated_propget.h:2530
#define BORDER_BOTTOM_WIDTH_SHIFT
Definition autogenerated_propget.h:289
#define MAX_HEIGHT_SHIFT
Definition autogenerated_propget.h:2028
#define MARGIN_LEFT_MASK
Definition autogenerated_propget.h:1936
#define EMPTY_CELLS_SHIFT
Definition autogenerated_propget.h:1306
#define LEFT_SHIFT
Definition autogenerated_propget.h:1725
#define BACKGROUND_REPEAT_INDEX
Definition autogenerated_propget.h:205
#define MARGIN_LEFT_SHIFT
Definition autogenerated_propget.h:1935
#define DISPLAY_SHIFT
Definition autogenerated_propget.h:1280
#define BORDER_SPACING_MASK
Definition autogenerated_propget.h:524
#define VISIBILITY_MASK
Definition autogenerated_propget.h:2922
#define FONT_SIZE_INDEX
Definition autogenerated_propget.h:1558
#define BACKGROUND_REPEAT_SHIFT
Definition autogenerated_propget.h:206
#define WIDTH_SHIFT
Definition autogenerated_propget.h:3001
#define TEXT_ALIGN_SHIFT
Definition autogenerated_propget.h:2724
#define OVERFLOW_Y_SHIFT
Definition autogenerated_propget.h:2353
#define ALIGN_CONTENT_INDEX
Definition autogenerated_propget.h:9
#define VERTICAL_ALIGN_SHIFT
Definition autogenerated_propget.h:2890
#define WIDTH_INDEX
Definition autogenerated_propget.h:3000
#define ALIGN_CONTENT_MASK
Definition autogenerated_propget.h:11
#define COLUMN_SPAN_INDEX
Definition autogenerated_propget.h:1081
#define WRITING_MODE_SHIFT
Definition autogenerated_propget.h:3063
#define CLEAR_SHIFT
Definition autogenerated_propget.h:803
#define FLOAT_INDEX
Definition autogenerated_propget.h:1504
#define COLOR_MASK
Definition autogenerated_propget.h:882
#define FONT_WEIGHT_SHIFT
Definition autogenerated_propget.h:1642
#define COLUMN_RULE_COLOR_INDEX
Definition autogenerated_propget.h:993
#define MAX_WIDTH_INDEX
Definition autogenerated_propget.h:2058
#define MARGIN_BOTTOM_INDEX
Definition autogenerated_propget.h:1903
#define ALIGN_SELF_SHIFT
Definition autogenerated_propget.h:62
#define ALIGN_CONTENT_SHIFT
Definition autogenerated_propget.h:10
#define FONT_WEIGHT_INDEX
Definition autogenerated_propget.h:1641
#define UNICODE_BIDI_INDEX
Definition autogenerated_propget.h:2863
#define COLUMN_COUNT_INDEX
Definition autogenerated_propget.h:908
#define STROKE_OPACITY_INDEX
Definition autogenerated_propget.h:2667
#define BORDER_RIGHT_COLOR_INDEX
Definition autogenerated_propget.h:434
#define BORDER_RIGHT_STYLE_INDEX
Definition autogenerated_propget.h:463
#define MARGIN_LEFT_INDEX
Definition autogenerated_propget.h:1934
#define BORDER_TOP_WIDTH_INDEX
Definition autogenerated_propget.h:610
#define BORDER_SPACING_INDEX
Definition autogenerated_propget.h:522
#define DIRECTION_SHIFT
Definition autogenerated_propget.h:1254
#define PADDING_RIGHT_SHIFT
Definition autogenerated_propget.h:2441
#define FONT_STYLE_SHIFT
Definition autogenerated_propget.h:1590
#define RIGHT_SHIFT
Definition autogenerated_propget.h:2637
#define RIGHT_INDEX
Definition autogenerated_propget.h:2636
#define OUTLINE_STYLE_INDEX
Definition autogenerated_propget.h:2269
#define RIGHT_MASK
Definition autogenerated_propget.h:2638
#define MAX_HEIGHT_MASK
Definition autogenerated_propget.h:2029
#define BORDER_TOP_WIDTH_SHIFT
Definition autogenerated_propget.h:611
#define BORDER_RIGHT_WIDTH_INDEX
Definition autogenerated_propget.h:490
#define BACKGROUND_POSITION_INDEX
Definition autogenerated_propget.h:170
#define COLUMN_RULE_STYLE_SHIFT
Definition autogenerated_propget.h:1023
#define FLEX_GROW_SHIFT
Definition autogenerated_propget.h:1419
#define COUNTER_INCREMENT_MASK
Definition autogenerated_propget.h:1170
#define LINE_HEIGHT_SHIFT
Definition autogenerated_propget.h:1787
#define BREAK_BEFORE_MASK
Definition autogenerated_propget.h:726
#define MIN_WIDTH_MASK
Definition autogenerated_propget.h:2122
#define MARGIN_RIGHT_INDEX
Definition autogenerated_propget.h:1965
#define BORDER_BOTTOM_COLOR_MASK
Definition autogenerated_propget.h:234
#define BOX_SIZING_MASK
Definition autogenerated_propget.h:674
#define COLUMN_GAP_SHIFT
Definition autogenerated_propget.h:963
#define FLEX_BASIS_MASK
Definition autogenerated_propget.h:1363
#define FLEX_GROW_INDEX
Definition autogenerated_propget.h:1418
#define PADDING_LEFT_MASK
Definition autogenerated_propget.h:2411
#define TABLE_LAYOUT_INDEX
Definition autogenerated_propget.h:2697
#define PAGE_BREAK_INSIDE_SHIFT
Definition autogenerated_propget.h:2556
#define JUSTIFY_CONTENT_INDEX
Definition autogenerated_propget.h:1698
#define WHITE_SPACE_INDEX
Definition autogenerated_propget.h:2946
#define COUNTER_RESET_SHIFT
Definition autogenerated_propget.h:1198
#define MIN_WIDTH_INDEX
Definition autogenerated_propget.h:2120
#define Z_INDEX_SHIFT
Definition autogenerated_propget.h:3089
#define BORDER_SPACING_SHIFT
Definition autogenerated_propget.h:523
#define TABLE_LAYOUT_MASK
Definition autogenerated_propget.h:2699
#define BORDER_BOTTOM_COLOR_SHIFT
Definition autogenerated_propget.h:233
#define OUTLINE_STYLE_SHIFT
Definition autogenerated_propget.h:2270
#define PAGE_BREAK_AFTER_MASK
Definition autogenerated_propget.h:2504
#define CLIP_MASK
Definition autogenerated_propget.h:830
#define PAGE_BREAK_BEFORE_INDEX
Definition autogenerated_propget.h:2528
#define WHITE_SPACE_SHIFT
Definition autogenerated_propget.h:2947
#define BACKGROUND_REPEAT_MASK
Definition autogenerated_propget.h:207
#define MARGIN_TOP_INDEX
Definition autogenerated_propget.h:1996
#define FILL_OPACITY_INDEX
Definition autogenerated_propget.h:1331
#define WIDTH_MASK
Definition autogenerated_propget.h:3002
#define COLUMN_FILL_SHIFT
Definition autogenerated_propget.h:937
#define BOTTOM_SHIFT
Definition autogenerated_propget.h:642
#define BOX_SIZING_SHIFT
Definition autogenerated_propget.h:673
#define FONT_STYLE_INDEX
Definition autogenerated_propget.h:1589
#define BACKGROUND_ATTACHMENT_SHIFT
Definition autogenerated_propget.h:88
#define ORDER_INDEX
Definition autogenerated_propget.h:2181
#define ALIGN_SELF_INDEX
Definition autogenerated_propget.h:61
#define TEXT_TRANSFORM_INDEX
Definition autogenerated_propget.h:2806
#define BREAK_INSIDE_MASK
Definition autogenerated_propget.h:752
#define ORPHANS_SHIFT
Definition autogenerated_propget.h:2212
#define CAPTION_SIDE_INDEX
Definition autogenerated_propget.h:776
#define LIST_STYLE_TYPE_INDEX
Definition autogenerated_propget.h:1877
#define CLIP_SHIFT
Definition autogenerated_propget.h:829
#define FLEX_BASIS_SHIFT
Definition autogenerated_propget.h:1362
#define COLUMN_RULE_STYLE_INDEX
Definition autogenerated_propget.h:1022
#define BOTTOM_MASK
Definition autogenerated_propget.h:643
#define COLUMN_RULE_WIDTH_INDEX
Definition autogenerated_propget.h:1049
#define CONTENT_INDEX
Definition autogenerated_propget.h:1138
#define PAGE_BREAK_AFTER_SHIFT
Definition autogenerated_propget.h:2503
#define PAGE_BREAK_BEFORE_SHIFT
Definition autogenerated_propget.h:2529
#define UNICODE_BIDI_SHIFT
Definition autogenerated_propget.h:2864
#define COLOR_SHIFT
Definition autogenerated_propget.h:881
#define OPACITY_INDEX
Definition autogenerated_propget.h:2151
#define FLEX_BASIS_INDEX
Definition autogenerated_propget.h:1361
#define BORDER_BOTTOM_COLOR_INDEX
Definition autogenerated_propget.h:232
#define BORDER_TOP_STYLE_SHIFT
Definition autogenerated_propget.h:585
#define CURSOR_INDEX
Definition autogenerated_propget.h:1225
#define BORDER_COLLAPSE_MASK
Definition autogenerated_propget.h:322
#define VISIBILITY_INDEX
Definition autogenerated_propget.h:2920
#define MARGIN_TOP_SHIFT
Definition autogenerated_propget.h:1997
#define LIST_STYLE_IMAGE_SHIFT
Definition autogenerated_propget.h:1823
#define WIDOWS_INDEX
Definition autogenerated_propget.h:2972
#define CLEAR_INDEX
Definition autogenerated_propget.h:802
#define OUTLINE_COLOR_MASK
Definition autogenerated_propget.h:2241
#define FLEX_SHRINK_MASK
Definition autogenerated_propget.h:1450
#define TEXT_INDENT_SHIFT
Definition autogenerated_propget.h:2776
#define LETTER_SPACING_INDEX
Definition autogenerated_propget.h:1755
#define FONT_SIZE_SHIFT
Definition autogenerated_propget.h:1559
#define BORDER_BOTTOM_STYLE_MASK
Definition autogenerated_propget.h:263
#define LEFT_MASK
Definition autogenerated_propget.h:1726
#define VERTICAL_ALIGN_MASK
Definition autogenerated_propget.h:2891
#define CURSOR_MASK
Definition autogenerated_propget.h:1227
#define TOP_MASK
Definition autogenerated_propget.h:2834
#define BORDER_LEFT_WIDTH_MASK
Definition autogenerated_propget.h:404
#define TEXT_ALIGN_INDEX
Definition autogenerated_propget.h:2723
#define CURSOR_SHIFT
Definition autogenerated_propget.h:1226
#define UNICODE_BIDI_MASK
Definition autogenerated_propget.h:2865
#define COUNTER_INCREMENT_INDEX
Definition autogenerated_propget.h:1168
#define LINE_HEIGHT_MASK
Definition autogenerated_propget.h:1788
#define MAX_WIDTH_MASK
Definition autogenerated_propget.h:2060
#define OPACITY_SHIFT
Definition autogenerated_propget.h:2152
#define DIRECTION_INDEX
Definition autogenerated_propget.h:1253
#define CAPTION_SIDE_MASK
Definition autogenerated_propget.h:778
#define PADDING_BOTTOM_SHIFT
Definition autogenerated_propget.h:2379
#define STROKE_OPACITY_MASK
Definition autogenerated_propget.h:2669
#define OVERFLOW_X_MASK
Definition autogenerated_propget.h:2328
#define LIST_STYLE_TYPE_SHIFT
Definition autogenerated_propget.h:1878
#define QUOTES_MASK
Definition autogenerated_propget.h:2610
#define FONT_VARIANT_MASK
Definition autogenerated_propget.h:1617
#define MARGIN_TOP_MASK
Definition autogenerated_propget.h:1998
#define COLUMN_WIDTH_MASK
Definition autogenerated_propget.h:1109
#define COLUMN_RULE_WIDTH_MASK
Definition autogenerated_propget.h:1051
#define COLUMN_SPAN_SHIFT
Definition autogenerated_propget.h:1082
#define POSITION_SHIFT
Definition autogenerated_propget.h:2583
#define FLEX_WRAP_SHIFT
Definition autogenerated_propget.h:1479
#define MAX_HEIGHT_INDEX
Definition autogenerated_propget.h:2027
#define BACKGROUND_IMAGE_INDEX
Definition autogenerated_propget.h:142
#define OUTLINE_COLOR_INDEX
Definition autogenerated_propget.h:2239
#define BREAK_INSIDE_SHIFT
Definition autogenerated_propget.h:751
#define COUNTER_RESET_MASK
Definition autogenerated_propget.h:1199
#define JUSTIFY_CONTENT_SHIFT
Definition autogenerated_propget.h:1699
#define MIN_HEIGHT_MASK
Definition autogenerated_propget.h:2091
#define FONT_WEIGHT_MASK
Definition autogenerated_propget.h:1643
#define COLUMN_GAP_INDEX
Definition autogenerated_propget.h:962
#define FONT_VARIANT_SHIFT
Definition autogenerated_propget.h:1616
#define FONT_VARIANT_INDEX
Definition autogenerated_propget.h:1615
#define ALIGN_ITEMS_INDEX
Definition autogenerated_propget.h:35
#define OVERFLOW_X_INDEX
Definition autogenerated_propget.h:2326
#define ALIGN_ITEMS_MASK
Definition autogenerated_propget.h:37
#define BREAK_AFTER_INDEX
Definition autogenerated_propget.h:698
#define BORDER_LEFT_STYLE_SHIFT
Definition autogenerated_propget.h:376
#define LIST_STYLE_POSITION_MASK
Definition autogenerated_propget.h:1852
#define OVERFLOW_Y_INDEX
Definition autogenerated_propget.h:2352
#define BACKGROUND_IMAGE_MASK
Definition autogenerated_propget.h:144
#define HEIGHT_MASK
Definition autogenerated_propget.h:1669
#define BORDER_BOTTOM_STYLE_SHIFT
Definition autogenerated_propget.h:262
#define VERTICAL_ALIGN_INDEX
Definition autogenerated_propget.h:2889
#define WORD_SPACING_MASK
Definition autogenerated_propget.h:3033
#define COLUMN_WIDTH_SHIFT
Definition autogenerated_propget.h:1108
#define FONT_FAMILY_SHIFT
Definition autogenerated_propget.h:1531
#define BORDER_RIGHT_STYLE_SHIFT
Definition autogenerated_propget.h:464
#define WIDOWS_SHIFT
Definition autogenerated_propget.h:2973
#define TEXT_INDENT_MASK
Definition autogenerated_propget.h:2777
#define OUTLINE_WIDTH_SHIFT
Definition autogenerated_propget.h:2296
#define FLEX_DIRECTION_SHIFT
Definition autogenerated_propget.h:1393
#define MIN_WIDTH_SHIFT
Definition autogenerated_propget.h:2121
#define MIN_HEIGHT_SHIFT
Definition autogenerated_propget.h:2090
#define FLOAT_SHIFT
Definition autogenerated_propget.h:1505
#define OUTLINE_COLOR_SHIFT
Definition autogenerated_propget.h:2240
#define BORDER_LEFT_COLOR_INDEX
Definition autogenerated_propget.h:346
#define TEXT_ALIGN_MASK
Definition autogenerated_propget.h:2725
#define ORDER_MASK
Definition autogenerated_propget.h:2183
#define BORDER_LEFT_STYLE_INDEX
Definition autogenerated_propget.h:375
#define BORDER_RIGHT_STYLE_MASK
Definition autogenerated_propget.h:465
#define ALIGN_ITEMS_SHIFT
Definition autogenerated_propget.h:36
#define BORDER_LEFT_WIDTH_SHIFT
Definition autogenerated_propget.h:403
#define LETTER_SPACING_SHIFT
Definition autogenerated_propget.h:1756
#define LETTER_SPACING_MASK
Definition autogenerated_propget.h:1757
#define BORDER_RIGHT_COLOR_SHIFT
Definition autogenerated_propget.h:435
#define FILL_OPACITY_MASK
Definition autogenerated_propget.h:1333
#define PAGE_BREAK_INSIDE_INDEX
Definition autogenerated_propget.h:2555
#define FONT_FAMILY_MASK
Definition autogenerated_propget.h:1532
#define BORDER_TOP_COLOR_INDEX
Definition autogenerated_propget.h:556
#define PADDING_RIGHT_MASK
Definition autogenerated_propget.h:2442
#define BORDER_BOTTOM_WIDTH_INDEX
Definition autogenerated_propget.h:288
#define BREAK_INSIDE_INDEX
Definition autogenerated_propget.h:750
#define LIST_STYLE_TYPE_MASK
Definition autogenerated_propget.h:1879
#define FLEX_WRAP_INDEX
Definition autogenerated_propget.h:1478
#define EMPTY_CELLS_INDEX
Definition autogenerated_propget.h:1305
#define MARGIN_RIGHT_SHIFT
Definition autogenerated_propget.h:1966
#define WRITING_MODE_INDEX
Definition autogenerated_propget.h:3062
#define LINE_HEIGHT_INDEX
Definition autogenerated_propget.h:1786
#define PADDING_RIGHT_INDEX
Definition autogenerated_propget.h:2440
#define BORDER_TOP_COLOR_SHIFT
Definition autogenerated_propget.h:557
#define COLUMN_RULE_WIDTH_SHIFT
Definition autogenerated_propget.h:1050
#define BORDER_RIGHT_WIDTH_SHIFT
Definition autogenerated_propget.h:491
#define BREAK_BEFORE_SHIFT
Definition autogenerated_propget.h:725
#define FLEX_DIRECTION_INDEX
Definition autogenerated_propget.h:1392
#define MARGIN_BOTTOM_MASK
Definition autogenerated_propget.h:1905
#define FLEX_SHRINK_SHIFT
Definition autogenerated_propget.h:1449
#define Z_INDEX_MASK
Definition autogenerated_propget.h:3090
#define TEXT_DECORATION_INDEX
Definition autogenerated_propget.h:2749
#define FLOAT_MASK
Definition autogenerated_propget.h:1506
#define PAGE_BREAK_INSIDE_MASK
Definition autogenerated_propget.h:2557
#define BACKGROUND_POSITION_MASK
Definition autogenerated_propget.h:172
#define BORDER_TOP_STYLE_INDEX
Definition autogenerated_propget.h:584
#define ORDER_SHIFT
Definition autogenerated_propget.h:2182
#define COLUMN_RULE_STYLE_MASK
Definition autogenerated_propget.h:1024
#define BACKGROUND_COLOR_SHIFT
Definition autogenerated_propget.h:115
#define FLEX_DIRECTION_MASK
Definition autogenerated_propget.h:1394
#define WRITING_MODE_MASK
Definition autogenerated_propget.h:3064
#define Z_INDEX_INDEX
Definition autogenerated_propget.h:3088
#define COLUMN_RULE_COLOR_SHIFT
Definition autogenerated_propget.h:994
#define QUOTES_INDEX
Definition autogenerated_propget.h:2608
#define OVERFLOW_Y_MASK
Definition autogenerated_propget.h:2354
#define TEXT_DECORATION_MASK
Definition autogenerated_propget.h:2751
#define QUOTES_SHIFT
Definition autogenerated_propget.h:2609
#define CAPTION_SIDE_SHIFT
Definition autogenerated_propget.h:777
#define ORPHANS_MASK
Definition autogenerated_propget.h:2213
#define BACKGROUND_COLOR_INDEX
Definition autogenerated_propget.h:114
#define PADDING_LEFT_INDEX
Definition autogenerated_propget.h:2409
#define HEIGHT_INDEX
Definition autogenerated_propget.h:1667
#define POSITION_MASK
Definition autogenerated_propget.h:2584
#define EMPTY_CELLS_MASK
Definition autogenerated_propget.h:1307
#define OUTLINE_STYLE_MASK
Definition autogenerated_propget.h:2271
#define MAX_WIDTH_SHIFT
Definition autogenerated_propget.h:2059
#define JUSTIFY_CONTENT_MASK
Definition autogenerated_propget.h:1700
#define BORDER_TOP_COLOR_MASK
Definition autogenerated_propget.h:558
#define LIST_STYLE_IMAGE_MASK
Definition autogenerated_propget.h:1824
#define FONT_FAMILY_INDEX
Definition autogenerated_propget.h:1530
#define ORPHANS_INDEX
Definition autogenerated_propget.h:2211
#define BACKGROUND_ATTACHMENT_MASK
Definition autogenerated_propget.h:89
#define DIRECTION_MASK
Definition autogenerated_propget.h:1255
#define TEXT_DECORATION_SHIFT
Definition autogenerated_propget.h:2750
#define COLUMN_COUNT_MASK
Definition autogenerated_propget.h:910
#define BORDER_LEFT_COLOR_MASK
Definition autogenerated_propget.h:348
#define PADDING_BOTTOM_MASK
Definition autogenerated_propget.h:2380
#define BOTTOM_INDEX
Definition autogenerated_propget.h:641
#define FONT_STYLE_MASK
Definition autogenerated_propget.h:1591
#define BORDER_TOP_WIDTH_MASK
Definition autogenerated_propget.h:612
#define PAGE_BREAK_AFTER_INDEX
Definition autogenerated_propget.h:2502
#define TEXT_TRANSFORM_SHIFT
Definition autogenerated_propget.h:2807
#define CLIP_INDEX
Definition autogenerated_propget.h:828
#define FILL_OPACITY_SHIFT
Definition autogenerated_propget.h:1332
#define CLEAR_MASK
Definition autogenerated_propget.h:804
#define BORDER_RIGHT_WIDTH_MASK
Definition autogenerated_propget.h:492
#define BACKGROUND_POSITION_SHIFT
Definition autogenerated_propget.h:171
#define COLUMN_GAP_MASK
Definition autogenerated_propget.h:964
#define COLUMN_SPAN_MASK
Definition autogenerated_propget.h:1083
#define BREAK_AFTER_MASK
Definition autogenerated_propget.h:700
#define COLUMN_COUNT_SHIFT
Definition autogenerated_propget.h:909
#define TEXT_INDENT_INDEX
Definition autogenerated_propget.h:2775
#define BREAK_AFTER_SHIFT
Definition autogenerated_propget.h:699
#define OPACITY_MASK
Definition autogenerated_propget.h:2153
#define BACKGROUND_IMAGE_SHIFT
Definition autogenerated_propget.h:143
#define BACKGROUND_COLOR_MASK
Definition autogenerated_propget.h:116
#define MARGIN_RIGHT_MASK
Definition autogenerated_propget.h:1967
#define BORDER_COLLAPSE_INDEX
Definition autogenerated_propget.h:320
#define LIST_STYLE_POSITION_INDEX
Definition autogenerated_propget.h:1850
#define HEIGHT_SHIFT
Definition autogenerated_propget.h:1668
#define BACKGROUND_ATTACHMENT_INDEX
Definition autogenerated_propget.h:87
#define COLUMN_FILL_INDEX
Definition autogenerated_propget.h:936
#define POSITION_INDEX
Definition autogenerated_propget.h:2582
unit
Definition bytecode.h:38
int32_t css_fixed
Definition fpmath.h:23
@ CSS_MAX_WIDTH_SET
Definition properties.h:672
@ CSS_FILL_OPACITY_SET
Definition properties.h:458
@ CSS_FLEX_GROW_SET
Definition properties.h:478
@ CSS_STROKE_OPACITY_SET
Definition properties.h:792
@ CSS_RIGHT_SET
Definition properties.h:786
@ CSS_COLUMN_GAP_SET
Definition properties.h:333
@ CSS_BACKGROUND_POSITION_SET
Definition properties.h:198
@ CSS_BORDER_WIDTH_WIDTH
Definition properties.h:245
@ CSS_HEIGHT_SET
Definition properties.h:556
@ CSS_PADDING_SET
Definition properties.h:741
@ CSS_BORDER_SPACING_SET
Definition properties.h:217
@ CSS_MAX_HEIGHT_SET
Definition properties.h:666
@ CSS_COLUMN_RULE_WIDTH_WIDTH
Definition properties.h:362
@ CSS_OUTLINE_WIDTH_WIDTH
Definition properties.h:723
@ CSS_WORD_SPACING_SET
Definition properties.h:891
@ CSS_VERTICAL_ALIGN_SET
Definition properties.h:859
@ CSS_WIDTH_SET
Definition properties.h:885
@ CSS_FLEX_SHRINK_SET
Definition properties.h:483
@ CSS_MARGIN_SET
Definition properties.h:660
@ CSS_MIN_WIDTH_SET
Definition properties.h:684
@ CSS_LEFT_SET
Definition properties.h:572
@ CSS_OPACITY_SET
Definition properties.h:690
@ CSS_OUTLINE_COLOR_COLOR
Definition properties.h:700
@ CSS_TOP_SET
Definition properties.h:838
@ CSS_LETTER_SPACING_SET
Definition properties.h:578
@ CSS_FLEX_BASIS_SET
Definition properties.h:463
@ CSS_LINE_HEIGHT_DIMENSION
Definition properties.h:585
@ CSS_LINE_HEIGHT_NUMBER
Definition properties.h:584
@ CSS_BOTTOM_SET
Definition properties.h:250
@ CSS_FONT_SIZE_DIMENSION
Definition properties.h:521
@ CSS_TEXT_INDENT_SET
Definition properties.h:825
@ CSS_MIN_HEIGHT_SET
Definition properties.h:678
@ CSS_CONTENT_SET
Definition properties.h:381
@ CSS_CLIP_RECT
Definition properties.h:311
@ CSS_ORDER_SET
Definition properties.h:695
@ CSS_COLUMN_WIDTH_SET
Definition properties.h:373
Definition i_video.h:141
Definition computed.h:32
css_unit tunit
Definition computed.h:38
bool right_auto
Definition computed.h:44
css_fixed left
Definition computed.h:36
css_fixed right
Definition computed.h:34
css_fixed bottom
Definition computed.h:35
bool bottom_auto
Definition computed.h:45
bool left_auto
Definition computed.h:46
css_unit lunit
Definition computed.h:41
css_unit bunit
Definition computed.h:40
css_unit runit
Definition computed.h:39
css_fixed top
Definition computed.h:33
bool top_auto
Definition computed.h:43
Definition computed.h:62
Definition computed.h:27
css_fixed border_spacing_a
Definition autogenerated_computed.h:219
css_fixed clip_d
Definition autogenerated_computed.h:227
css_fixed border_top_width
Definition autogenerated_computed.h:222
css_fixed top
Definition autogenerated_computed.h:264
css_fixed opacity
Definition autogenerated_computed.h:252
css_fixed width
Definition autogenerated_computed.h:267
css_fixed min_width
Definition autogenerated_computed.h:251
css_fixed bottom
Definition autogenerated_computed.h:223
css_color border_top_color
Definition autogenerated_computed.h:221
css_fixed border_left_width
Definition autogenerated_computed.h:216
css_fixed padding_top
Definition autogenerated_computed.h:260
css_fixed vertical_align
Definition autogenerated_computed.h:265
css_color column_rule_color
Definition autogenerated_computed.h:231
css_color outline_color
Definition autogenerated_computed.h:255
css_fixed background_position_a
Definition autogenerated_computed.h:211
css_fixed height
Definition autogenerated_computed.h:239
css_fixed margin_bottom
Definition autogenerated_computed.h:244
css_fixed max_width
Definition autogenerated_computed.h:249
css_fixed text_indent
Definition autogenerated_computed.h:263
css_fixed right
Definition autogenerated_computed.h:261
css_fixed flex_shrink
Definition autogenerated_computed.h:237
css_fixed border_right_width
Definition autogenerated_computed.h:218
int32_t orphans
Definition autogenerated_computed.h:254
css_fixed outline_width
Definition autogenerated_computed.h:256
css_fixed letter_spacing
Definition autogenerated_computed.h:241
css_fixed min_height
Definition autogenerated_computed.h:250
css_fixed background_position_b
Definition autogenerated_computed.h:212
lwc_string * background_image
Definition autogenerated_computed.h:210
css_fixed margin_left
Definition autogenerated_computed.h:245
css_fixed margin_top
Definition autogenerated_computed.h:247
int32_t z_index
Definition autogenerated_computed.h:269
css_fixed clip_a
Definition autogenerated_computed.h:224
lwc_string * list_style_image
Definition autogenerated_computed.h:243
css_fixed stroke_opacity
Definition autogenerated_computed.h:262
css_fixed margin_right
Definition autogenerated_computed.h:246
css_fixed left
Definition autogenerated_computed.h:240
css_fixed padding_right
Definition autogenerated_computed.h:259
css_fixed padding_bottom
Definition autogenerated_computed.h:257
css_fixed border_spacing_b
Definition autogenerated_computed.h:220
int32_t order
Definition autogenerated_computed.h:253
css_fixed word_spacing
Definition autogenerated_computed.h:268
css_color border_bottom_color
Definition autogenerated_computed.h:213
css_fixed font_size
Definition autogenerated_computed.h:238
css_fixed fill_opacity
Definition autogenerated_computed.h:234
css_fixed padding_left
Definition autogenerated_computed.h:258
css_fixed border_bottom_width
Definition autogenerated_computed.h:214
css_color color
Definition autogenerated_computed.h:228
css_fixed column_width
Definition autogenerated_computed.h:233
css_fixed clip_c
Definition autogenerated_computed.h:226
css_fixed column_rule_width
Definition autogenerated_computed.h:232
css_fixed column_gap
Definition autogenerated_computed.h:230
int32_t widows
Definition autogenerated_computed.h:266
css_fixed flex_basis
Definition autogenerated_computed.h:235
css_fixed flex_grow
Definition autogenerated_computed.h:236
css_color background_color
Definition autogenerated_computed.h:209
uint32_t bits[15]
Definition autogenerated_computed.h:207
css_color border_right_color
Definition autogenerated_computed.h:217
int32_t column_count
Definition autogenerated_computed.h:229
css_fixed max_height
Definition autogenerated_computed.h:248
css_color border_left_color
Definition autogenerated_computed.h:215
css_fixed line_height
Definition autogenerated_computed.h:242
css_fixed clip_b
Definition autogenerated_computed.h:225
Definition autogenerated_computed.h:272
css_computed_counter * counter_increment
Definition autogenerated_computed.h:276
lwc_string ** cursor
Definition autogenerated_computed.h:278
lwc_string ** quotes
Definition autogenerated_computed.h:280
lwc_string ** font_family
Definition autogenerated_computed.h:279
css_computed_counter * counter_reset
Definition autogenerated_computed.h:277
struct css_computed_style_i i
Definition autogenerated_computed.h:273
css_computed_content_item * content
Definition autogenerated_computed.h:275
Definition libwapcaplet.h:41