Skip to content

Commit 458ae34

Browse files
mbolivar-nordiccarlescufi
authored andcommitted
util.h: clean up UTIL_INC_x and UTIL_DEC_x
Move the repetitive definitions used to add and subtract 1 at preprocessor time into their own file. Make the behavior consistent, so that you can invoke UTIL_INC(x) for any x you can invoke UTIL_DEC(x) on. Signed-off-by: Martí Bolívar <[email protected]>
1 parent 3c0124a commit 458ae34

File tree

2 files changed

+554
-368
lines changed

2 files changed

+554
-368
lines changed

include/sys/util.h

Lines changed: 10 additions & 368 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
*/
2020
#include <stdbool.h>
2121

22+
#include "util_internal.h"
23+
2224
#ifndef _ASMLANGUAGE
2325

2426
#include <zephyr/types.h>
@@ -511,376 +513,16 @@ uint8_t u8_to_dec(char *buf, uint8_t buflen, uint8_t value);
511513
#define UTIL_CAT(a, ...) UTIL_PRIMITIVE_CAT(a, __VA_ARGS__)
512514
#define UTIL_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__
513515

516+
/*
517+
* UTIL_INC(x) for an integer literal x from 0 to 255 expands to an
518+
* integer literal whose value is x+1.
519+
*
520+
* Similarly, UTIL_DEC(x) is (x-1) as an integer literal.
521+
*
522+
* See UTIL_DEC_<x> and UTIL_DEC_<x> in util_internal.h.
523+
*/
514524
#define UTIL_INC(x) UTIL_PRIMITIVE_CAT(UTIL_INC_, x)
515-
#define UTIL_INC_0 1
516-
#define UTIL_INC_1 2
517-
#define UTIL_INC_2 3
518-
#define UTIL_INC_3 4
519-
#define UTIL_INC_4 5
520-
#define UTIL_INC_5 6
521-
#define UTIL_INC_6 7
522-
#define UTIL_INC_7 8
523-
#define UTIL_INC_8 9
524-
#define UTIL_INC_9 10
525-
#define UTIL_INC_10 11
526-
#define UTIL_INC_11 12
527-
#define UTIL_INC_12 13
528-
#define UTIL_INC_13 14
529-
#define UTIL_INC_14 15
530-
#define UTIL_INC_15 16
531-
#define UTIL_INC_16 17
532-
#define UTIL_INC_17 18
533-
#define UTIL_INC_18 19
534-
#define UTIL_INC_19 20
535-
#define UTIL_INC_20 21
536-
#define UTIL_INC_21 22
537-
#define UTIL_INC_22 23
538-
#define UTIL_INC_23 24
539-
#define UTIL_INC_24 25
540-
#define UTIL_INC_25 26
541-
#define UTIL_INC_26 27
542-
#define UTIL_INC_27 28
543-
#define UTIL_INC_28 29
544-
#define UTIL_INC_29 30
545-
#define UTIL_INC_30 31
546-
#define UTIL_INC_31 32
547-
#define UTIL_INC_32 33
548-
#define UTIL_INC_33 34
549-
#define UTIL_INC_34 35
550-
#define UTIL_INC_35 36
551-
#define UTIL_INC_36 37
552-
#define UTIL_INC_37 38
553-
#define UTIL_INC_38 39
554-
#define UTIL_INC_39 40
555-
#define UTIL_INC_40 41
556-
#define UTIL_INC_41 42
557-
#define UTIL_INC_42 43
558-
#define UTIL_INC_43 44
559-
#define UTIL_INC_44 45
560-
#define UTIL_INC_45 46
561-
#define UTIL_INC_46 47
562-
#define UTIL_INC_47 48
563-
#define UTIL_INC_48 49
564-
#define UTIL_INC_49 50
565-
#define UTIL_INC_50 51
566-
#define UTIL_INC_51 52
567-
#define UTIL_INC_52 53
568-
#define UTIL_INC_53 54
569-
#define UTIL_INC_54 55
570-
#define UTIL_INC_55 56
571-
#define UTIL_INC_56 57
572-
#define UTIL_INC_57 58
573-
#define UTIL_INC_58 59
574-
#define UTIL_INC_59 60
575-
#define UTIL_INC_50 51
576-
#define UTIL_INC_51 52
577-
#define UTIL_INC_52 53
578-
#define UTIL_INC_53 54
579-
#define UTIL_INC_54 55
580-
#define UTIL_INC_55 56
581-
#define UTIL_INC_56 57
582-
#define UTIL_INC_57 58
583-
#define UTIL_INC_58 59
584-
#define UTIL_INC_59 60
585-
#define UTIL_INC_60 61
586-
#define UTIL_INC_61 62
587-
#define UTIL_INC_62 63
588-
#define UTIL_INC_63 64
589-
#define UTIL_INC_64 65
590-
#define UTIL_INC_65 66
591-
#define UTIL_INC_66 67
592-
#define UTIL_INC_67 68
593-
#define UTIL_INC_68 69
594-
#define UTIL_INC_69 70
595-
#define UTIL_INC_70 71
596-
#define UTIL_INC_71 72
597-
#define UTIL_INC_72 73
598-
#define UTIL_INC_73 74
599-
#define UTIL_INC_74 75
600-
#define UTIL_INC_75 76
601-
#define UTIL_INC_76 77
602-
#define UTIL_INC_77 78
603-
#define UTIL_INC_78 79
604-
#define UTIL_INC_79 80
605-
#define UTIL_INC_80 81
606-
#define UTIL_INC_81 82
607-
#define UTIL_INC_82 83
608-
#define UTIL_INC_83 84
609-
#define UTIL_INC_84 85
610-
#define UTIL_INC_85 86
611-
#define UTIL_INC_86 87
612-
#define UTIL_INC_87 88
613-
#define UTIL_INC_88 89
614-
#define UTIL_INC_89 90
615-
#define UTIL_INC_90 91
616-
#define UTIL_INC_91 92
617-
#define UTIL_INC_92 93
618-
#define UTIL_INC_93 94
619-
#define UTIL_INC_94 95
620-
#define UTIL_INC_95 96
621-
#define UTIL_INC_96 97
622-
#define UTIL_INC_97 98
623-
#define UTIL_INC_98 99
624-
#define UTIL_INC_99 100
625-
626525
#define UTIL_DEC(x) UTIL_PRIMITIVE_CAT(UTIL_DEC_, x)
627-
#define UTIL_DEC_0 0
628-
#define UTIL_DEC_1 0
629-
#define UTIL_DEC_2 1
630-
#define UTIL_DEC_3 2
631-
#define UTIL_DEC_4 3
632-
#define UTIL_DEC_5 4
633-
#define UTIL_DEC_6 5
634-
#define UTIL_DEC_7 6
635-
#define UTIL_DEC_8 7
636-
#define UTIL_DEC_9 8
637-
#define UTIL_DEC_10 9
638-
#define UTIL_DEC_11 10
639-
#define UTIL_DEC_12 11
640-
#define UTIL_DEC_13 12
641-
#define UTIL_DEC_14 13
642-
#define UTIL_DEC_15 14
643-
#define UTIL_DEC_16 15
644-
#define UTIL_DEC_17 16
645-
#define UTIL_DEC_18 17
646-
#define UTIL_DEC_19 18
647-
#define UTIL_DEC_20 19
648-
#define UTIL_DEC_21 20
649-
#define UTIL_DEC_22 21
650-
#define UTIL_DEC_23 22
651-
#define UTIL_DEC_24 23
652-
#define UTIL_DEC_25 24
653-
#define UTIL_DEC_26 25
654-
#define UTIL_DEC_27 26
655-
#define UTIL_DEC_28 27
656-
#define UTIL_DEC_29 28
657-
#define UTIL_DEC_30 29
658-
#define UTIL_DEC_31 30
659-
#define UTIL_DEC_32 31
660-
#define UTIL_DEC_33 32
661-
#define UTIL_DEC_34 33
662-
#define UTIL_DEC_35 34
663-
#define UTIL_DEC_36 35
664-
#define UTIL_DEC_37 36
665-
#define UTIL_DEC_38 37
666-
#define UTIL_DEC_39 38
667-
#define UTIL_DEC_40 39
668-
#define UTIL_DEC_41 40
669-
#define UTIL_DEC_42 41
670-
#define UTIL_DEC_43 42
671-
#define UTIL_DEC_44 43
672-
#define UTIL_DEC_45 44
673-
#define UTIL_DEC_46 45
674-
#define UTIL_DEC_47 46
675-
#define UTIL_DEC_48 47
676-
#define UTIL_DEC_49 48
677-
#define UTIL_DEC_50 49
678-
#define UTIL_DEC_51 50
679-
#define UTIL_DEC_52 51
680-
#define UTIL_DEC_53 52
681-
#define UTIL_DEC_54 53
682-
#define UTIL_DEC_55 54
683-
#define UTIL_DEC_56 55
684-
#define UTIL_DEC_57 56
685-
#define UTIL_DEC_58 57
686-
#define UTIL_DEC_59 58
687-
#define UTIL_DEC_60 59
688-
#define UTIL_DEC_61 60
689-
#define UTIL_DEC_62 61
690-
#define UTIL_DEC_63 62
691-
#define UTIL_DEC_64 63
692-
#define UTIL_DEC_65 64
693-
#define UTIL_DEC_66 65
694-
#define UTIL_DEC_67 66
695-
#define UTIL_DEC_68 67
696-
#define UTIL_DEC_69 68
697-
#define UTIL_DEC_70 69
698-
#define UTIL_DEC_71 70
699-
#define UTIL_DEC_72 71
700-
#define UTIL_DEC_73 72
701-
#define UTIL_DEC_74 73
702-
#define UTIL_DEC_75 74
703-
#define UTIL_DEC_76 75
704-
#define UTIL_DEC_77 76
705-
#define UTIL_DEC_78 77
706-
#define UTIL_DEC_79 78
707-
#define UTIL_DEC_80 79
708-
#define UTIL_DEC_81 80
709-
#define UTIL_DEC_82 81
710-
#define UTIL_DEC_83 82
711-
#define UTIL_DEC_84 83
712-
#define UTIL_DEC_85 84
713-
#define UTIL_DEC_86 85
714-
#define UTIL_DEC_87 86
715-
#define UTIL_DEC_88 87
716-
#define UTIL_DEC_89 88
717-
#define UTIL_DEC_90 89
718-
#define UTIL_DEC_91 90
719-
#define UTIL_DEC_92 91
720-
#define UTIL_DEC_93 92
721-
#define UTIL_DEC_94 93
722-
#define UTIL_DEC_95 94
723-
#define UTIL_DEC_96 95
724-
#define UTIL_DEC_97 96
725-
#define UTIL_DEC_98 97
726-
#define UTIL_DEC_99 98
727-
#define UTIL_DEC_100 99
728-
#define UTIL_DEC_101 100
729-
#define UTIL_DEC_102 101
730-
#define UTIL_DEC_103 102
731-
#define UTIL_DEC_104 103
732-
#define UTIL_DEC_105 104
733-
#define UTIL_DEC_106 105
734-
#define UTIL_DEC_107 106
735-
#define UTIL_DEC_108 107
736-
#define UTIL_DEC_109 108
737-
#define UTIL_DEC_110 109
738-
#define UTIL_DEC_111 110
739-
#define UTIL_DEC_112 111
740-
#define UTIL_DEC_113 112
741-
#define UTIL_DEC_114 113
742-
#define UTIL_DEC_115 114
743-
#define UTIL_DEC_116 115
744-
#define UTIL_DEC_117 116
745-
#define UTIL_DEC_118 117
746-
#define UTIL_DEC_119 118
747-
#define UTIL_DEC_120 119
748-
#define UTIL_DEC_121 120
749-
#define UTIL_DEC_122 121
750-
#define UTIL_DEC_123 122
751-
#define UTIL_DEC_124 123
752-
#define UTIL_DEC_125 124
753-
#define UTIL_DEC_126 125
754-
#define UTIL_DEC_127 126
755-
#define UTIL_DEC_128 127
756-
#define UTIL_DEC_129 128
757-
#define UTIL_DEC_130 129
758-
#define UTIL_DEC_131 130
759-
#define UTIL_DEC_132 131
760-
#define UTIL_DEC_133 132
761-
#define UTIL_DEC_134 133
762-
#define UTIL_DEC_135 134
763-
#define UTIL_DEC_136 135
764-
#define UTIL_DEC_137 136
765-
#define UTIL_DEC_138 137
766-
#define UTIL_DEC_139 138
767-
#define UTIL_DEC_140 139
768-
#define UTIL_DEC_141 140
769-
#define UTIL_DEC_142 141
770-
#define UTIL_DEC_143 142
771-
#define UTIL_DEC_144 143
772-
#define UTIL_DEC_145 144
773-
#define UTIL_DEC_146 145
774-
#define UTIL_DEC_147 146
775-
#define UTIL_DEC_148 147
776-
#define UTIL_DEC_149 148
777-
#define UTIL_DEC_150 149
778-
#define UTIL_DEC_151 150
779-
#define UTIL_DEC_152 151
780-
#define UTIL_DEC_153 152
781-
#define UTIL_DEC_154 153
782-
#define UTIL_DEC_155 154
783-
#define UTIL_DEC_156 155
784-
#define UTIL_DEC_157 156
785-
#define UTIL_DEC_158 157
786-
#define UTIL_DEC_159 158
787-
#define UTIL_DEC_160 159
788-
#define UTIL_DEC_161 160
789-
#define UTIL_DEC_162 161
790-
#define UTIL_DEC_163 162
791-
#define UTIL_DEC_164 163
792-
#define UTIL_DEC_165 164
793-
#define UTIL_DEC_166 165
794-
#define UTIL_DEC_167 166
795-
#define UTIL_DEC_168 167
796-
#define UTIL_DEC_169 168
797-
#define UTIL_DEC_170 169
798-
#define UTIL_DEC_171 170
799-
#define UTIL_DEC_172 171
800-
#define UTIL_DEC_173 172
801-
#define UTIL_DEC_174 173
802-
#define UTIL_DEC_175 174
803-
#define UTIL_DEC_176 175
804-
#define UTIL_DEC_177 176
805-
#define UTIL_DEC_178 177
806-
#define UTIL_DEC_179 178
807-
#define UTIL_DEC_180 179
808-
#define UTIL_DEC_181 180
809-
#define UTIL_DEC_182 181
810-
#define UTIL_DEC_183 182
811-
#define UTIL_DEC_184 183
812-
#define UTIL_DEC_185 184
813-
#define UTIL_DEC_186 185
814-
#define UTIL_DEC_187 186
815-
#define UTIL_DEC_188 187
816-
#define UTIL_DEC_189 188
817-
#define UTIL_DEC_190 189
818-
#define UTIL_DEC_191 190
819-
#define UTIL_DEC_192 191
820-
#define UTIL_DEC_193 192
821-
#define UTIL_DEC_194 193
822-
#define UTIL_DEC_195 194
823-
#define UTIL_DEC_196 195
824-
#define UTIL_DEC_197 196
825-
#define UTIL_DEC_198 197
826-
#define UTIL_DEC_199 198
827-
#define UTIL_DEC_200 199
828-
#define UTIL_DEC_201 200
829-
#define UTIL_DEC_202 201
830-
#define UTIL_DEC_203 202
831-
#define UTIL_DEC_204 203
832-
#define UTIL_DEC_205 204
833-
#define UTIL_DEC_206 205
834-
#define UTIL_DEC_207 206
835-
#define UTIL_DEC_208 207
836-
#define UTIL_DEC_209 208
837-
#define UTIL_DEC_210 209
838-
#define UTIL_DEC_211 210
839-
#define UTIL_DEC_212 211
840-
#define UTIL_DEC_213 212
841-
#define UTIL_DEC_214 213
842-
#define UTIL_DEC_215 214
843-
#define UTIL_DEC_216 215
844-
#define UTIL_DEC_217 216
845-
#define UTIL_DEC_218 217
846-
#define UTIL_DEC_219 218
847-
#define UTIL_DEC_220 219
848-
#define UTIL_DEC_221 220
849-
#define UTIL_DEC_222 221
850-
#define UTIL_DEC_223 222
851-
#define UTIL_DEC_224 223
852-
#define UTIL_DEC_225 224
853-
#define UTIL_DEC_226 225
854-
#define UTIL_DEC_227 226
855-
#define UTIL_DEC_228 227
856-
#define UTIL_DEC_229 228
857-
#define UTIL_DEC_230 229
858-
#define UTIL_DEC_231 230
859-
#define UTIL_DEC_232 231
860-
#define UTIL_DEC_233 232
861-
#define UTIL_DEC_234 233
862-
#define UTIL_DEC_235 234
863-
#define UTIL_DEC_236 235
864-
#define UTIL_DEC_237 236
865-
#define UTIL_DEC_238 237
866-
#define UTIL_DEC_239 238
867-
#define UTIL_DEC_240 239
868-
#define UTIL_DEC_241 240
869-
#define UTIL_DEC_242 241
870-
#define UTIL_DEC_243 242
871-
#define UTIL_DEC_244 243
872-
#define UTIL_DEC_245 244
873-
#define UTIL_DEC_246 245
874-
#define UTIL_DEC_247 246
875-
#define UTIL_DEC_248 247
876-
#define UTIL_DEC_249 248
877-
#define UTIL_DEC_250 249
878-
#define UTIL_DEC_251 250
879-
#define UTIL_DEC_252 251
880-
#define UTIL_DEC_253 252
881-
#define UTIL_DEC_254 253
882-
#define UTIL_DEC_255 254
883-
#define UTIL_DEC_256 255
884526

885527
#define UTIL_CHECK_N(x, n, ...) n
886528
#define UTIL_CHECK(...) UTIL_CHECK_N(__VA_ARGS__, 0,)

0 commit comments

Comments
 (0)