Commit | Line | Data |
---|---|---|
d056fbdf | 1 | .\" -*-nroff-*- |
c4ccbbf9 MW |
2 | .\" |
3 | .\" Manual for test-vector framework types | |
4 | .\" | |
5 | .\" (c) 2024 Straylight/Edgeware | |
6 | .\" | |
7 | . | |
8 | .\"----- Licensing notice --------------------------------------------------- | |
9 | .\" | |
10 | .\" This file is part of the mLib utilities library. | |
11 | .\" | |
12 | .\" mLib is free software: you can redistribute it and/or modify it under | |
13 | .\" the terms of the GNU Library General Public License as published by | |
14 | .\" the Free Software Foundation; either version 2 of the License, or (at | |
15 | .\" your option) any later version. | |
16 | .\" | |
17 | .\" mLib is distributed in the hope that it will be useful, but WITHOUT | |
18 | .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
19 | .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public | |
20 | .\" License for more details. | |
21 | .\" | |
22 | .\" You should have received a copy of the GNU Library General Public | |
23 | .\" License along with mLib. If not, write to the Free Software | |
24 | .\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | |
25 | .\" USA. | |
26 | . | |
27 | .\"-------------------------------------------------------------------------- | |
28 | .so ../defs.man \" @@@PRE@@@ | |
29 | . | |
30 | .\"-------------------------------------------------------------------------- | |
31 | .TH tvec-types 3mLib "11 March 2024" "Straylight/Edgeware" "mLib utilities library" | |
d056fbdf MW |
32 | .\" @tvty_int |
33 | .\" @tvty_uint | |
34 | .\" @tvty_float | |
35 | .\" @tvty_duration | |
36 | .\" @tvty_ienum | |
37 | .\" @tvty_uenum | |
38 | .\" @tvty_fenum | |
39 | .\" @tvty_penum | |
40 | .\" @tvty_flags | |
41 | .\" @tvty_char | |
42 | .\" @tvty_text | |
43 | .\" @tvty_bytes | |
44 | .\" @tvty_buffer | |
45 | . | |
46 | .\" @tvrange_schar | |
47 | .\" @tvrange_short | |
48 | .\" @tvrange_int | |
49 | .\" @tvrange_long | |
50 | .\" @tvrange_sbyte | |
51 | .\" @tvrange_i16 | |
52 | .\" @tvrange_i32 | |
53 | .\" @tvrange_uchar | |
54 | .\" @tvrange_ushort | |
55 | .\" @tvrange_uint | |
56 | .\" @tvrange_ulong | |
57 | .\" @tvrange_size | |
58 | .\" @tvrange_byte | |
59 | .\" @tvrange_u16 | |
60 | .\" @tvrange_u32 | |
61 | . | |
62 | .\" @tvflt_finite | |
63 | .\" @tvflt_nonneg | |
64 | . | |
65 | .\" @tvenum_bool | |
66 | .\" @tvenum_cmp | |
67 | . | |
68 | .\" @tvec_claimeq_int | |
69 | .\" @tvec_claimeq_uint | |
70 | .\" @tvec_claimeqish_float | |
71 | .\" @tvec_claimeq_float | |
72 | .\" @tvec_claimeq_ienum | |
73 | .\" @tvec_claimeq_uenum | |
74 | .\" @tvec_claimeq_fenum | |
75 | .\" @tvec_claimeq_penum | |
76 | .\" @tvec_claimeq_flags | |
77 | .\" @tvec_claimeq_char | |
78 | .\" @tvec_claimeq_text | |
79 | .\" @tvec_claimeq_textz | |
80 | .\" @tvec_claimeq_bytes | |
81 | .\" @TVEC_CLAIMEQ_INT | |
82 | .\" @TVEC_CLAIMEQ_UINT | |
83 | .\" @TVEC_CLAIMEQISH_FLOAT | |
84 | .\" @TVEC_CLAIMEQ_FLOAT | |
85 | .\" @TVEC_CLAIMEQ_IENUM | |
86 | .\" @TVEC_CLAIMEQ_UENUM | |
87 | .\" @TVEC_CLAIMEQ_FENUM | |
88 | .\" @TVEC_CLAIMEQ_PENUM | |
89 | .\" @TVEC_CLAIMEQ_FLAGS | |
90 | .\" @TVEC_CLAIMEQ_CHAR | |
91 | .\" @TVEC_CLAIMEQ_TEXT | |
92 | .\" @TVEC_CLAIMEQ_TEXTZ | |
93 | .\" @TVEC_CLAIMEQ_BYTES | |
94 | . | |
95 | .\" @tvec_parsedurunit | |
96 | .\" @tvec_alloctext | |
97 | .\" @tvec_allocbytes | |
98 | .\" @tvec_initbuffer | |
99 | .\" @tvec_allocbuffer | |
100 | . | |
c4ccbbf9 MW |
101 | .\"-------------------------------------------------------------------------- |
102 | .SH NAME | |
103 | tvec-types \- test vector framework provided register types | |
104 | . | |
105 | .\"-------------------------------------------------------------------------- | |
d056fbdf | 106 | .SH SYNOPSIS |
c4ccbbf9 | 107 | . |
d056fbdf | 108 | .nf |
b1a20bee | 109 | .B "#include <mLib/tvec-types.h>" |
d056fbdf MW |
110 | .PP |
111 | .B "const struct tvec_regty tvty_int, tvty_uint;" | |
112 | .PP | |
113 | .B "struct tvec_irange { long min, max; };" | |
114 | .B "struct tvec_urange { unsigned long min, max; };" | |
115 | .PP | |
116 | .ta 2n | |
117 | .B "const struct tvec_irange" | |
118 | .B " tvrange_schar, tvrange_short, tvrange_int, tvrange_long," | |
119 | .B " tvrange_sbyte, tvrange_i16, tvrange_i32;" | |
120 | .B "const struct tvec_urange" | |
121 | .B " tvrange_uchar, tvrange_ushort, tvrange_uint," | |
122 | .B " tvrange_ulong, tvrange_size," | |
123 | .B " tvrange_byte, tvrange_u16, tvrange_u32;" | |
124 | .PP | |
125 | .ta \w'\fBint tvec_claimeq_int('u | |
126 | .BI "int tvec_claimeq_int(struct tvec_state *" tv , | |
127 | .BI " long " i0 ", long " i1 , | |
128 | .BI " const char *" file ", unsigned " lno , | |
129 | .BI " const char *" expr ); | |
130 | .BI "int TVEC_CLAIMEQ_INT(struct tvec_state *" tv ", long " i0 ", long " i1 ); | |
131 | .ta \w'\fBint tvec_claimeq_uint('u | |
132 | .BI "int tvec_claimeq_uint(struct tvec_state *" tv , | |
133 | .BI " unsigned long " u0 ", unsigned long " u1 , | |
134 | .BI " const char *" file ", unsigned " lno , | |
135 | .BI " const char *" expr ); | |
136 | .ta \w'\fBint TVEC_CLAIMEQ_UINT('u | |
137 | .BI "int TVEC_CLAIMEQ_UINT(struct tvec_state *" tv , | |
138 | .BI " unsigned long " u0 ", unsigned long " u1 ); | |
139 | .PP | |
c4ccbbf9 MW |
140 | .B "const struct tvec_regty tvty_size;" |
141 | .PP | |
142 | .ta \w'\fBint tvec_claimeq_size('u | |
143 | .BI "int tvec_claimeq_size(struct tvec_state *" tv , | |
144 | .BI " unsigned long " sz0 ", unsigned long " sz1 , | |
145 | .BI " const char *" file ", unsigned " lno , | |
146 | .BI " const char *" expr ); | |
147 | .ta \w'\fBint TVEC_CLAIMEQ_SIZE('u | |
148 | .BI "int TVEC_CLAIMEQ_UINT(struct tvec_state *" tv , | |
149 | .BI " unsigned long " sz0 ", unsigned long " sz1 ); | |
150 | .PP | |
d056fbdf MW |
151 | .B "const struct tvec_regty tvty_float;" |
152 | .PP | |
153 | .ta 2n | |
154 | .B "struct tvec_floatinfo {" | |
155 | .B " unsigned f;" | |
156 | .B " double min, max;" | |
157 | .B " double delta;" | |
158 | .B "};" | |
159 | .B "#define TVFF_NOMIN ..." | |
160 | .B "#define TVFF_NOMAX ..." | |
161 | .B "#define TVFF_NANOK ..." | |
162 | .B "#define TVFF_EQMASK ..." | |
163 | .B "#define TVFF_EXACT ..." | |
164 | .B "#define TVFF_ABSDELTA ..." | |
165 | .B "#define TVFF_RELDELTA ..." | |
166 | .PP | |
167 | .B "const struct tvec_floatinfo tvflt_finite, tvflt_nonneg;" | |
168 | .PP | |
169 | .ta \w'\fBint tvec_claimeqish_float('u | |
170 | .BI "int tvec_claimeqish_float(struct tvec_state *" tv , | |
171 | .BI " double " f0 ", double " f1 , | |
172 | .BI " unsigned " f ", double " delta , | |
173 | .BI " const char *" file ", unsigned " lno , | |
174 | .BI " const char *" expr ); | |
175 | .ta \w'\fBint TVEC_CLAIMEQISH_FLOAT('u | |
176 | .BI "int TVEC_CLAIMEQISH_FLOAT(struct tvec_state *" tv , | |
177 | .BI " double " f0 ", double " f1 , | |
178 | .BI " unsigned " f ", double " delta ); | |
179 | .ta \w'\fBint tvec_claimeq_float('u | |
180 | .BI "int tvec_claimeq_float(struct tvec_state *" tv , | |
181 | .BI " double " f0 ", double " f1 , | |
182 | .BI " const char *" file ", unsigned " lno , | |
183 | .BI " const char *" expr ); | |
184 | .ta \w'\fBint TVEC_CLAIMEQ_FLOAT('u | |
185 | .BI "int TVEC_CLAIMEQ_FLOAT(struct tvec_state *" tv , | |
186 | .BI " double " f0 ", double " f1 ); | |
187 | .PP | |
188 | .B "const struct tvec_regty tvty_duration;" | |
189 | .PP | |
190 | .BI "int tvec_parsedurunit(double *" scale_out ", const char **" p_inout ); | |
191 | .PP | |
c4ccbbf9 MW |
192 | .ta \w'\fBint tvec_claimeqish_duration('u |
193 | .BI "int tvec_claimeqish_duration(struct tvec_state *" tv , | |
194 | .BI " double " t0 ", double " t1 , | |
195 | .BI " unsigned " f ", double " delta , | |
196 | .BI " const char *" file ", unsigned " lno , | |
197 | .BI " const char *" expr ); | |
198 | .ta \w'\fBint TVEC_CLAIMEQISH_DURATION('u | |
199 | .BI "int TVEC_CLAIMEQISH_DURATION(struct tvec_state *" tv , | |
200 | .BI " double " t0 ", double " t1 , | |
201 | .BI " unsigned " f ", double " delta ); | |
202 | .ta \w'\fBint tvec_claimeq_duration('u | |
203 | .BI "int tvec_claimeq_duration(struct tvec_state *" tv , | |
204 | .BI " double " t0 ", double " t1 , | |
205 | .BI " const char *" file ", unsigned " lno , | |
206 | .BI " const char *" expr ); | |
207 | .ta \w'\fBint TVEC_CLAIMEQ_DURATION('u | |
208 | .BI "int TVEC_CLAIMEQ_DURATION(struct tvec_state *" tv , | |
209 | .BI " double " t0 ", double " t1 ); | |
210 | .PP | |
d056fbdf MW |
211 | .B "const struct tvec_regty tvty_ienum, tvty_uenum, tvty_fenum, tvty_penum;" |
212 | .PP | |
213 | .B "struct tvec_iassoc { const char *tag; long i; };" | |
214 | .B "struct tvec_uassoc { const char *tag; unsigned long u; };" | |
215 | .B "struct tvec_fassoc { const char *tag; double f; };" | |
216 | .B "struct tvec_passoc { const char *tag; void *p; };" | |
217 | .B "#define TVEC_ENDENUM ..." | |
218 | .PP | |
219 | .ta 2n | |
220 | .B "struct tvec_ienuminfo {" | |
221 | .B " const char *name;" | |
222 | .B " const struct tvec_iassoc *av;" | |
223 | .B " const struct tvec_irange *ir;" | |
224 | .B "};" | |
225 | .B "struct tvec_uenuminfo {" | |
226 | .B " const char *name;" | |
227 | .B " const struct tvec_uassoc *av;" | |
228 | .B " const struct tvec_urange *ur;" | |
229 | .B "};" | |
230 | .B "struct tvec_fenuminfo {" | |
231 | .B " const char *name;" | |
232 | .B " const struct tvec_fassoc *av;" | |
233 | .B " const struct tvec_floatinfo *fi;" | |
234 | .B "};" | |
235 | .B "struct tvec_penuminfo {" | |
236 | .B " const char *name;" | |
237 | .B " const struct tvec_passoc *av;" | |
238 | .B "};" | |
239 | .B "const struct tvec_ienuminfo tvenum_bool;" | |
240 | .B "const struct tvec_ienuminfo tvenum_cmp;" | |
241 | .PP | |
242 | .ta \w'\fBint tvec_claimeq_ienum('u | |
243 | .BI "int tvec_claimeq_ienum(struct tvec_state *" tv , | |
244 | .BI " const struct tvec_uenuminfo *" ei , | |
245 | .BI " long " i0 ", long " i1 , | |
246 | .BI " const char *" file ", unsigned " lno , | |
247 | .BI " const char *" expr ); | |
248 | .ta \w'\fBint TVEC_CLAIMEQ_IENUM('u | |
249 | .BI "int TVEC_CLAIMEQ_IENUM(struct tvec_state *" tv , | |
250 | .BI " const struct tvec_uenuminfo *" ei , | |
251 | .BI " long " i0 ", long " i1 ); | |
252 | .ta \w'\fBint tvec_claimeq_uenum('u | |
253 | .BI "int tvec_claimeq_uenum(struct tvec_state *" tv , | |
254 | .BI " const struct tvec_uenuminfo *" ei , | |
255 | .BI " unsigned long " u0 ", unsigned long " u1 , | |
256 | .BI " const char *" file ", unsigned " lno , | |
257 | .BI " const char *" expr ); | |
258 | .ta \w'\fBint TVEC_CLAIMEQ_UENUM('u | |
259 | .BI "int TVEC_CLAIMEQ_UENUM(struct tvec_state *" tv , | |
260 | .BI " const struct tvec_uenuminfo *" ei , | |
261 | .BI " unsigned long " u0 ", unsigned long " u1 ); | |
262 | .ta \w'\fBint tvec_claimeq_fenum('u | |
263 | .BI "int tvec_claimeq_fenum(struct tvec_state *" tv , | |
264 | .BI " const struct tvec_fenuminfo *" ei , | |
265 | .BI " double " f0 ", double " f1 , | |
266 | .BI " const char *" file ", unsigned " lno , | |
267 | .BI " const char *" expr ); | |
268 | .ta \w'\fBint TVEC_CLAIMEQ_FENUM('u | |
269 | .BI "int TVEC_CLAIMEQ_FENUM(struct tvec_state *" tv , | |
270 | .BI " const struct tvec_fenuminfo *" ei , | |
271 | .BI " double " f0 ", double " f1 ); | |
272 | .ta \w'\fBint tvec_claimeq_penum('u | |
273 | .BI "int tvec_claimeq_penum(struct tvec_state *" tv , | |
274 | .BI " const struct tvec_penuminfo *" ei , | |
275 | .BI " const void *" p0 ", const void *" p1 , | |
276 | .BI " const char *" file ", unsigned " lno , | |
277 | .BI " const char *" expr ); | |
278 | .ta \w'\fBint TVEC_CLAIMEQ_PENUM('u | |
279 | .BI "int TVEC_CLAIMEQ_PENUM(struct tvec_state *" tv , | |
280 | .BI " const struct tvec_penuminfo *" ei , | |
281 | .BI " const void *" p0 ", const void *" p1 ); | |
282 | .PP | |
283 | .B "const struct tvec_regty tvty_flags;" | |
284 | .PP | |
285 | .B "struct tvec_flag { const char *name; unsigned long m, v; };" | |
286 | .B "#define TVEC_ENDFLAGS ..." | |
287 | .PP | |
288 | .ta 2n | |
289 | .B "struct tvec_flaginfo {" | |
290 | .B " const char *name;" | |
291 | .B " const struct tvec_flag *fv;" | |
292 | .B " const struct tvec_urange *range;" | |
293 | .B "};" | |
294 | .PP | |
295 | .ta \w'\fBint tvec_claimeq_flags('u | |
296 | .BI "int tvec_claimeq_flags(struct tvec_state *" tv , | |
297 | .BI " const struct tvec_flaginfo *" fi , | |
298 | .BI " unsigned long " f0 ", unsigned long " f1 , | |
299 | .BI " const char *" file ", unsigned " lno , | |
300 | .BI " const char *" expr ); | |
301 | .ta \w'\fBint TVEC_CLAIMEQ_FLAGS('u | |
302 | .BI "int TVEC_CLAIMEQ_UENUM(struct tvec_state *" tv , | |
303 | .BI " const struct tvec_flaginfo *" fi , | |
304 | .BI " unsigned long " f0 ", unsigned long " f1 ); | |
305 | .PP | |
306 | .B "const struct tvec_regty tvty_char;" | |
307 | .PP | |
308 | .ta \w'\fBint tvec_claimeq_char('u | |
309 | .BI "int tvec_claimeq_char(struct tvec_state *" tv , | |
310 | .BI " int " ch0 ", int " ch1 , | |
311 | .BI " const char *" file ", unsigned " lno , | |
312 | .BI " const char *" expr ); | |
313 | .BI "int TVEC_CLAIMEQ_CHAR(struct tvec_state *" tv ", int " ch0 ", int " ch1 ); | |
314 | .PP | |
315 | .B "const struct tvec_regty tvty_text, tvty_bytes;" | |
316 | .PP | |
317 | .BI "void tvec_alloctext(union tvec_regval *" rv ", size_t " sz ); | |
318 | .BI "void tvec_allocbytes(union tvec_regval *" rv ", size_t " sz ); | |
319 | .PP | |
320 | .ta \w'\fBint tvec_claimeq_text('u | |
321 | .BI "int tvec_claimeq_text(struct tvec_state *" tv , | |
322 | .BI " const char *" p0 ", size_t " sz0 , | |
323 | .BI " const char *" p1 ", size_t " sz1 , | |
324 | .BI " const char *" file ", unsigned " lno , | |
325 | .BI " const char *" expr ); | |
326 | .ta \w'\fBint TVEC_CLAIMEQ_TEXT('u | |
327 | .BI "int TVEC_CLAIMEQ_TEXT(struct tvec_state *" tv , | |
328 | .BI " const char *" p0 ", size_t " sz0 , | |
329 | .BI " const char *" p1 ", size_t " sz1 ); | |
330 | .ta \w'\fBint tvec_claimeq_textz('u | |
331 | .BI "int tvec_claimeq_textz(struct tvec_state *" tv , | |
332 | .BI " const char *" p0 ", const char *" p1 , | |
333 | .BI " const char *" file ", unsigned " lno , | |
334 | .BI " const char *" expr ); | |
335 | .ta \w'\fBint TVEC_CLAIMEQ_TEXTZ('u | |
336 | .BI "int TVEC_CLAIMEQ_TEXTZ(struct tvec_state *" tv , | |
337 | .BI " const char *" p0 " const char *" p1 ); | |
338 | .ta \w'\fBint tvec_claimeq_bytes('u | |
339 | .BI "int tvec_claimeq_bytes(struct tvec_state *" tv , | |
340 | .BI " const void *" p0 ", size_t " sz0 , | |
341 | .BI " const void *" p1 ", size_t " sz1 , | |
342 | .BI " const char *" file ", unsigned " lno , | |
343 | .BI " const char *" expr ); | |
344 | .ta \w'\fBint TVEC_CLAIMEQ_BYTES('u | |
345 | .BI "int TVEC_CLAIMEQ_BYTES(struct tvec_state *" tv , | |
346 | .BI " const void *" p0 ", size_t " sz0 , | |
347 | .BI " const void *" p1 ", size_t " sz1 ); | |
348 | .PP | |
349 | .B "const struct tvec_regty tvty_buffer;" | |
350 | .PP | |
351 | .ta \w'\fBvoid tvec_initbuffer(' | |
352 | .BI "void tvec_initbuffer(union tvec_regval *" rv , | |
353 | .BI " const union tvec_regval *" ref ", size_t " sz ); | |
354 | .BI "void tvec_allocbuffer(union tvec_regval *" rv ); | |
355 | .fi |